欢迎来到天天文库
浏览记录
ID:14691064
大小:119.50 KB
页数:5页
时间:2018-07-29
《双单片机串口通信原理+程序》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、一、实验目的掌握单片机串口通信的设计方法,了解双单片机通信的原理。二、实验内容(含程序)编写发送方和接受方单片机程序,让发送方单片机向接受方单片机循环发送几个两位十六进制数,并将发送的数显示在发送方和接受方的数码管上,要求串行口采用方式1进行通信,选用定时器T1作为波特率发生器,T1工作方式2,通信的波特率位9600。硬件连接:发送发程序:#include#defineuintunsignedintuchartable[]={0xaa,0xB5,0xdd,0xa8,0xba,0xcc,0
2、xf4,0xb0};//要发送的数据voiddelay(uintx){uinti,j;for(i=x;i>0;i--)for(j=110;j>0;j--);}voidmain(){uchari=0;TMOD=0x20;TH1=0xfd;TL1=0xfd;SM0=0;SM1=1;TR1=1;EA=1;ES=1;while(1){SBUF=table[i];P1=table[i];while(!TI);TI=0;i++;if(i==8)i=0;delay(800);}}接收方程序:#include3、.h>#defineucharunsignedcharuchara;voidmain(){TMOD=0x20;TH1=0xfd;TL1=0xfd;REN=1;TR1=1;SM0=0;SM1=1;EA=1;ES=1;while(1);}voidser()interrupt4{RI=0;a=SBUF;P1=a;}一、实验结果及分析本实验需要完成两个程序,发送方和接受方的,但是并没有要求加入奇偶校验,因此难度不大,从实验结果可以明显看出,当发送方数码管显示要发送的数值时,接受方数码管也几乎同时显示出此数值,证明4、接受无误,实验结果正确。两个单片机都使用串口方式1进行通信,并且必须保证两单片机通信波特率完全一致,否则接受不到正确的数。在发送数据时,向SBUF中写入一个数据后,使用“while(!TI);”等待是否发送完毕,因为当发送完毕后,TI被硬件置1,然后才退出“while(!TI);”接下来在将TI手动清零,同理,在接受数据时,在中断服务程序中也需要将接受中断标志位RI置零。
3、.h>#defineucharunsignedcharuchara;voidmain(){TMOD=0x20;TH1=0xfd;TL1=0xfd;REN=1;TR1=1;SM0=0;SM1=1;EA=1;ES=1;while(1);}voidser()interrupt4{RI=0;a=SBUF;P1=a;}一、实验结果及分析本实验需要完成两个程序,发送方和接受方的,但是并没有要求加入奇偶校验,因此难度不大,从实验结果可以明显看出,当发送方数码管显示要发送的数值时,接受方数码管也几乎同时显示出此数值,证明
4、接受无误,实验结果正确。两个单片机都使用串口方式1进行通信,并且必须保证两单片机通信波特率完全一致,否则接受不到正确的数。在发送数据时,向SBUF中写入一个数据后,使用“while(!TI);”等待是否发送完毕,因为当发送完毕后,TI被硬件置1,然后才退出“while(!TI);”接下来在将TI手动清零,同理,在接受数据时,在中断服务程序中也需要将接受中断标志位RI置零。
此文档下载收益归作者所有