标题:
单片机按键暂停数码管显示怎么设计程序?
[打印本页]
作者:
lx驾
时间:
2018-12-27 16:35
标题:
单片机按键暂停数码管显示怎么设计程序?
请问可以通过按键暂停数码管显示(主程序)吗?如果能,要怎么操作呢?
作者:
areyouok
时间:
2018-12-27 21:50
能啊,换内容都行!数码管显示只不过是在做扫描动作!你想暂停就是不改变显示的变量值,假如你的数字一直在0-9间变换,你让该变量不加也不减,它就是一个固定值,显示时就好像暂停效果。做一个条件语句,如:if(flag==2){i=i+0;}; else (flag==1)i++;........后面就是你具体化了
作者:
yzwzfyz
时间:
2018-12-27 21:52
首先了解数码管是如何显示的?再解决什么是“暂停显示”?
弄清楚以上两点,你就可以解决问题了。
作者:
1092648746
时间:
2018-12-27 23:31
暂停显示是指数码管熄灭吗?还是数字停住不动?要熄灭的话直接写数据进去就可以了,数字停止不动这个嘛要看程序了,我做的话就设个标志位加个if判断影响数码管刷新。
作者:
jll586
时间:
2018-12-28 08:39
如果用定时器和按键实现的话,可以使用标志位flag实现,flag=0时定时器启动,flag=1时定时器关闭
if(!c_to_puse) //暂定和开始计时(S4)
{
delay_50us(10);
if(!c_to_puse)
{
TR0=~TR0;
while(!c_to_puse)
{
for(num=0;num<6;num++)
{
display(num,numduan_base[num]);
delay_50us(30);
}
}
}
}
复制代码
作者:
robinsonlin
时间:
2018-12-28 09:25
一般实用的数码管刷新都是在定时器中断中进行的。那么可以用外部中断来实现你想要的功能。 在中断中判断按键抖动,并设置标志位(第一个标志位用来判断第一次按下,第二个标志位用来判断第二次按下)。在主程序中判断标志位,第一个标志为1时,关计时器中断,暂停刷新,进入while循环等待。两个标志位同时为1时,跳出while循环,开计时器中断,继续刷新数码管。如两个标志位同时为1,记得清零。
作者:
TK2019
时间:
2018-12-28 10:56
按键判定不刷新
作者:
Arvin0011
时间:
2018-12-28 11:26
可以,一个中断就行了
作者:
chaoself
时间:
2019-1-3 21:47
写个中断就行了
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1