|
說(shuō)明:使用普中2.0的板子 通過(guò)獨(dú)立按鍵來(lái)實(shí)現(xiàn)按下一次,計(jì)數(shù)增加一,數(shù)碼管連接用138譯碼器
- #include <reg52.h>
- #define u16 unsigned int
- #define u8 unsigned char
- sbit LSA=P2^2; //138
- sbit LSB=P2^3;
- sbit LSC=P2^4;
- sbit K1=P3^1;
- sbit K2=P3^0;
- u8 JS;
- u8 date[2];
- u8 code smgduan[16]={0x3f,0x06,0x5b,0x4f,
- 0x66,0x6d,0x7d,0x07,
- 0x7f,0x6f,0x77,0x7c,
- 0x39,0x5e,0x79,0x71};
- void delay(u16 i);
- void key();
- void DigDisplay();
- void date1();
- void main() //
- {
- while(1)
- {
- key(); //按鍵調(diào)用
- DigDisplay(); //數(shù)碼管動(dòng)態(tài)掃描
- date1();
- }
- }
- void delay(u16 i)
- {
- while(i--);
- }
- void key()
- {
- if(K1==0)
-
- {
-
- delay(1000);
- if(K1==0)
- {
- JS++;
- }
- if(JS==100)
- {
- JS=0;
- }
-
- while(!K1)
- DigDisplay();
- }
- if(K2==0)
- {
- delay(1000);
- if(K2==0)
- {
- JS=0;
- }
- while(!K2)
- DigDisplay();
- }
-
- }
- void DigDisplay()
- {
- u8 i;
- for(i=0;i<2;i++)
- {
- switch(i)
- {
- case(0): LSA=0;LSB=0;LSC=0; break;//顯示第0位
- case(1): LSA=1;LSB=0;LSC=0; break;//顯示第1位
- }
- P0=date[i];
- delay(10);
- P0=0x00;
- }
- }
- void date1()
- {
- date[0]=smgduan[JS%10];
- date[1]=smgduan[JS/10];
- }
復(fù)制代碼
|
評(píng)分
-
查看全部評(píng)分
|