串行口补充部分.doc
文本预览下载声明
串行口补充部分
80x86兼容机可连接4个串行口,其编号分别为COM1~COM4(相应的BIOS编号为COM0~COM3)
若微机系统设置了COM端口,则设置的每个端口的地址就写到BIOS数据区的0040:000~07H中。其中每个COM端口占2个字节。
COM0:0040:0000~ 0001
COM1:0040:0002~0003
COM2:0040:0004~0005
COM3:0400:0006~0007
可用DEBUG 查看端口地址
CDEBUG
_D 0040:0000 L08
0040:0000 F8 03 F8 02 00 00 00 00
即端口COM0的地址为:3F8H,COM1的地址为2F8H
BIOS 串行通信功能
INT 14H 调用ROM BIOS 串行通信例行程序,该通信例行程序包括:串行口的初始化(波特率、帧格式等),检查控制器的状态等,读和写(接收和发送)等功能。
表 一 串行口通信BIOS功能(INT 14H)
AH 功能 入口参数 出口参数
0 初始化串行通信口 (AL)=初始化参数 (AH)=通信口状态
(DX)=通信段口号 (AL)=调制解调器的状态
COM1=0
COM2=1,etc
1 向串行口写字符 (AL)=所写字符 写字符成功:
(DX)=通信口号 (AH)=0,(AL)=字符
COM1=0 写字符失败
COM2=1 (AH)7=1,(AH)0-6=口状态
2 从串行口读字符 (DX)=通信口号 读成功:
COM`1=0 (AH)7=0,(AH)0-6=口状态
COM2=1 读失败:
(AH)7=1,(AH)0-6=口状态
3 取通信口状态 (DX)=通行口号 (AH)=通信口状态
COM1=0 (AL)=调制解调器状态
COM2=1.etc
串行口初始化参数
7 6 5 4 3 2 1 0
000=110波特 校验 01=奇校验 终止位 字长 10=7 位
001=150波特 11=偶校验 0=1位 11=8位
010=300波特 X0=无校验 1=2位
011=600
111=9600波特
串行通信端口状态字
7 6 5 4 3 2 1 0
超时 发送位移器空 发送空 间断 帧格式错 奇偶错 超越错 数据准备好
奇偶错:通信线上的噪声引起数据位的改变会产生奇偶错,检测到奇偶措时,发送放应在发送一次。
超越错:在上一个字符还没被取走,又有字符传送过来,则会引起超越错。
帧格式错:当接收器没收到一个字符的停止位,会引起帧格式错。引起的原因可能是噪声引起停止位的丢失,或由于收发双方初始化参数不匹配所致。
间断:在某些通信环境中设置的“空格”状态,它占一个字符的传输时间,当器超过一个字符的传输时间时,间断位为1。
利用BIOS INT 14H,可通过COM端口与另一台微机通信,通信程序的编写过程如下:
用INT 14,AH=0,(DX)=通信端口号,(AL)=初始化参数;设置通行双方的初始化参数。
用
显示全部