微机串口通信内环自检

上传人:新** 文档编号:522191763 上传时间:2022-11-09 格式:DOC 页数:13 大小:75KB
返回 下载 相关 举报
微机串口通信内环自检_第1页
第1页 / 共13页
微机串口通信内环自检_第2页
第2页 / 共13页
微机串口通信内环自检_第3页
第3页 / 共13页
微机串口通信内环自检_第4页
第4页 / 共13页
微机串口通信内环自检_第5页
第5页 / 共13页
点击查看更多>>
资源描述

《微机串口通信内环自检》由会员分享,可在线阅读,更多相关《微机串口通信内环自检(13页珍藏版)》请在金锄头文库上搜索。

1、等级评定: 课 程 设 计 报 告题 目: 微机串口通信内环自检 系 (院): 专 业: 软件工程 学生姓名: 学 号: 起 迄 日 期: 2008年 6 月 8 日 6 月 19日 课程设计地点: 硬件综合室、多媒体技术室 设计评语:(评阅教师填写) 评阅人: 年 月 日课 程 设 计 说 明 书1课程设计题目:微机串口通信内环自检2课程设计内容:对PC机辅串口进行内环自动测试,并实现两台PC机之间的通信。3课程设计目的:了解PC机串口的工作原理,掌握PC机串口自动测试的编程方法。课 程 设 计 说 明 书4课程设计要求:(1)采用查询方式将下列测试电文送到辅串口发送器,经过内部自环接受,显

2、示在屏幕上,通信速率选用4800波特,无校验传输,一帧字符有8个数据位,2个停止位,按下任意键时测试结束。测试电文如下:THE QUICK BROWN FOX JUMPS OVER LAZY DOG(2)用一条串口线将两台计算机直接相连,实现两台计算机近距离通信。在一台PC机键入字符,从8250的发送端发送给另一台PC机,另一台PC机的 8250的接收端接收,然后在屏幕上显示出来。5设计详细说明(包括硬件原理图、流程图)利用微机系统串行口设计串行通信程序的时候,应首先根据课题要求(自发自收、单工通信还是双工通信)和欲采用的编程手段(对端口直接操作还是调用BIOS通信软件),完成RS-232连接

3、线的连接,创建正确的串行通信外部环境。8250初始化编程的步骤:1)80H通信线控制寄存器,是寻址位为1。2)除数高8位/低8位-除数寄存器高8位/低8位,确定通信速率。3)把D7=0的命令字写入通信线控制寄存器,确定一帧数据的格式。4)设置中断允许命令字: 查询方式,置中断允许命令字为0 中断方式,置中断允许寄存器的相应位为15)设置MODEM控制寄存器 中断方式:D3=1,允许8250送出中断请求信号。查询方式:D3=0内环自检:D4=1正常通信:D4=0(1) 辅串口内环自检当8250设置为内环自检方式时,8250无法提出中断请求,而且引脚/TRS、/CTS、/DTR、/DSR在芯片内部

4、似乎是被“切断”了。有鉴于此,当8350设置为内环自检方式的时候,只能采用查询方式,而且只能采用对端口直接操作的编程手段,完成数据的发送和接受。【程序流程图】(直接访问端口寄存器,如图3-19) (2)双机通信用串口电缆将两台机算机的COM2连接起来,把计算机设置成空MODEM方式,并为此编制了两个汇编语言程序:其一为数据发送程序;其二为数据接收程序。为了确保每个字符发送出去,并且被接收,发送接收双方的波特率设置一致,并且均采取查询方式进行下一步操作。接收数据程序只需执行一次,即驻留在内存中,此后,只要号计算机有数据要发送,则号机随时接收并显示在屏幕上。课 程 设 计 说 明 书5设计详细说明

5、(包括硬件原理图、流程图) 续2【程序流程图】(如图3-20、3-21、3-22)开始程序初始显示提示信息初始化8250,设定传输率有键入?选1?选2?YNNY提示出错YN调用发送程序调用接受程序图3-20 双机通信 开 始保护原寄存器内容显示接收信息读状态寄存器,接收有错?接收到数据?NNY输入缓冲器处读数据显示接收内容是esc?是enter?Y换 行NY恢复原寄存器内容返回N图3-22 接受程序开 始保护原寄存器内容显示提示信息发送器为空?有键入?Y读键盘输入发送并显示是esc键?是enter?YN N图3-21 发送程序恢复原寄存器内容返回 课 程 设 计 说 明 书6程序代码 源程序:

6、DISP MACRO VAR ;定义宏,完成字符串的输出 MOV AH,9 MOV DX,OFFSET VAR INT 21H ENDMDATA SEGMENTTEXT DBTHE QUICK BROWN FOX JUMPS OVER LAZY DOG, 0DH, 0AHLLL EQU $-TEXT ;电文长度-LLLERROR DB COM BAD !, 0DH, 0AH, $ N EQU 24 DUP( )MESG1 DB 0DH,0AH DB N, MENU ,0DH,0AH DB N, -,0DH,0AH DB N,| | ,0DH,0AH DB N,| 1.COM2 INTERNAL

7、 LOOP | ,0DH,0AH DB N,| 2.SHUANG JI | ,0DH,0AH DB N,| 3.EXIT | ,0DH,0AH DB N,| |,0DH,0AH DB N, -,0DH,0AH DB N, CHOICE(1,2,3):$ ,0DH,0AHMESG2 DB 0DH,0AH DB N, MENU ,0DH,0AH DB N, -,0DH,0AH DB N,| |,0DH,0AH DB N,| 1.SENT |,0DH,0AH DB N,| 2.RECIEVE |,0DH,0AH DB N,| |,0DH,0AH DB N, - ,0DH,0AH DB N, CHOI

8、CE(1,2):$ ,0DH,0AH MESG3 DB 0DH,0AH,PLEASE INPUT THE MESSEGE:,0DH,0AH,$MESG4 DB 0DH,0AH,THE MESSAGE YOU INPUT ARE:,0DH,0AH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATASTART: MOV AX,DATA MOV DS,AXLAST: DISP MESG1 ;显示操作信息,选择是内环自检还是双机通信 MOV AH,01H INT 21H ;等待键入一个字符,有回显,响应Ctrl_C CMP AL,1 JE NEXT1 ;如果输入

9、1,转测辅串口内环自检 CMP AL,2 JE NEXT2 ;如果输入2,转双机通信 CMP AL,3 JNE LAST JMP EXIT ;测试结束,退出;PC机辅串口的内环自检NEXT1: CALL I8250 ;辅串口初始化AGAIN: MOV CX, LLL ;电文长度CX MOV BX, OFFSET TEXT ;BX指向TEXT的首地址SCANT: MOV AH, 01H INT 16H ;查询键盘缓冲区 JNZ EXIT ;有键入,转退出 MOV DX, 2FDH IN AL,DX ;从DX指向的端口中读一个字节到AL TEST AL,20H ;检查发送保持寄存器是否空闲 JZ

10、SCANT ;若不空闲,转SCANT输入检查 MOV DX, 2F8H ;发送保持寄存器辅串口地址-DX MOV AL, BX OUT DX,AL ;将字符送辅串口数据寄存器 MOV SI, 0 SCANR: MOV DX, 2FDH IN AL, DX ;读取通信线状态字 TEST AL,00011110B ;检查有无错误标志 JNZ DISPERR ;有错,显示出错信息 TEST AL,01H ;无错,检查接收数据是否准备好 JNZ RECEIVE ;准备好,转接收程序 DEC SI JNZ SCANR JMP DISPERRRECEIVE: MOV DX, 2F8H ;接收缓冲器辅串口地址-DX IN AL,DX ;接收一个数据 MOV AH, 2 MOV DL, AL INT 21H;送屏幕显示一个字符 INC BX LOOP SCANT ;一个电文长度计数 JMP AGAIN ;重复内环自检DISPERR: DISP ERROR ;显示出错信息 EXIT: MOV AH, 4CH INT 21H ;返回DOSI8250 PROC MOV AX, 00C7H ;波特率4800,无校验传输,2个停止位,一桢字符有8个数据位,即为11000111B MOV DX,1 ;对辅串口进行初始化 IN

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 建筑科学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号