- //注意我的是p3^7,你的是p3^6
- //發送
- #include<reg52.h>
- char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- sbit q=P3^7;
- int num=0;
- //scon=0x50;
- int ge;
- void delay(){
- int i,j=0;
- for(i=500;i<0;i--)
- for(;j<100;j++);
- }
- void main(){
- SCON = 0x50; // ′®¿ú1¤×÷·½ê½1
- TMOD = 0x20; // T11¤×÷·½ê½2
- PCON = 0x00; //SMOD=0
- TH1 = 0xfd; //×°èë3õÖ죬2¨ìØÂê9600
- TL1 = 0xfd;
- TI = 0; //±ê־λ3õê¼»ˉ
- RI = 0;
- TR1 = 1; //Æô¶ˉ¶¨ê±Æ÷T1
- EA=1; //CPU¿aÖD¶Ï
- ES=1;
- while(1){
- if(q==0)
- delay();
- if(q==0)
- {
- num++;
- if(num>9)num=0;
- SBUF=num;
- while(TI==0);
- TI=0;
- while(RI==0);
- RI=0;
- if(SBUF==num){
- ge=num%10;
- P1=tab[ge];
- delay();
- }
- while(q==0);
- }
- }
- }
- void Serial() interrupt 4 //????
- {
- if(RI==1) //??????
- {
- RI = 0;
- P1= tab[SBUF]; //????????
- }
- }
- //接收
- #include<reg52.h>
- char tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
- int num=0;
- //scon=0x50;
- char receive;
- int ge;
- void delay(){
- int i,j=0;
- for(i=500;i<0;i--)
- for(;j<100;j++);
- }
- void main(){
- P1= tab[0]; // ????
- SCON = 0x50; // ??????1,????
- TMOD = 0x20; // T1????2
- PCON = 0x00; //SMOD=0
- TH1 = 0xfd; //????,???9600
- TL1 = 0xfd;
- TI = 0; //?????
- RI = 0;
- TR1 = 1; //?????T1
- EA=1; //CPU???
- ES=1;
- while(1)
- {
- while(RI==0){
- RI=0;
- receive=SBUF;
- SBUF=receive;
- while(TI==0);
- TI=0;
- P1=tab[receive%10];
- }
- delay();
- }
- }
- void Serial() interrupt 4 //????
- {
- if(RI==1) //??????
- {
- RI = 0;
- P1= tab[SBUF]; //????????
- }
- }
復制代碼
|