- #include<reg52.h>//頭文件
- #define uchar unsigned char //宏定義
- #define uint unsigned int
- uchar code table[]={0x3f,0x06,0x5b,//數碼管顯示的數值
- 0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,
- 0x77,0x7c,0x39,0x5e,0x79,0x71};
- void delay(uint x) //延時子函數
- {
- uint i,j;
- for(i=x;i>0;i--)
- for(j=500;j>0;j--);
- }
- void main() //主函數
- {
- uchar i,j; //定義局部變量
- while(1) //無限循環
- {
- for(i=0;i<16;i++) //從0-f顯示
- {
- P1=0xf8; //點亮第一個數碼管
- P2=table[i];
- delay(200); //延時0.5s
- }
- for(i=0;i<16;i++)//點亮兩位數碼管從0-f
- {
- for(j=100;j>0;j--)
- {
- P1=0xf8; //點亮第一個數碼管
- P2=table[i];
- delay(1); //延時0.5s
- P1=0xf9;
- P2=table[i];
- delay(1);
- }
- }
- for(i=0;i<16;i++) //間隔數碼管顯示從0-f
- for(j=100;j>0;j--)
- {
- P1=0xf8;
- P2=table[i];
- delay(1);
- P1=0xfa;
- P2=table[i];
- delay(1);
- P1=0xfc;
- P2=table[i];
- delay(1);
- P1=0xfe;
- P2=table[i];
- delay(1);
- }
- }
- }
- /*
- 注:先一個數碼管顯示0-f,再兩個數碼管顯示0-f,
- 然后一個數碼管同時顯示0-f,
- */
復制代碼
|