|
51hei.png (36.62 KB, 下載次數(shù): 0)
下載附件
2025-5-31 18:26 上傳
- #include <REGX51.H>
- #include <intrins.h>
- unsigned char code table[]={0XC0,0XF9,0XA4,0XB0,0X99,0X92,0X82,0XF8,0X80,0X90};
- unsigned char code wei[]={0XF7,0XFB,0XFD,0XFE};
- sbit K1=P3^3;
- sbit K2=P3^4;
- sbit K3=P3^5;
- sbit K4=P3^6;
- sbit K5=P2^7;
- sbit K6=P2^4;
- sbit K7=P2^5;
- sbit K8=P2^6;
- void key();
- void seg_display_buffer(char *buffer);
- void Delay(unsigned int xms);
- bit interrupt_flag = 0;
- unsigned char i;
- #define LED_PORT P1
- #define SEG_PORT P2
- char display_bufer[]={0,0,0,0};
- void Delay500ms();
- bit flag1 = 0, flag2 = 0, flag3 = 0;
- void main()
- {
- IT0 = 1; // 邊沿觸發(fā)
- EX0 = 1; // 允許INT0中斷
- EA = 1; // 開總中斷
- while(1)
- {
- seg_display_buffer(display_bufer);
- key();
- {
- if(!interrupt_flag) {
- LED_PORT = 0xFE;
- Delay500ms();
- for( i=0; i<7; i++) {
- LED_PORT = _crol_(LED_PORT, 1);
- Delay500ms();
- }
- }
- }
- }
- }
- void seg_display_buffer(char *buffer)
- {
- int i,j;
- for(i=0;i<=3;i++)
- {
- P0=table[buffer[i]];
- P2=wei[i];
- for(j=0;j<20;j++);
- P2=0XFF;
- for(j=0;j<10;j++);
- }
- }
- void Delay(unsigned int ms) //@12.000MHz
- {
- unsigned char i, j;
- for(i=0;i<ms;i++);
- for(j=0;j<810;j++);
- }
- void INT0_ISR() interrupt 0 {
- interrupt_flag = 1;
- SEG_PORT=0000;
- LED_PORT=0000;
- Delay500ms(); // 消抖
- }
- void key()
- {
- if(!K1)
- {
- Delay500ms();
- while(!K1);
- Delay500ms();
- display_bufer[3]=1;
- display_bufer[2]=1;
- display_bufer[1]=1;
- display_bufer[0]=1;
- LED_PORT=0xFE;
- Delay500ms();
- }
- if(!K2)
- {
- Delay500ms();
- while(!K2);
- Delay500ms();
- display_bufer[3]=2;
- display_bufer[2]=2;
- display_bufer[1]=2;
- display_bufer[0]=2;
- LED_PORT=0xFD;
- Delay500ms();
- }
- if(!K3)
- {
- Delay500ms();
- while(!K3);
- Delay500ms();
- display_bufer[3]=3;
- display_bufer[2]=3;
- display_bufer[1]=3;
- display_bufer[0]=3;
- LED_PORT=0xFB;
- Delay500ms();
- }
- if(!K4)
- {
- Delay500ms();
- while(!K4);
- Delay500ms();
- display_bufer[3]=4;
- display_bufer[2]=4;
- display_bufer[1]=4;
- display_bufer[0]=4;
- LED_PORT=0xF7;
- Delay500ms();
- }
- if(!K5)
- {
- Delay500ms();
- while(!K5);
- Delay500ms();
- display_bufer[3]=5;
- display_bufer[2]=5;
- display_bufer[1]=5;
- display_bufer[0]=5;
- LED_PORT=0xEF;
- Delay500ms();
- }
- if(!K6)
- {
- Delay500ms();
- while(!K6);
- Delay500ms();
- display_bufer[3]=6;
- display_bufer[2]=6;
- display_bufer[1]=6;
- display_bufer[0]=6;
- LED_PORT=0xDF;
- Delay500ms();
- }
- if(!K7)
- {
- Delay500ms();
- while(!K7);
- Delay500ms();
- display_bufer[3]=7;
- display_bufer[2]=7;
- display_bufer[1]=7;
- display_bufer[0]=7;
- LED_PORT=0xBF;
- Delay500ms();
- }
- if(!K8)
- {
- Delay500ms();
- while(!K8);
- Delay500ms();
- display_bufer[3]=8;
- display_bufer[2]=8;
- display_bufer[1]=8;
- display_bufer[0]=8;
- LED_PORT=0x7F;
- Delay500ms();
- }
- }
- void Delay500ms() //@12.000MHz
- {
- unsigned char i, j, k;
- i = 4;
- j = 205;
- k = 187;
- do
- {
- do
- {
- while (--k);
- } while (--j);
- } while(--i);
- }
復(fù)制代碼 |
-
-
11.261.7z
2025-5-31 18:27 上傳
點(diǎn)擊文件名下載附件
77.39 KB, 下載次數(shù): 0
|