实验四 串行通信实验_第1页
实验四 串行通信实验_第2页
实验四 串行通信实验_第3页
实验四 串行通信实验_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实验四串行通信实验一、实验目的1.了解51单片机串行口的结构、串行通讯的原理。2.掌握51单片机与PC机之间通讯的方法。3.学习系统应用程序的设计和调试二、实验设备PC机一台、实验教学板一块。三、实验原理51单片机的串行接口是全双工的,它能做异步接收器/发送器(UART),也能做同步移位寄存器使用。在做UART使用时,相关的寄存器有SBUF、SCON、和PCON中的波特率倍增位SMOD。SBUF是数据发送缓冲器和接收缓冲器,逻辑上用同一个地址,物理上是分开的,用读写操作来选择。SCON是串行口控制寄存器,用于设定串行口的工作方式;保存方式2和方式3的第9位数据;存放发送、接收的中断标志。在串行通讯的方式1和方式3中,通信的波特率是可以设置的,满足下式:PC机的串行通讯口是借助通用异步接收发送器8250(或16C550等)实现的,可使用comdebug.exe等提供了有关串行口的收、发操作窗口的软件实现通讯。PC机的串行通讯采用RS232电平,因此要求单片机的实验板也要配置RS232接口,解决逻辑电平的配接。如果通讯距离较远,则要配接调制解调器。四、实验内容自发自收用一根短路线,将实验板中RS232插口的RXD和TXD两个插孔短路。然后编程设定串行口为工作方式1,传送55H和0AAH两个数据。实验要求:程序采用查询方式。每传送、接收一个数据,做一次检查,看是否正确,若两次都正确,则在显示器上显示“GOOD”,若不正确,则不显示,并要重新传送。单片机与PC机的通信先使用通讯电缆将单片机的RS232接口与PC机的COM1口连接,PC机起动并运行comdebug.exe软件,窗口上设置波特率为1200,8位数据、一个停止位。单片机端也采用工作方式1,波特率为1200,完成单片机与PC机的通信。实验要求:编程实现先由单片机发送8个数据,01、02、03、04、05、0ABH、0CDH、0EFH。然后进入接收状态,在PC机发送窗口上设置发送数据,点击发送按钮,单片机接收数据后将数据显示在显示器上。五、程序参考流程图(a)自发自收程序流程图(b)与PC机通讯程序流程图六、思考题1.波特率能否置为1000,为什么?2.数据传输时,若要加奇偶校验,单片机和PC机要怎样做?参考程序:4—1:ORG0000HMOVSCON,#50H;SM0=0,SM1=1,设定串行工作方式为方式1,允许位接收MOVPCON,#80H ;将SMOD置为1,使波特率提高一倍MOVTMOD,#20H ;设置计数器方式为方式2,即自动重装8位计数器MOVTH1,#0FDH ;设置初值,设定波特率为9600bpsMOVTL1,#0FDHSETBTR1 ;TR1置1,开定时器1MOVR0,#55H ;把数据分别存放在R0,R2MOVR2,#0AAH STA0:CLRRI ;RI清零MOVSBUF,R0 ;将R0中的数据赋给SBUF并发送出去WAIT1:JBCRI,STA2 ;RI=1的时候跳转,用于判断是否接收完成,完成则将RI清零并跳转至STA2AJMPWAIT1 ;等待接收完成STA2:MOVA,SBUF ;接收R0的数据SUBBA,#55H ;判断接收数据是否为55HJNZSTA0 ;A不是0则跳回STA0,重新发送MOVSBUF,R2 ;将R2中的数据赋给SBUF并发送出去WAIT2:JBCRI,STA4 ;判断是否发送完成,完成清零跳转至STA4AJMPWAIT2 ;等待发送完成STA4:MOVA,SBUF ;接收R2的数据CJNEA,#0AAH,STA0 ;判断A是否为AAH,不是则跳回STA0,重新发送DISPLAY:MOVP2,#01H ;位选MOVP0,#0C2H ;段选显示GACALLDelay ;延时MOVP2,#02HMOVP0,#0C0H ;O ACALLDelayMOVP2,#04H MOVP0,#0C0H ;OACALLDelayMOVP2,#08HMOVP0,#0A1H ;DACALLDelayAJMPDISPLAYDelay:MOVR6,#10 ;延时1msDela:MOVR7,#100DJNZR7,$ DJNZR6,Dela RETEND4---2:ORG00HSTAR: CLR P2.5 ;关声音 MOVDPTR,#TABLE MOVSP,#5FH ;设置堆栈指针 MOVTMOD,#20H ;设置计数器器方式为方式2,即自动重装8位计数器 MOVTH1,#0E8H ;设定波特率为1200bps MOVTL1,#0E8H MOVSCON,#50H ;M0=0,SM1=1,设定串行工作方式为方式1,允许位接收 SETBTR1 ;TR1置1,开定时器1 MOVR0,#00H ;共传送8个数据,赋初值为0 ACALLDE1S ;延时1S输出KEY: MOVA,R0 MOVCA,@A+DPTR ;查表指令 MOVSBUF,A ;把数据送给SBUF输出FA: JBCTI,FA1 ;TI=1的时候跳转,用于判断是否发送完成,完成则将TI清零并跳转至FA1 AJMPFA ;等待发送完成FA1: INCR0 ;R0<-R0+1 MOVA,#08H ;将8赋给累加器A ANLA,R0 ;判断是否是输出最后一位数据,只有当接收齐8个数据时,A=1 JNZWAIT1 ;A不等于0,则表示发完8个数据,转为接收状态,等于0则表示没发送完全,返回KEY继续发送余下数据 SJMPKEYWAIT1: JBCRI,KEY1 ;RI=1的时候跳转,用于判断是否发送完成,完成则将RI清零并跳转至FA1 AJMPWAIT1KEY1: MOVA,SBUF MOVSBUF,A ;把数据输出并返还给显示器WAT1: JBCTI,WAIT1 ;TI=1的时候跳转,用于判断是否发送完成,完成则将TI清零并跳转至WAIT1 AJMPWAT1TABLE: DB01H,02H,03H,04H,05H ;要输出的数据 DB0ABH,0CDH,0EFHDE1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论