- #include<reg51.h>
- #include<intrins.h>
- #define led P2
- sbit k1=P3^2;
- sbit lsa=P2^2;
- sbit lsb=P2^3;
- sbit lsc=P2^4;
- sbit beep=P1^5;
- typedef unsigned int u16;
- typedef unsigned char u8;
- u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,
- 0x08,0x37,0x08,0x37};
- void delay(u16 i)
- {
- while(i-- );
- }
- void Int0Init()
- {
- IT0=1;
- EA=1;
- EX0=1;
- }
- void Timer0Init()
- {
- TMOD|=0X01;
- TH0=0XFA;
- TL0=0X00;
- ET0=1;
- EA=1;
- TR0=1;
- }
- void yu()
- {
- u8 i;
- led=0xfe;
- while(1)
- {
- for(i=0;i<7;i++)
- {
- led=_crol_(led,1);
- delay(50000);
- }
- for(i=0;i<7;i++)
- {
- led=_cror_(led,1);
- delay(50000);
- }
- }
- }
- void main()
- {
- while(1)
- {
- Int0Init();
- Timer0Init();
- yu();
- }
- }
- void Int0() interrupt 0
- {
- delay(1000);
- if(k1==0)
- {
- u8 p;
- for(p=0;p<10;p++)
- {
- lsa=1;lsb=1;lsc=1;
- P0=smgduan[p];
- delay(10000);
- P0=0x00;
- }
- }
- }
- void Timer0() interrupt 1
- {
- static u16 i;
- TH0=0XFA;
- TL0=0X00;
- i++;
- if(i==1000)
- {
- i=0;
- for(i=0;i<10;i++)
- {
- lsa=1;lsb=1;lsc=0;
- P0=smgduan[i];
- delay(10000);
- P0=0x00;
- }
- }
- }
复制代码 |