标题:
51单片机实现计时器功能
[打印本页]
作者:
Red
时间:
2014-5-31 09:33
标题:
51单片机实现计时器功能
例如厨房倒计时,用开发板输入时长(30s),屏幕显示倒计时,时间到后蜂鸣器响起。求大神帮助。不知道程序如何去写
作者:
Red
时间:
2014-5-31 15:51
大神在哪里~
作者:
hkccd
时间:
2014-7-8 16:15
就是一个倒计时程序这个很简单51hei论坛里面有很多
作者:
时光溢彩
时间:
2015-6-4 23:33
你要计时到一定时间,然后判断if(==)蜂鸣器也是一样,
作者:
ybyh12355
时间:
2015-6-5 09:29
应该是用定时器编程,具体的还得求大神
作者:
yanjibao
时间:
2015-6-5 17:55
本帖最后由 yanjibao 于 2015-6-5 18:21 编辑
如果要做精确定时,那就必须用定时器了,定时时间125us,累计进中断16次后令timer2ms=1,中断函数结束(中断服务函数内容不要写太多,我们要查询式中断)。主循环中检测到2ms标志,清零,同时处理显示,按键以及计时。分别如下:显示每2ms循环数码管com一步,按键每2ms扫描一行,时间每2ms做一次累加(250次为0.5秒,再累加120次为1分,再累加60次为一小时。)。仅有蜂鸣器在125us中运行,震动频率4khz,有源无源蜂鸣器通杀,效果一样。整个程序1个timer中断就搞定,妥妥的,不需要延时函数,时钟不浪费,后期还有大把扩容空间。﹉
补充主逻辑,开机进入waitmode,按键后进入setmode,确认或者几秒钟不按键进入workmode,倒计时结束进入buzzmode,按键或一分钟后返回waitmode。
仅在workmode进行倒计时
作者:
184322186
时间:
2016-1-12 09:57
同求
作者:
917106794
时间:
2016-1-15 13:48
void Time0(void) interrupt 1
{
TL0 =0x9a; //¶¨ê±Æ÷3õÖμ
TH0 = 0xf1; //¶¨ê±Æ÷3õÖμ
cnt1++;
cnt2++;
cnt3++;
if(cnt1== 500)
{
cnt1 = 0;
flag10=1;
if((flag3==1)||(flag03==1))
{
Settime3--; //Count 100 times
min3= Settime3/60;
sec3=Settime3%60;
}
作者:
917106794
时间:
2016-1-15 13:50
你用定时器,定一下1ms一次中断,然后累计1000次,为一秒,让设置的值为30,让去减减,
作者:
王琪1
时间:
2016-1-21 13:55
定时器去变成
作者:
HAIMING
时间:
2016-1-21 20:50
这个的飞来的历程里有
作者:
litao007586
时间:
2016-1-22 08:31
挺好的 多查资料啊
作者:
tomgay
时间:
2017-5-7 12:36
自己找百度原理图 用仿真文件画吧
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1