实验四串行通信实验.docVIP

  1. 1、本文档共4页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实验四 串行通信实验 一、实验目的 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: ORG 0000H MOV SCON,#50H ;SM0=0,SM1=1,设定串行工作方式为方式1,允许位接收 MOV PCON,#80H ;将SMOD置为1,使波特率提高一倍 MOV TMOD,#20H ;设置计数器方式为方式2,即自动重装8位计数器 MOV TH1,#0FDH ;设置初值,设定波特率为9600bps MOV TL1,#0FDH SETB TR1 ;TR1置1,开定时器1 MOV R0,#55H ;把数据分别存放在R0,R2 MOV R2,#0AAH STA0: CLR RI ;RI清零 MOV SBUF,R0 ;将R0中的数据赋给SBUF并发送出去 WAIT1:JBC RI,STA2 ;RI=1的时候跳转,用于判断是否接收完成,完成则将RI清零并跳转至STA2 AJMP WAIT1 ;等待接收完成 STA2: MOV A,SBUF ;接收R0的数据 SUBB A,#55H ;判断接收数据是否为55H JNZ STA0 ;A不是0则跳回STA0,重新发送 MOV SBUF,R2 ;将R2中的数据赋给SBUF并发送出去 WAIT2:JBC RI,STA4 ;判断是否发送完成,完成清零跳转至STA4 AJMP WAIT2 ;等待发送完成 STA4: MOV A,SBUF ;接收R2的数据 CJNE A,#0AAH,STA0 ;判断A是否为AAH,不是则跳回STA0,重新发送 DISPLAY: MOV P2,#01H ;位选 MOV P0,#0C2H ;段选显示G ACALL Delay ;延时 MOV P2,#02H MOV P0,#0C0H ;O ACALL Delay MOV P2,#04H MOV P0,#0C0H ;O ACALL Delay MOV P2,#08H MOV P0,#0A1H ;D ACALL Delay AJMP DIS

文档评论(0)

天马行空 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档