|
|
- #include<reg52.h> //正常情況下流水燈正常顯示,按下按鍵K3,后8個(gè)流水燈同時(shí)亮滅一次,時(shí)間間隔是0.5s
- #define u8 unsigned char
- #define u16 unsigned int
- sbit k3=P3^2;
- void delay0_5s() //T0 工作方式1 0.5s延時(shí)
- {
- u8 i;
- for(i=0;i<10;i++)
- {
- TH0=0x3c; // TH1=0x3c;
- TL0=0xb0; // TL1=0xb0;
- TR0=1;
- while(!TF0);
- TF0=0;
- }
- }
- void delay( u8 t)
- {
- u8 i;
- for(i=0;i<t;i++)
- delay0_5s();
- }
- void int_0() interrupt 0 using 1 // IT0外部中斷0(中斷號(hào)0,外部觸發(fā)管腳3.2)
- {
- delay();
- if(k3==0)
- {
- P2=0xff;
- delay0_5s();
- P2=0x00;
- delay0_5s();
- }
- }
- void Intoint()
- {
- EA=1; //全局中斷開
- EX0=1; //外部中斷0開
- IT0=1; //觸發(fā)方式 //下降沿觸發(fā)
- }
- void main()
- {
- u8 i,w;
- //TMOD=0x01;
- TMOD |= 0x01; //使用模式1,16位定時(shí)器,使用"|"符號(hào)可以在使用多個(gè)定時(shí)器時(shí)不受影響
- TH0=0x3c;
- TL0=0xb0;
- Intoint();
- ET0=1; //定時(shí)器中斷打開
- //TR0=1; //定時(shí)器開關(guān)打開
- while(1)
- {
- w=0x01;
- for(i=0;i<8;i++)
- {
- P2=~w;
- w<<=1;
- delay(2);
- }
- }
- }
復(fù)制代碼 |
|