带缓冲区的PC机查询式串行通信实验3.docVIP

带缓冲区的PC机查询式串行通信实验3.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
带缓冲区的PC机查询式串行通信实验3

PAGE 6PAGE 7带缓冲区的PC机查询式串行通信实验实验目的:掌握对通用异步收发器的编程进一步熟悉利用系统功能调用从键盘上读取字符的方法实验设备和相关软件:386以上微机一台;串行通信电缆一条;操作系统:MS-DOS或者WINDOWS95以上的MS-DOS环境;汇编和连接:TASM.EXE,TLINK.EXE;文本编辑工具:记事本、EDIT、BORLAND C++或者PWB;调试程序:TD.EXE。实验内容:编写程序实现:接收键盘输入的一个字符串并存于发送缓冲区TRBUFF(以回车符0DH结束),当输入回车时启动查询式发送;查询式接收来自串行口输入的一个字符串并存于接收缓冲区DIBUFF,当收到回车符时,启动显示,显示接收的字符串并换行;要求当按‘ESC’键时退出该程序的运行,返回操作系统,其中‘ESC’键的ASCII码为1BH。实验步骤:编写带缓冲区的PC机查询式串行通信实验,实现接收键盘输入的一个字符串并存于发送缓冲区TRBUFF(以回车符0DH结束),当输入回车时启动查询式发送;查询式接收来自串行口输入的一个字符串并存于接收缓冲区DIBUFF,当收到回车符时,启动显示,显示接收的字符串并换行;要求当按‘ESC’键时退出该程序的运行,返回操作系统,其中‘ESC’键的ASCII码为1BH。通信程序帧格式和波特率与同组同学协商后定义,先按MODEM控制字为循环方式工作,进行测试程序通过与否。在通过的基础上MODEM控制字改为禁止循环方式工作,用通信电缆将两台PC机串口对接,测试程序通过与否。两台PC机串口通信实现后,分别改变一方程序中定义的帧格式和波特率,观察和记录通信效果,说明产生此现象的原因。设计思想提示:在程序中,将用到缓冲区和标志位,注意要事先将收发缓冲满标志和接收标志清零;还将用到关于键盘动作的访问方法。其中系统功能调用中INT 16H的AH=01H号子功能是检查键盘缓冲队列中有无输入字符,如果有输入字符,则零标志位清零,如果无,零标志位置1,利用AH=00H号子功能可以读取已经存在的键值。过程分析如下:1)、调用初始化子程序,初始化INS8250芯片2)、扫描键盘,有无输入,无,转到8)3)、有, 测试字符是否为ESC,是,退出,转12)4)、显示该字符,判断发送缓冲满标志是否为1,是转8)5)、把字符放到发送缓冲,指针加1 6)、测试字符是否为回车,不是,转到8)7)、一次发送结束,发送缓冲满标志置1,发送缓冲区复位8)、调用收发子程序,测试接收结束标志是否为0,是,转2)9)、提示接受数据,显示一个字符,直到遇到回车符10)、复位SI,调用收发子程序11)、提示继续接收12)、退出应用程序,返回操作系统。收发子程序的编写提示:1)、测试接收结束标志是否为1,是转5)2)测试线路状态寄存器,是否接收准备就绪,否,转5)3)、接收字符串,判断,字符是否为回车符,否,转5)4)、接收结束标志置1,接收缓冲区复位5)、判断收发满标志是否为1,否,转9)6)、查线路状态寄存器是否发送保持寄存器为空,否,转9)7)、发送字符串,判断发送的字符是否为回车符时,否,转9)8)、发送缓冲满标志清零,发送缓冲区复位9)、退出子程序实验报告要求:画出程序框图,写出汇编语言源程序。若帧格式和波特率不一致,观察和记录通信情况,说明产生此现象的原因。参考程序:COM1 EQU 3F8HDATA SEGMENTREBUFF DB 100 DUP(0) ;定义串口接收缓冲区TRBUFF DB 100 DUP (0) ;定义键盘接收缓冲区TRFLAG DB 0DIFLAG DB 0MSG1 DB 0DH,0AH,INPUT A STRING:$MSG2 DB 0DH,0AH,RECEIVE A STRING:$MSG3 DB 0DH,0AH,CONTINUE A STRING:$DATA ENDS CODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AX CALL INI_COM1 ;串口初始化 LEA DX,MSG1 MOV AH,09H INT 21H LEA DI,TRBUFF LEA SI,REBUFFMN6: MOV AH,1 ;扫描键盘 INT 16H JZ MN2

文档评论(0)

woai118doc + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档