标题:
单片机按键按一次加15秒定时,LCD上倒计时程序错误
[打印本页]
作者:
aoligeigiao
时间:
2020-7-18 11:47
标题:
单片机按键按一次加15秒定时,LCD上倒计时程序错误
各位大佬中午好,小弟想实现 只用一个按键加长定时时间
按一次加15秒,然后LCD倒计时,倒计时的时候再按再加15秒,LCD也显示,按键接在中断0
我这个程序得不出结果 :
void INT0_ISR() interrupt 0
{
cishu++;
TR0=1;
ET0=1;
}
void T0_ISR() interrupt 1
{
cnt++;
if(cnt%100==0)
{
second++;//1秒
}
if(second==15)
{cnt=0;
TR0=0;
}
}
void dingshi1()
{
if(dingshi==0)//定时功能按一次加 秒
{
delay1ms(5);
if(dingshi==0)
{
cishu++;
wr_com(0xc0);
display(str8);
delay1ms(5);
for(;second>0;)
{
delay1ms(1);
second--;
display(str11);
wr_com(0xc6);//下面一行显示倒计时时间
wr_dat((second+15*cishu)/10);//
wr_com(0xc7);
wr_dat((second+15*cishu)%10);
}
if(second==0)
{
IN1=0;
IN2=0;//电机停
}
}
}
}
定时器初值设在主程序中了,
AUXR &= 0x0F; //
TMOD &= 0x00; //设置定时器模式
TL0 = (65536-1000)%256; //设置定时初值
TH0 = (65536-1000)/256; //设置定时初值
用的stc15系列单片机(基于51)
帮忙看看,谢谢大佬们
作者:
robinsonlin
时间:
2020-7-18 13:31
这种涉及时间类的程序,最好不要把记录时间的变量随便归零,因为归零后,如果控制不好,可能会出现莫名其妙的溢出。 专门定义一个unsigned long 独立运行时钟,时间触发时,用临时变量取独立时钟的值,然后比较差值。 每检测到一个按键,总时间系数变量+1,当时间差值>= 临时变量与独立时钟差值时,触发完成。
作者:
aoligeigiao
时间:
2020-7-18 13:36
robinsonlin 发表于 2020-7-18 13:31
这种涉及时间类的程序,最好不要把记录时间的变量随便归零,因为归零后,如果控制不好,可能会出现莫名其妙 ...
好的 我再试试 谢谢(⊙^⊙)
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1