您的位置:首页 > 其它

DOS环境下PC机的串行通信

2012-06-14 18:18 99 查看
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

 

 

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  dos 测试