改為靜態數碼管和動態數碼管同時顯示
無標題.jpg (157.67 KB, 下載次數: 46)
下載附件
2021-2-9 22:32 上傳
- #include <reg52.h>
- #define LED1 P1//靜態數碼管
- #define LED2 P0//動態數碼管
- sbit c=P2^7;
- sbit b=P2^6;
- sbit a=P2^5;
- sbit k1=P3^2;
- sbit k2=P3^3;
- unsigned char code num[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
- unsigned char i,j,k;
- bit t;
- void delay(unsigned int time)
- {
- unsigned int i,j;
- for(i=0;i<time;i++)
- for(j=0;j<125;j++);
- }
- void main()
- {
- while(1)
- {
- if(!k1||!k2)
- {
- if(++k>=10 && t==0)//消抖10ms
- {
- t=1;
- if(!k1 && j<9)
- j++;
- if(!k2 && j>0)
- j--;
- }
- }
- else//松手
- {
- k=0;
- t=0;
- }
- LED1=num[j];//1位靜態顯示
- //8位動態顯示
- LED2=0x00; //消隱
- P2&=0x1f; //位清0
- P2|=(i<<5); //送位碼
- LED2=num[i];//送段碼
- i=++i%8; //位計數
- delay(1); //延時
- }
- }
復制代碼
|