利用PC机的串口实现两台微机间的串行通信.doc_第1页
利用PC机的串口实现两台微机间的串行通信.doc_第2页
利用PC机的串口实现两台微机间的串行通信.doc_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

利用PC机的串口实现两台微机间的串行通信。对于近距离通信,可不使用Modem,用最简单的连接方式就可实现两机间的串行通信。在通信时,采用异步方式,波特率为9600,数据格式为8位数据位,无校验,1位停止位,接收和发送数据采用查询方式。一方键入的字符被另一方通过串口接收并显示在屏幕上,当按下“ESC”键时,结束程序运行。程序清单如下:STACK_SEGSEGMENT PARA STACK DB 32 DUP(0)STACK_SEGENDSCODE_SEGSEGMENTASSUME CS:CODE_SEGASSUME DS:DATA_SEGASSUME SS:STACK_SEGSTART:PUSH DSXOR AX,AXPUSH AXMOV BX,3F8H; COM1地址MOV S3F8,BX;保存COM1地址,实际应用可由此更改串口ADD BX,5MOV S3FD,BX;初始化8250INIT:MOV DX,S3F8ADD DX,3;线路控制寄存器端口地址MOV AL,80H;设置DLAB=1OUT DX,ALMOV DX,S3F8;波特率除数锁存器低8位MOV AL,0CHOUT DX,AL;设置波特率为9600MOV DX,S3F8INC DX;波特率除数锁存器高8位MOV AL,0OUT DX,ALMOV DX,S3F8ADD DX,3;线路控制寄存器端口地址MOV AL,03H;无校验、1位停止位、8位数据位OUT DX,ALMOV DX,S3F8ADD DX,4;Modem控制寄存器MOV AL,03H OUT DX,ALMOV DX,S3F8INC DX;中断允许寄存器MOV AL,0OUT DX,AL;禁止所有串口中断;初始化结束REC:MOV DX,S3FD;线路状态寄存器IN AL,DX;读状态TEST AL,20H;测试发送保持寄存器是否为空JZ REC;不空,转RECMOV AH,01HINT 16H;检测键盘是否有输入JZ RECV;无输入,转RECVMOV AH,0INT 16H;读键盘输入值到ALCMP AL,1BH;是否为ESC?JNZ SEND;不是,转SENDJMP EXIT;为ESC键,退出程序SEND:MOV DX,S3F8;发送保持寄存器OUT DX,AL;将从键盘接收的数据写入发送保持寄存器RECV:MOV DX,S3FD;线路状态寄存器IN AL,DX;读状态TEST AL,1EH;测试接收是否有错JNZ ERROR;有错,转ERROR处理TEST AL,1;测试是否接收到数据JZ REC ;没有接收到数据,转RECMOV DX,S3F8 ;接收缓冲寄存器IN AL,DX;接收数据XS:;显示接收的数据PUSH AXMOV AH,0EH;BIOS INT 10H的功能调用0EH,写字符MOV BX,0INT 10HPOP AXCMP AL,0DH;检测接收的是否为回车JNZ RECMOV AL,0AH;换行MOV AH,0EH;BIOS INT 10H的功能调用0EH,写字符MOV BX,0INT 10HJMP RECERROR:;错误处理MOV DX,S3F8 IN AL,DX;接收数据MOV AL,*MOV AH,0EHMOV BX,0INT 10HJMP RECEXIT:POP AXPOP DSMOV AH,4CH;DOS功能调用4CH,退出程序MOV AL,0INT 2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论