|
交通灯的仿真图:
源程序:
- #include <reg51.h>
- unsigned char t0,t1;
- void delay0_5s1()
- {
-
- for(t0=0;t0<10;t0++)
- {
- TH1=(65536-50000)/256;
- TH1=(65536-50000)%256;
- TR1=1;
- while(!TF1);
- TF1=0;
- }
- }
- void delay_t1(unsigned char t)
- {
- for(t1=0;t1<t;t1++)
- delay0_5s1();
- }
- void int_0() interrupt 0
- {
- unsigned char i,j,k,l,m;
- i=P1;
- j=t0;
- k=t1;
- l=TH1;
- m=TL1;
- P1=0xdb;
- delay_t1(20);
- P1=i;
- t0=j;
- t1=k;
- TH1=l;
- TL1=m;
- }
- void int_1() interrupt 2
- {
- unsigned char i,j,k,l,m;
-
- i=P1;
- j=t0;
- k=t1;
- l=TH1;
- m=TL1;
- P1=0xf3;
- delay_t1(10);
- P1=i;
- t0=j;
- t1=k;
- TH1=l;
- TL1=m;
-
- }
- void main()
- { unsigned char k;
- TMOD=0X10;
- EA=1;
- EX0=1;
- IT0=1;
- EX1=1;
- IT1=1;
- while(1)
- {
- P1=0Xf3;
- delay_t1(110);
- for(k=0;k<3;k++)
- {
- P1=0Xfb;
- delay0_5s1();
- P1=0Xf3;
- delay0_5s1();
- }
- P1=0Xeb;
- delay_t1(4);
- P1=0Xde;
- delay_t1(110);
- for(k=0;k<3;k++)
- {
- P1=0Xde;
- delay0_5s1();
- P1=0Xdf;
- delay0_5s1();
- }
- P1=0Xdd;
- delay_t1(4);
- }
- }
复制代码
|
|