实验六 双机通信 - 图文

更新时间:2023-11-07 04:58:02 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

洛阳理工学院实验报告

系别 计算机系 班级 B110507 学号 姓名 实验日期 成绩 2013-10-28 课程名称 实验名称 单片机原理及其应用 双机通信 实验目的: 掌握串行口通信工作原理。 实验原理: 实验电路原理图如图1所示,图中1#机的发送线与2#机的接收线相连,1#机的接收线与2#机的发送线相连,共阴极BCD数码管BCD_LED1和BCD_LED2分别接各机的P2口,两机共地(默认),晶振为11.0592MHz,波特率为2400bps,串口方式1。(实验电路所用元件见表1) 图1 电路原理图 表1 实验元件清单 元件类别 Microprocessor ICs Miscellaneous Capacitors Capacitors Resistors Packs Optoelectronics 电路符号 U1~U2 X1~X2 C1~C2,C4~C5/1nF C3、C6/22uF R1~R2/1k LED1~LED2 元件名称 80C51 CRYSTAL CAP CAP-ELEC RES 7SEG-BCD-GRN 实现功能:1#机循环发送数字0~F,并根据2#机的返回值决定发送新数(返回值与发送值相同时)或重复当前数(返回值与发送值不同时);2#机接收数据后直接返回接收值;双机都将当前值以十六进制数形式显示在各机的BCD数码管上。 软件编程原理:1#机采用查询法编程,根据RI和TI标志的软件查询结果完成收发过程;2#机采用中断法编程,根据RI和TI的中断请求,在中断函数中完成收发过程。 实验内容: (1)掌握串行通信原理和中断法通信软件编程; (2)完成实验6的C51语言编程。 实验步骤: (1)提前阅读与实验6相关的阅读材料; (2)参照实验原理图1和表1,在ISIS中完成电路原理图的绘制; (3)在uVision3中进行C51串行通信程序的编写、编译及调试; (4)启动ISIS的仿真运行,并进行联机调试。 仿真结果: 图3 仿真结果 1#机发送程序:(查询法) #include #define uchar unsigned char void delay(unsigned int time) //定义延时函数 { unsigned int j=0; for(;time>0;time--) for(j=0;j<125;j++); } void main (void) { uchar counter=0; //定义计数器 P2=0x3f; TMOD=0x20; //T1定时方式2 TH1=0xf4; //2400bps TL1=0xf4; PCON=0x00; //波特率不加倍 TR1=1; //启动T1 SCON=0x50; //串口方式1,TI和RI清零,允许接收 while(1) { SBUF=counter; //发送联络信号 while(TI==0); //等待发送完成 TI=0; //清TI标志位 while(RI==0); //等待2#机回答 RI=0; if(SBUF==counter) //若返回值与发送值不同,重新发送 { P2=counter; //结果相同显示已发送值 if(++counter>15)counter=0;//修正计数器值 delay(500); } } } 2#机接收程序:(中断法) #include unsigned char receiv; void delay(unsigned int count)//定义延时函数 { unsigned int i; while(count--) for(i=0;i<125;i++); } void main(void) { P2=0x0f; TMOD=0x20; //T1定时方式2 TH1=0xf4; //2400bps TL1=0xf4; PCON=0x00; //波特率不加倍 TR1=1; //启动T1 SCON=0x50; //串口方式1,TI和RI清零,允许接收 ES=1;EA=1; //开中断 while(1); } void TIRI_int()interrupt 4 //定义中断函数 { if(TI==1)TI=0; //若发送结束,清TI标志位 if(RI==1) { RI=0; //若接收完成,清RI标志位 receiv=SBUF; //取得接收值 SBUF=receiv; //结果返回1#机 P2=receiv; //显示接收值 } } 实验小结: 经过这次的上机实验,我掌握了串行口通信的工作原理,熟悉C51单片机的编程与调试方法,掌握Proteus ISIS模块的原理图绘图方法及及单片机系统仿真运行方法。同时在实现串行通信功能时提高了程序的编写及调试能力,在1#机中用了查询RI和TI标志位的软件查询结果完成发送程序功能,在2#机中根据RI和TI的中断请求,在中断函数中完成接收程序功能,两种方法结合实现实验要求程序功能,灵活的应用课堂上学到的理论知识。

本文来源:https://www.bwwdw.com/article/sq72.html

Top