15按键控制数码管加减
来源:网络收集 点击: 时间:2024-03-11#includereg51.h
#includeintrins.h
#define uchar unsigned char
#define uint unsigned int
//段码
uchar code DSY_CODE={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};
//待显示的 3 位缓冲
uchar Num_Buffer={0,0,0};
//按键代码,按键计数
uchar Key_Code,Key_Counts=0;
//延时
void DelayMS(uint x)
{
uchar i;
while(x--) for(i=0;i120;i++);
}
//显示函数
void Show_Counts_ON_DSY()
{
uchar i,j=0x01;
Num_Buffer=Key_Counts/100;
Num_Buffer=Key_Counts/10%10;
Num_Buffer=Key_Counts%10;
for(i=0;i3;i++)
{
j=_cror_(j,1);
P0=0xff;
P0=DSY_CODE];
P2=j;
DelayMS(1);
}
}
//主程序
void main()
{
uchar i;
P0=0xff;
P1=0xff;
P2=0x00;
Key_Code=0xff;
while(1)
{
Show_Counts_ON_DSY();
P1=0xff;
Key_Code=P1;
//有键按下时,数码管刷新显示 30 次,该行代码同时起到延时作用
if(Key_Code!=0xff)
for(i=0;i30;i++) Show_Counts_ON_DSY();
switch(Key_Code)
{
case 0xfe: if(Key_Counts255)
Key_Counts++;
break;
case 0xfd: if(Key_Counts0)
Key_Counts--;
break;
case 0xfb: Key_Counts=0;
}
Key_Code=0xff;
}
}

版权声明:
1、本文系转载,版权归原作者所有,旨在传递信息,不代表看本站的观点和立场。
2、本站仅提供信息发布平台,不承担相关法律责任。
3、若侵犯您的版权或隐私,请联系本站管理员删除。
4、文章链接:http://www.1haoku.cn/art_315233.html