单片机实验6(串行口)
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
2、参考程序 #include "reg51.h“ unsigned char dat=0xfe;//定义发送数据 void delay1(unsigned int i); main() { unsigned char i; void SCON=0x00;//串行口工作方式0 delay1(unsigned while(1) int t) { for (i=0;i<8;i++) { int i; { SBUF=dat; //传送左8位灯 for(i=0;i<t;i++) while(!TI);//查询TI {;} TI=0; //软件给TI清0 } dat<<=1; //数据左移一位 delay1(12000); } } }
三、实验步骤 (一)串入并出实验 本实验用74LS164来扩充并行口,利用74LS164串 行口实现8路跑马灯程序。 1、硬件连接: (1) 用一个2PIN数据排线一端插入CPU部分JP53 (P3口)的P3.0,P3.1。另外一端插入74LS164部分 的输入端JP20。 (2) 用一根8PIN的数据排线, 一端插入74LS164 部分的输出端JP26, 另一端插入8路指示灯的JP32。
2、乙机接收程序 //晶振频率11.0592MHz,串行口工作于方式1,波特率为9600 #include<reg51.h> void main () //主函数 { TMOD=0x20; //设定定时器1的工作方式为方式2 TH1=0xfd; //设置串行口波特率为9600 TL1=0xfd; SCON=0x50; //设置串行口的工作方式1允许接收 PCON=0x00; TR1=1; //启动定时器 P1=0xff; //P1口LED全灭 while(1) { do { while(!RI); //查询等待接收 RI=0; //接收完毕,RI由软件清0 }
2016/6/27
(二)单片机双机通信 1、硬件连接: (1) 用2台仿真仪,用3条1PIN数据线连接:甲机 RXD接乙机TXD,乙机RXD接甲机TXD,2机的地相连。 (2)甲机用一根8PIN的数据线 接8个按键。乙机 用一根8PIN的数据线接 8路指示灯。 (3)甲机选择按键状态并将P1口信息发给乙机,Baidu Nhomakorabea乙机根据甲机发来的信息点亮相应的发光二级管。
while((SBUF^0x02)!=0); do { SBUF=P1; while(!TI); TI=0; SBUF=0xff; while(!TI); TI=0; while(!RI); RI=0; } while((SBUF^0xff)!=0); } }
//判断是否收到02H //把P1口的状态发送给乙机 //查询发送是否完毕 //发送完毕,TI由软件清0 //发送结束符 //查询发送是否完毕 //发送完毕,TI由软件清0 //查询等待接收 //接收完毕,RI由软件清0 //判断是否收到应答结束符FFH
while((SBUF^0x01)!=0); //判断是否接收到01H do { SBUF=0x02; //向甲机发送应答02H while(!TI); //查询发送是否完毕 TI=0; //发送完毕,TI由软件清0 while(!RI); //查询等待接收 RI=0; //接收完毕,RI由软件清0 P1=SBUF; //根据甲机P1口的状态点亮发光二极管 while(!RI); //查询等待接收 RI=0; //接收完毕,RI由软件清0 } while((SBUF^0xff)!=0); //判断是否接收到结束符FFH SBUF=0xff; //发送应答结束符FFH while(!TI); //查询发送是否完毕 TI=0; //发送完毕,TI由软件清0 } }
四、写实验报告 报告内容: 1、实验目的 2、实验内容 3、实验原理图与线路连接 4、实验步骤 5、实验结果 6、实验体会
每次实验完毕后记录实验结果,在下次实验时 提交上次实验的实验报告。
1、甲机发送程序。 //功能:晶振频率11.0592MHz,工作方式1,波特率为9600 #include<reg51.h> void main() //主函数 { TMOD=0x20; //设定定时器1的工作方式为方式2 TH1=0xfd; //设置串行口波特率为9600 TL1=0xfd; SCON=0x50; //设置串行口的工作方式1允许接收 PCON=0x00; TR1=1; while(1) { do { SBUF=0x01; //甲机先发送01H给乙机 while(!TI); //查询发送是否完毕 TI=0; //发送完毕,TI由软件清0 while(!RI); //查询等待接收 RI=0; //接收完毕,RI由软件清0 }
二、实验内容
1、串入并出实验 用74LS164来扩充并行口,并利用74LS164串行口实现8路 跑马灯。 2、单片机与单片机之间的双机通信(P204) 用2台单片机用串行口实现双机通信。 (1)甲机P1口接8个键盘,乙机P1口接8个发光二极管。甲 机RXD接乙机TXD,乙机RXD接甲机TXD。 (2)甲机发送01H 给乙机,乙机接到回复02H。建立联系 后甲机选择按键状态并将P1口信息发给乙机,乙机根据甲机发 来的信息点亮相应的发光二级管。 (3)发送FF时表示通信结束。
实验六
串行口通信
一、实验目的: 1、单片机系统中,如果并行口不够用, 可使用未用 的串行口进行扩充,实现串行输入并行输出。 2、用单片机串行口实现与2个单片机的双机通信。 3、熟悉XLISP系列 单片机综合仿真试验仪的组成 和使用方法。 用XLISP软件和keil-uvision2集成调试软件进行 实验并能得到正确的实验结果。