标题:
51单片机让蜂鸣器30s循环响一次的程序如何编写?循环报警,求思路
[打印本页]
作者:
lcl0520
时间:
2021-1-28 17:38
标题:
51单片机让蜂鸣器30s循环响一次的程序如何编写?循环报警,求思路
如题,由于本论坛禁止直接求程序,禁止伸手党,所以向大家请教一下大致的实现方法与思路,理清头绪后我自己来写程序去实现
作者:
压着我头发啦
时间:
2021-1-28 20:44
定时器,变量计数满为30s当变量大于某数,蜂鸣器响,else不响。高低电平控制三极管
作者:
zsw3721
时间:
2021-1-28 23:09
通常给程序设置一个工作节拍,比如一秒的节拍,主程序在这个节拍下运行。在主程序中可设置变量来计次数,在一秒节拍下比如计数为30次就置位一个标志位,则说明30秒到了,利用if语句判断这个标志位为1时去处理30秒一次的任务。至于怎样设置一秒的节拍,还是要用定时器,可以设置20ms的自动重装定时器,中断计数50次则为1秒并置位一个秒节拍标志位。进入相关标志位去处理任务时要记得复位该标志位。
作者:
zwf33
时间:
2021-1-29 00:15
本帖最后由 zwf33 于 2021-1-29 00:20 编辑
#include <REGX52.H>
typedef unsigned int uint;
sbit fmq=P2^3; //定义I/O
uint cnt=0;
void main()
{
TMOD=0x01;
TH0=(65536-46082)/256; // 50ms 11.0592MHz
TL0=(65536-46082)%256;
TR0=1;
led=0;
while(1)
{
if(TF0==1)
{
TF0=0;
TH0=(65536-46082)/256;
TL0=(65536-46082)%256;
cnt++;
if(cnt>=600) // 30s
{
cnt=0;
fmq=~fmq;
}
}
}
}
复制代码
用定时器,变量计数满30s后再执行蜂鸣器响
作者:
lcl0520
时间:
2021-1-29 00:49
zwf33 发表于 2021-1-29 00:15
用定时器,变量计数满30s后再执行蜂鸣器响
感谢感谢。
作者:
wjcxy3166
时间:
2021-1-29 11:47
先把蜂鸣器的叫声频率定好,然后在启动计时,可以用定时中断计时,也可以用多进程计时,到了30S就运行一次蜂鸣器呗
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1