做好的程序,这里首先感谢wulinwl,给了很大帮助还有人中狼
时间:10-02
整理:3721RD
点击:
- #include <reg52.h>
- #include <string.h>
- #define uchar unsigned char
- #define uint unsigned int
- //uchar code fasong[]="abcd";//h1 h2 d1 d2
- uchar count,flag,j,i,x,m,k,w,num;
- sbit a=P2^3;//1a?¤1
- sbit b=P2^2;//1a?¤2
- sbit c=P2^1;//μ??D1
- sbit d=P2^0;//μ??D2
- sbit e=P1^3;//×??ìio?ú
- void init() //3?ê??ˉ′??ú
- {
- TMOD=0x20;
- SCON=0x50;
- TH1=0xfd;
- TL1=0xfd;
- TR1=1;
- EA=1;
- ES=1;
- }
- void initt()//3?ê??ˉ
- {
- TMOD=0X01;
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- EA=1;
- ET0=1;
- TR0=1;
-
- }
- void delay()//?óê±oˉêy
- {
- unsigned int i,j;
- for(i=1000;i>0;i--)
- for(j=110;j>0;j--);
- }
- void main()
- {
- initt();
- init();
- P0=0x00;//P0?úè?2?1?±?
- delay();
- P0=0x02;//′ò?a?·??1
- delay();
- P0=0x00;
- delay();
- P0=0x08;//′ò?a?·??2
- delay();
- P0=0x00;
- delay();
- while(1)
- {
- if(x==1) //′??úê?μ???á?1£?′ò?a?·??1£??ìμ?·?DD
- {
- P0=0x11;
- }
-
- if(k==1) //è?1??ì2aμ?1???′?′DD
- {
- while(x!=2)//??óDê?μ?′??ú2μ?ê±oò
- {
- P0=0x02;
- j=0;
- if(x==3&&flag==1) //?aà?ê???PC·¢?íP2?úIO×′??
- {
- ES=0;
- flag=0;
- // SBUF=P1&0x1f;
- SBUF=P2;
- while(!TI);
- TI=0;
- ES=1;
- }
- if(e==0) //×??ì
- {
- w=0x01;
- for(i=0;i<8;i++)
- {
- P0=w;
- w<<=1;
- delay();
- P0=0x00;
- delay();
- if(e==1)
- {
- P0=0x00;
- i=8;
- break;
- }
- }
- }
-
- }
- }
- if(j==1)
- {
- while(x!=1)
- {
- P0=0x08;
- k=0;
- if(x==3&&flag==1)
- {
- ES=0;
- flag=0;
- // SBUF=P1&0x1f;
- SBUF=P2;
- while(!TI);
- TI=0;
- ES=1;
- }
- if(e==0)
- {
- w=0x01;
- for(i=0;i<8;i++)
- {
- P0=w;
- w<<=1;
- delay();
- P0=0x00;
- delay();
- if(e==1)
- {
- P0=0x00;
- i=8;
- break;
- }
- }
-
- }
- }
- }
-
- if(x==2)
- {
- P0=0x24;
- }
- if(x==3&&flag==1)
- {
- ES=0;
- flag=0;
- // SBUF=P1&0x1f;
- SBUF=P2;
- while(!TI);
- TI=0;
- ES=1;
- // P2=~(P2&0x1f);
- // P1=~(P1&0x1f);
- }
-
- if(e==0)
- {
-
- w=0x01;
- for(i=0;i<8;i++)
- {
- P0=w;
- w<<=1;
- delay();
- P0=0x00;
- delay();
- if(e==1)
- {
- P0=0x00;
- i=8;
- break;
- }
- }
-
- }
- }
- }
- void ss()interrupt 1
- {
- TH0=(65536-45872)/256;
- TL0=(65536-45872)%256;
- num++;
- if(P2==0xbf) i=1; //?òμ????·ê?é¨?èμ???ò????μ?3?μ
- if(P2==0xef&&i==1) m=1;//μú?t???μ?3?μ
- if(P2==0xff&&m==1) //μúèy???3?μ
- {
- k=1; //μú?????3?μ è?oó?D??μú????k
- i=0;
- m=0;
- }
- if(P2==0xdf) i=2;
- if(P2==0x7f&&i==2) m=2;
- if(P2==0xff&&m==2)
- {
- j=1;
- m=0;
- i=0;
- }
- }
- void ver() interrupt 4
- {
- RI=0;
- x=SBUF;
- flag=1;
- }
我了个擦,我特意写的注释全变成乱码