改为静态数码管和动态数码管同时显示
- #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); //延时
- }
- }
复制代码
|