仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)
单片机源程序如下:
- #include<reg51.h>
- sbit K1=P3^7;
- sbit K2=P3^0;
- void delay(unsigned int c);
- code unsigned char tab[]={0x3f, 0x06, 0x5b, 0x4f, 0x66, 0x6d, 0x7d, 0x07, 0x7f, 0x6f};
- void main(void)
- {
- unsigned int i;
- while(1)
- {
- if(K1==0)//判断按键是否按下
- {
- delay(1);//消除抖动
- if(K1==0)
- {
- P2=tab[i/10];
- P1=tab[i%10];
- }
- while(K1==0);//等待按键开启
- i++;
- }
- if(i==13)
- i=0;
- P2=tab[i/10];
- P1=tab[i%10];
-
- if(K2==0)//判断按键是否按下
- {
- delay(1);//消除抖动
- if(K2==0)
-
- while(K2==0);//等待按键开启
- i--;
- }
- if(i==-1)
- i=12;
- P2=tab[i/10];
- P1=tab[i%10];
-
- }
- }
- void delay(unsigned int c)
- {
- int a,b;
- for(;c>0;c--)
- for(a=138;a>0;a--)
- for(b=3;b>0;b--)
- ;
- }
复制代码
所有资料51hei提供下载:
两个按键控制数码管.zip
(25.94 KB, 下载次数: 25)
|