- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
PC机串行通信程序设计
PC机串行通信程序设计
本串行通信程序利用汇编语言通过BIOS中断调用和DOS功能调用实现PC机双机串行通信。其中,上位机和下位机串行口均为辅串口COM2(口地址为2FXH),对外用9针连接器与令一台PC机连接;BIOS通过“INT 14H”4个中断服务子程序,分别完成串口初始化编程、发送一帧数据、接受一帧数据以及测试通信线状态。本程序分为PC机串口自动测试程序(目的是测试串口好坏)和PC机全双工双机通信程序两个部分。
一. PC机串口自动测试
对PC机主串口进行外环自动测试,要求:
(1) 调用BIOS通信软件,采用查询方式编程,将下列测试电文10行由主串口发出,经外环连接线再由主串口接受送屏幕显示。测试电文如下:
THE QUICK BROWN FOX JUMPS OVER LAZY DOG
(2) 通信速率为1200波特,一帧字符有8个数据位,1个停止位,无校验。
1. 设计思路
由于调用BIOS通信软件发送和接受数据,因此主串口RS-232C连接器必须按图1(a)连线。
(a)有联络线自发自收 (b) 有联络线全双工通信
图 1 串行通信RS-232C连接器连线方式
测试电文译为:狡猾的褐色狐狸越过懒狗的背。它是国际电报通信常用的测试电文,电文包含了26个字母,又称狐狸电文。在一条报路上长时间的循环发送这条电文,接收方统计在一定时间内的差错率,即可知道报路的通信质量。
2. 程序框图
程序框图如图2所示。
图 2 PC机串口自动测试程序框图
3. 程序清单
DATA SEGMENT
TEXT DB ‘THE QUICK BROWN FOX JUMPS OVER LAZY DOG’,0DH,0AH
LLL EQU $-TEXT
ERROR DB ‘COM2 BAD!’,0DH,0AH, ‘$’
DATA ENDS
;---------------------------------------------------------------------------------------------------------------------
CODE SEGMENT
ASSUME CS: CODE, DS: DATA
BEG: MOV AX, DATA
MOV DS, AX
CALL I8250 ;辅串口初始化
MOV CH,10 ;电文行数送CH
AGAIN: MOV CL,LLL ;电文长度送CL
MOV BX, OFFSET TEXT
SEND: MOV AL, [BX] ;取数据
MOV AH, 1 ;BIOS调用
MOV DX, 1
INT 14H ;发送一个数据
TEST AH, 80H ;发送成功否?
JNZ DISPERR ;否,转出错处理
RECEIVE: MOV AH, 2 ;BIOS调用
MOV DX, 1
INT 14H ;接受一个数据
TEST AH, 80H ;接受成功否?
JNZ DISPERR ;否,转出错处理
DISP: MOV AH, 2
MOV DL, AL
INT 21H ;接受字符送屏幕显示
INC BX
DEC CL ;电文长度计数
JNZ SEND
DEC CH ;行计数
JNZ AGAIN
JMP EXIT
DISPERR: MOV AH, 9
MOV DX, OFFSET ERROR
INT 21H ;显示出错信息
EXIT: MOV AH, 4CH
INT 21H ;返回DOS
;---------------------------------------------------------------------------
I8250 PROC
MOV AX, 0083H ;波特率1200,无校验,8位
MOV DX, 1 ;使用辅串口
INT 14H
RET
I8250 ENDP
CODE ENDS
END BEG
如果辅串
文档评论(0)