- 6
- 0
- 约3.8千字
- 约 6页
- 2018-03-31 发布于河南
- 举报
单片机中通过按钮实现两路显示思路总结
51单片机怎样设按键切换数码管显示时间和日期?
在51单片机中6位共阳数码管显示中,怎样设置某一按键,按下第一次从时间显示方式转为日期显示方式,按第二次从日期显示方式转为星期显示方式,按第三次显示温度,按第四次返回显示日期?
你要设置一个标志变量,如flag,在进入按键程序后,flag++;然后加个控制判断语句if(flag3)flag=0;这样,在显示模块中再加入开关语句;switch(flag){ case 0:...显示时间.. case 1:...显示日期。。. case 2:...显示温度。。。 }…………多路的情况采用这种编程
切换按钮用个标志位,比如未按下为0,按下为1 .判断标志位为0 时转数字钟程序 ,为1 时转频率计程序……只有两路的情况
切换功能的另一种思路:
设置个变量,进行计数;等于1显示时间,等于2显示日期;
在按键上设个变量,做累加,不同的按键值进各自的显示函数
单片机怎样通过按键在程序实现多功能?
三档功能转换:0挡-关闭功能1和2;1档-开启功能1;2档-开启功能,可以给出个大致框架么
1条回答
如果你就是只有一个按键,可以这样做:设置一个寄存器Key_Times_Buf,然后记录第几次按键,通过这个值,处理相应的程序. if(Key_Pin==0) { Key_Times_Buf++; if(Key_Times_Buf=3) { Key_Times_Buf=0; } } switch(Key_Times_Buf) { case 0: //程序0 break; case 1: //程序1 break; case 2: //程序2 break; }
用单片机控制8个发光二极管依次发光,产生跑马灯的效果,3种效果循环,要求通过按钮切换效果!用单片机控制8个发光二极管依次发光,产生跑马灯的效果,3种效果循环,要求通过按钮切换效果!只能用一个开关切换 ,C语言
不用中断和定时。谢谢、! STC11F,也可任意单片机类型。 有完整的程序可以,没的话请教怎么用一按键实现3种状态的切换。
这个程序的关键点是要在显示子程序执行的过程中,多对按键进行检测。检测到有按键按下时,即退出子程序,返回到主函数的按键检测,对num加一。#includereg52.h#includeintrins.h#define uchar unsigned char#define uint unsigned intsbit key1=P3^5;uchar temp;uchar num;void delay(uint z)//延时程序{ uint x ,y; for(x=z;x0;x--) for(y=110;y0;y--);}void display0()//显示效果1{ uchar i; temp=0xfe; for(i=0;i8;i++) { if(key1==0) break;//对按键进行检测 P1=temp; temp=_crol_(temp,1); delay(50); } P1=0xff; temp=0x7f; for(i=0;i8;i++) { if(key1==0) break;//对按键进行检测 P1=temp; temp=_cror_(temp,1); delay(50); }}void display1()//显示效果2{ uchar i; temp=0xf8; for(i=0;i8;i++) { if(key1==0) break;//对按键进行检测 P1=temp; tem
原创力文档

文档评论(0)