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
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
相关文章推荐
- Windows环境下PC机与单片机串行通信的实现
- VC环境下三菱PLC与微机的串行通信
- 用VC++6.0实现PC机与单片机之间串行通信的方法
- 【转】用VC++6.0实现PC机与单片机之间串行通信的方法
- 用VC++6.0实现PC机与单片机之间串行通信的方法
- 使用VB开发Windows环境下的串行通信程序
- 用VC++6.0实现PC机与单片机之间串行通信的方法
- Delphi环境下利用TComm组件实现串行通信
- 三菱PLC和PC机通过编程口串行通信实现
- PC机如何实现与单片机间串行通信
- Davinci DM6446 Codec Engine双核通信环境的搭建
- turtlebot(hydro)学习笔记一:两台PC机间通信
- 串行通信的基本原理及用MFC实现串口通信编程
- 在S60第三版手机上通过USB线进行串行通信
- dos下输入的命令查看环境变量
- 数据终端设备与无线通信模块之间串行通信链路复用协议(TS27.010)在嵌入式系统上的开发【转】
- 在DOS环境下运行sphinx4当中的回归测试失败的原因
- Linux网络管理员手册(4) 第四章 设置串行硬件 Modem连接的通信软件 串行设备概述
- ACE自适配通信环境简介
- linux环境下基于udp socket简单聊天通信