新闻中心

EEPW首页>嵌入式系统>设计应用> 两单片机间的串口通信

两单片机间的串口通信

作者: 时间:2016-11-19 来源:网络 收藏
单片机间的串口通信

注意:

本文引用地址://m.amcfsurvey.com/article/201611/318199.htm

将两单片机的RXD和TXD交叉连接,并GND共地...

程序功能:

发送单片机发送0至F 16字符在接收单片机数码管显示;

///发送单片机的程序#include
        
         void delay() //X毫秒{uint i,j;for(i=10;i>0;i--)for(j=110;j>0;j--);}void send(uchar key_num){SBUF=key_num;while(!TI);TI=0;}void keyscan(){uchar temp,key;P1=0xfe;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xee:key=0;break;case 0xde:key=1;break;case 0xbe:key=2;break;case 0x7e:key=3;break;}while(temp!=0xf0){ temp=P3;temp=temp&0xf0;}send(key);}}P1=0xfd;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xed:key=4;break;case 0xdd:key=5;break;case 0xbd:key=6;break;case 0x7d:key=7;break;}while(temp!=0xf0){ temp=P3;temp=temp&0xf0;}send(key);}}P1=0xfb;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xeb:key=8;break;case 0xdb:key=9;break;case 0xbb:key=10;break;case 0x7b:key=11;break;}while(temp!=0xf0){ temp=P3;temp=temp&0xf0;}send(key);}}P1=0xf7;temp=P1;temp=temp&0xf0;if(temp!=0xf0){delay();temp=P1;temp=temp&0xf0;if(temp!=0xf0){temp=P1;switch(temp){case 0xe7:key=12;break;case 0xd7:key=13;break;case 0xb7:key=14;break;case 0x77:key=15;break;}while(temp!=0xf0){ temp=P3;temp=temp&0xf0;}send(key);}}}void main(){TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;SM0=0;SM1=1;EA=1;ES=1;while(1){keyscan();}}
        

接收单片机的程序

#include
        
         #define uint unsigned int#define uchar unsigned charuchar code tab
         led[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};void display(uchar num){P0=tabled[num]; //数码管段选 P0口;P2=0; //数码管位选;}void main(){TMOD=0x20;TH1=0xfd;TL1=0xfd;TR1=1;REN=1;SM0=0;SM1=1;EA=1;ES=1;while(1);}void ser()
         interrupt4{uchar a;RI=0;a=SBUF;display(a);}
        


关键词:单片机串口通

评论


技术专区

关闭