只进行发送是数据的单片机
1 #include<reg52.h>
2 #define unit unsigned int
3 #define uchar unsigned char
4
5 sbit key=P3^7; 6
7 /*void delayms(unit xms) 8 { 9 unit i,j; 10 for(i=xms;i>0;i--) 11 for(j=580;j>0;j--); 12 } */
13
14 void send(uchar date) 15 { 16 SBUF=date; 17 while(!TI); 18 TI=0; 19 } 20
21 void chuaninit() 22 { 23 TMOD=0X20; 24 TH1=0Xfd; 25 TL1=0Xfd; 26 SM0=0; 27 SM1=1; 28 ES=1; 29 EA=1; 30 TR1=1; 31 } 32
33 void key1() 34 { 35 uchar d; 36 if(key==0) 37 { 38 d=2; 39 send(d); 40 } 41 else
42 { 43 d=4; 44 send(d); 45 } 46 } 47
48 void main() 49 { 50 chuaninit(); 51 while(1) 52 { 53 key1(); 54 } 55
56 }
只进行数据接受的单片机
1 #include<reg52.h>
2 #define unit unsigned int
3 #define uchar unsigned char
4 typedef unsigned char u8; 5
6 sbit led=P3^7; 7 sbit LSA=P2^2; 8 sbit LSB=P2^3; 9 sbit LSC=P2^4; 10
11 u8 code smgduan[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07, 12 0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};//显示0~F的值
13
14 void chuaninit() 15 { 16 TMOD=0X20; 17 TH1=0Xfd; 18 TL1=0Xfd; 19 SM0=0; 20 SM1=1; 21 REN=1; 22 ES=1; 23 EA=1; 24 TR1=1; 25 } 26
27 void display(uchar num) 28 { 29 LSA=1; 30 LSB=1; 31 LSC=1; 32 P0=smgduan[num]; 33 } 34
35
36 void main() 37 { 38 chuaninit(); 39 LSA=1; 40 LSB=1; 41 LSC=1; 42 P0=smgduan[3]; 43 while(1); 44 } 45
46 void chuan() interrupt 4
47 { 48 uchar a; 49 RI=0; 50 a=SBUF; 51 display(a); 52 }