DOS环境下PC机的串行通信

本文介绍了一个在DOS环境下实现串行通信的程序示例。程序通过8250 UART控制器初始化设置,实现9600波特率、无校验、1位停止位、8位数据位的配置,并能够读取键盘输入及接收串口数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DOS环境下PC机的串行通信

 

STACK_SEG  SEGMENT    PARA STACK

            DB 32 DUP(0)

STACK_SEG  ENDS

CODE_SEG   SEGMENT

              ASSUMECS:CODE_SEG

              ASSUMESS:STACK_SEG

START:

              PUSHDS

              XORAX,AX

              PUSHAX

INIT:                           ;初始化8250

              MOVDX,0                      ;串口1

              MOVAH,0

              MOVAL,11100011B     ;波特率9600,无校验,1位停止位,8位数据位

              INT14H

REC:      MOVAH,1          

              INT16H              ;无输入,转RECV

JZ RECV                       ;读键盘输入值到AL

              MOVAH,0

              INT16H

              CMPAL,1BH

              JZ  EXIT                       ;为"ESC"键,退出程序

RECV:    MOVDX,0                     ;串口1

              MOVAH,03H

              INT14H                      ;读状态

              TESTAH,1                      ;测试是否接收到数据

              JZREC                       ; 没有接收到数据,转REC

              MOVDX,0                   ;串口1   

              MOVAH,02H

              INT14H                      ;接收数据

              TESTAH,080H                ;测试是否接收错误

              JNZERROR

XS:         ;显示接收的数据

              MOVAH,0EH                  ;BIOS INT 10H的功能调用0EH,写字符         

              MOVBX,0

              INT10H

              JMPREC

ERROR:  ;错误处理

              MOVAL,'*'

              MOVAH,0EH             

              MOVBX,0

              INT10H

              JMPREC

EXIT:     POPAX

              POPDS

MOV AH,4CH                        ;DOS功能调用4CH,退出程序

              MOVAL,0

              INT21H       

              RET

CODE_SEG   ENDS

              ENDSTART

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值