




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
任务6-1双机通信实验实验概述使用两台单片机来进行数据通信,并用数码管显示出来。实验目的1、理解8051串口工作原理;2、熟悉两个8051全双工通信的概念与应用。实验预习要求1、了解定时器的控制方法;2、学习双机通信的原理。实验原理两台单片机进行双机通信,接口电路如下图所示。两台单片机的发送端TXD与接收端RXD交错相连,地线相连。硬件线路正确连线后,还需要编写双方的通信程序,遵守双方的约定,以及双方的数据帧格式、波特率等必须一致。图:双机异步通信接口电路单片机串行口在方式1、方式2、方式3下,均能实现双机通信,本实验是使用方式1。方式2、方式3既可以用于双机通信,也可以用于多机通信。数据发送:当数据写入发送缓冲器SUBF,发送缓冲器自动启动,数据由TXD输出。发送完一帧数据后,T1置1。通过查询或者中断方式,了解T1的状态,T1只能由软件复位。数据接收:当REN=1时,单片机串口允许接收数据。串行口采样引脚RXD从1跳变到0,并得到确认起始位后,就开始接收一帧数据。当接收完一帧数据,RI置1,可通过查询或中断方式了解RI的状态,RI也只能由软件复位。单片机双机通信是通过设置SCON、IE、TMOD、PCON、等SFR实现的。SCON:SM0、SM1可设置为01、10、11中的任一种,SM2设置为0。图:串行口控制寄存器IE:中断允许寄存器。如下图所示图:中断使能寄存器(IE)详细的控制方法可以查阅数据手册。Proteus使用的元器件AT89C52//51单片机。BUTTON//按键,用于最小系统复位。CAP//电容,用于搭建复位电路。CAP-ELEC//电解电容,用于搭建复位电路。CRYSTAL//晶振,给单片机提供时钟信号。RES//电阻。74LS21//双4输入与门。7SEG-COM-AN-GEN//共阳数码管。KEYPAD-PHONE//矩阵键盘。实验要求使用Proteus进行仿真实验,由矩阵键盘、共阳数码管,独立按键输入和串口组成双机通讯的基本单元,实验双机的数据交互。硬件连接图1.硬件电路图:4*4矩阵键盘图:8位共阳数码管图:8位独立按键2.硬件连接表MCU1-AT89S524*4矩阵键盘8位共阳数码管8位独立按键MCU2-AT89S52P10~P13R1~R4P14~P17C1~C4P32INTP00~P07SA~SHP20~P27C0~C7P33K1P30(RXD)P31(TXD)P31(TXD)P30(RXD)3.Proteus仿真图图:Proteus仿真图实验程序#include"reg51.h"#defineucharunsignedchar#defineuintunsignedint#defineoutkP1#defineout1P0#defineout2P2ucharcodeseg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff};ucharkey,send,rec;ucharscan(void);voiddelayms(uint);voidmain(void){TMOD=0X20;//设置定时器1工作在方式2TH1=0XF2;TL1=0XF2;TR1=1;SCON=0X50;//串口工作在方式1,REN=1允许接收数据PCON=0X00;//波特率不加倍EA=1;ES=1;EX1=1;EX0=1;while(1) { outk=0x07; out1=seg[send]; out2=seg[rec]; }}ucharscan(void){uchark=10,m,n,in;delayms(10);outk=0x07;if((outk&0x07)!=0x07) { for(m=0;m<3;m++) { outk=~(0x01<<(m+3)); for(n=0;n<3;n++) { in=outk; in=in>>n; if((in&0x01)==0) { if((in&0x01)==0){k=n+m*3;break;} } } if(k!=10)break; } }return(k);}voiddelayms(uintj){uchari;for(;j>0;j--) {i=250; while(--i); i=249; while(--i); }}voidext0()interrupt0{EX0=0;key=scan();if(key!=10)send=key+1;EX0=1;}voidext1()interrupt2{ES=0;;SBUF=send;while(!TI);TI=0;ES=1;}voidcom()interrupt4{RI=0;rec=SBUF;}实验步骤1、打开Proteus8环境,在快捷工具栏中点击源代码按纽,然后在菜单栏选择系统-编译器配置。找到Keilfor8051,点击下载,下载完成后点击OK退出。2、点击源码选择新建工程,出现新固件项目对话框,在系列一栏中选择8051,在控制器一栏选择AT89C52,编译器一栏中选择Keilfor8051,然后点击确定,新工程创建完成。3、然后在工程对话框下,右键单击AT89C52,在出现的下拉列表中选中工程设置,将工程选项下EmbedFiles后的勾选去掉,然后点击确定完成工程设置。4、在快捷工具栏中的下拉列菜单Debug/Release/配置选项中,选择Release。5、将需要编译的程序代码输入到main.c文件中,输入好程序代码后,然后在工程中,右键单击AT89C52,在出现的下拉列表中选中构建工程,编译完成返回LINK/LOCATERUNCOMPLETE.0WARNING(S),0ERROR(S)编译成功。表示工程编译成功。6、编译成功后,切换到原理图状态下点击运行按纽,可通过人机接口观察程序的仿真结果。7、连接ISP下载器一端到USB接口,另一端连到目标板。打开实验台电源,参考产品说明书中的ISP下载软件使用方法对程序进行下载。8、接下来大家就可以按照硬件连接表连线了,然后测试程序,观察实验现象,理解程序,最后自己修改程序提高编程能力。实验现象点击开始仿真后,在矩阵键盘按下“0~9”会在相应的数码管上显示数字。当按下SW1的时候,两台单片机交换数码管上的数字,并用另外的数码管显示出来。图:实验现象实验总结本实验在Proteus工作平台上进行仿真时,在矩阵键盘按下“0~9”会在相应的数码管上显示数字。当按下SW1的时候,两台单片机交换数码管上的数字,并用另外的数码管显示出来。voidext0()interrupt0{EX0=0;key=scan();if(key!=10)send=key+1;EX0=1;}voidext1()interrupt2{ES=0;;SBUF=send;while(!TI);TI=0;ES=1;}voidcom()interrupt4{RI=0;rec=SBUF;}上面这段函数是实验里的3段中断服务函数。ext0()interrupt0函数的中断源是外部中断0,即P32,P32连接到74LS21上。当矩阵键盘有按键按下的时候,进入该终端服务函数,读取按键值并传给数码管显示。ext1()interru
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年国际贸易合同示范文本
- 2025海外投资借款合同
- 2025年商业房地产租赁合同管理问题的思考与建议
- 2025年小食品购销合同范本
- 2025农业生产承包合同(农田承包)
- 2025年监理工程师《合同管理》合同法律关系与案例分析
- 2025国内劳务合同范本2
- 2025西安购销合同格式
- 《高效化的教学流程》课件
- 《人力资源管理》课件
- 2022年第三届大学生组织管理能力大赛真题题库和答案
- 理综-新疆乌鲁木齐市2024年高三三模考试试题和答案
- 聋哑人辅助交流系统
- 带状疱疹病人的个案护理
- 《中药鉴定技术》课件-五味子的鉴定
- 大数据 AI大模型-智慧统计大数据平台解决方案(2023版)
- 江苏省安全员《B证》考试题库及答案
- 自杀及其预防课件
- 灰姑娘童话故事
- 等离子切割机操作手册与安全操作规程
- 印刷合同:纸袋印刷合作
评论
0/150
提交评论