




已阅读5页,还剩8页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
等级评定: 课 程 设 计 报 告题 目: 微机串口通信内环自检 系 (院): 专 业: 软件工程 学生姓名: 学 号: 起 迄 日 期: 2008年 6 月 8 日 6 月 19日 课程设计地点: 硬件综合室、多媒体技术室 设计评语:(评阅教师填写) 评阅人: 年 月 日课 程 设 计 说 明 书1课程设计题目:微机串口通信内环自检2课程设计内容:对PC机辅串口进行内环自动测试,并实现两台PC机之间的通信。3课程设计目的:了解PC机串口的工作原理,掌握PC机串口自动测试的编程方法。课 程 设 计 说 明 书4课程设计要求:(1)采用查询方式将下列测试电文送到辅串口发送器,经过内部自环接受,显示在屏幕上,通信速率选用4800波特,无校验传输,一帧字符有8个数据位,2个停止位,按下任意键时测试结束。测试电文如下:THE QUICK BROWN FOX JUMPS OVER LAZY DOG(2)用一条串口线将两台计算机直接相连,实现两台计算机近距离通信。在一台PC机键入字符,从8250的发送端发送给另一台PC机,另一台PC机的 8250的接收端接收,然后在屏幕上显示出来。5设计详细说明(包括硬件原理图、流程图)利用微机系统串行口设计串行通信程序的时候,应首先根据课题要求(自发自收、单工通信还是双工通信)和欲采用的编程手段(对端口直接操作还是调用BIOS通信软件),完成RS-232连接线的连接,创建正确的串行通信外部环境。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在芯片内部似乎是被“切断”了。有鉴于此,当8350设置为内环自检方式的时候,只能采用查询方式,而且只能采用对端口直接操作的编程手段,完成数据的发送和接受。【程序流程图】(直接访问端口寄存器,如图3-19) (2)双机通信用串口电缆将两台机算机的COM2连接起来,把计算机设置成空MODEM方式,并为此编制了两个汇编语言程序:其一为数据发送程序;其二为数据接收程序。为了确保每个字符发送出去,并且被接收,发送接收双方的波特率设置一致,并且均采取查询方式进行下一步操作。接收数据程序只需执行一次,即驻留在内存中,此后,只要号计算机有数据要发送,则号机随时接收并显示在屏幕上。课 程 设 计 说 明 书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程序代码 源程序: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 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, CHOICE(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 ;如果输入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 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 ;对辅串口进行初始化 INT 14H MOV DX, 2FCH ;MODEM控制寄存器辅串口地址-DX MOV AL, 00010000B ;D4=1,8250工作在内部自环方式 OUT DX,AL RETI8250ENDP;双机通信NEXT2: DISP MESG2 ;显示操作信息,发送还是接收信息 MOV AH,1 INT 21H ;等待键入一个字符,有回显,响应Ctrl_C CMP AL,1 JE SENDM ;当输入为1时,转发送信息 CMP AL,2 JE RECEM ;当接受为2时,转接收信息 JMP NEXT2SENDM: ;发送信息 MAIN: ;对8250主串口进行初始化。通信速率选用4800波特,无校验传输,一桢字符有8个数据位,2个停止位 MOV AL,80H MOV DX,3FBH OUT DX,AL ;80H-通信线控制寄存器,使寻址位为1 MOV DX,3F9H MOV AL,0 OUT DX,AL ;除数高8位-除数寄存器高8位 MOV DX,3F8H MOV AL,18H OUT DX,AL ;除数低8位-除数寄存器低8位 MOV AL,00000111B ;把命令字写入通信线控制寄存器 MOV DX,3FBH OUT DX,AL MOV DX,3F9H MOV AL,0 OUT DX,AL ;查询方式,置中断允许命令字为0 WAIT0: MOV AH,0BH INT 21H ;查询有无键盘输入,响应Ctrl_C CMP AL,0 ;AL=0时无输入,AL=0FFH时有输入 JE WAIT0 ;当无输入时,返回等待 MOV AH,0 INT 16H ;读取键入的一个字符,无回显,响应Ctrl_C,无键入则等待 PUSH AX MOV AH,02H MOV DL,AL INT 21H ;DOS功能调用,显示一个字符,DL=待显示的ASCII码 POP AX CALL SENTCHAR JMP WAIT0 ;传输字符;从本机向对方发送字符串,同时在两个屏幕上都显示;按回车键,则双方都换行,按ESC键,双方都退出。SENTCHAR PROC NEAR PUSH AX PUSH DS MOV AX,DATA MOV DS,AX PUSH BX PUSH CX PUSH DX DISP MESG3 ;显示提示信息 STATUE: ;读取通信线路状态,查询工作 MOV DX,3FDH IN AL,DX ;读通信线状态字 TEST AL,20H ;检测发送保持寄存器是否为空 JNZ KBOARD ;已空,转发送程序KBOARD: MOV AH,0BH INT 21H ;查询有无键盘输入,响应Ctrl_C CMP AL,0 JZ KBOARD ;无字符输入,循环等待 MOV AH,0 ;有字符输入则读取字符 INT 16H ;读取键入的一个字符,无回显,响应Ctrl_C MOV DX,3F8H OUT DX,AL ;将字符写入到发送保持寄存器 CMP AL,1BH ;ESC的ASCII码为0011011B JZ DONE1 ;输入为ESC键,则退出程序返回DOS,同时对方也返回DOS PUSH AX MOV AH,02H MOV DL,AL INT 21H ;DOS功能调用,显示输一个字符 POP AX CMP AL,0DH ;继续检查是否是ENTER键,ENTER的ASCII码为0001101B JNZ STATUE ;如果不是ENTER键则继续输入下一个字符 MOV DL,0AH ;换行的ASCII码为00001010B MOV AH,02H INT 21H ;显示换行 JMP STATUE ;换行后继续输入下一个字符DONE1: POP DX ;出栈 POP CX POP BX POP DS POP AX RETSENTCHAR ENDPRECEM: ;接收信息START1: ;通信速率选用4800波特,无校验传输,一桢字符有8个数据位,2个停止位 MOV AL,80H MOV DX,3FBH OUT DX,AL ;80H-通信线控制寄存器,使寻址位为1 MOV DX,3F9H MOV AL,0 OUT DX,AL ;除数高8位-除数寄存器高8位 MOV DX,3F8H MOV AL,18H OUT DX,AL ;除数低8位-除数寄存器低8位 MOV AL,00000111B MOV DX,3FBH OUT DX,AL ;把D7=0的命令字写入通信线控制寄存器,确定一帧数据的格式 MOV DX,3F9H MOV AL,0 OUT DX,AL ;查询方式,置中断允许命令字为0 CALL RECEIVE1 MOV AX,4C00H ;返回DOS INT 21HRECEIVE1 PROC NEAR PUSH AX PUSH BX PUSH DX DISP MESG4 ;屏幕显示信息,接收到得字符串 REC: MOV DX,3FDH IN AL,DX ;读通信线路状态寄存器 TEST AL,1EH ;判断接收是否有错 JNZ ERROR1 ;有错,则转出错处理 TEST AL,01H ;无错,检查接收数据是否准备好 JNZ RECEIVE2 ;准备好转接收程序 JMP REC ;继续读取下个数RECEIVE2: MOV DX,3F8H IN AL,DX ;从输入缓冲寄存器读数据 AND AL,7FH ;传送标准ASCII码 PUSH AX ;保存数据 MOV DL,AL MOV AH,02H INT 21H ;屏幕显示该数据 POP AX ;恢复数据 CMP AL,1BH ;判断是否为ESC键
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 海藻饲料肥料制作工专业知识考核试卷及答案
- 陶瓷彩绘工培训考核试卷及答案
- 考点解析-冀教版七年级下册期末测试卷(研优卷)附答案详解
- 木材检验员数字化技能考核试卷及答案
- 2025年加热电缆行业研究报告及未来行业发展趋势预测
- 全球煤炭市场供需预测模型-洞察及研究
- 可变电容器装校工数字化技能考核试卷及答案
- 2024-2025学年高中物理 第8章 气体 3 理想气体的状态方程说课稿 新人教版选修3-3
- (2024年秋季版)黑龙江省七年级道德与法治下册 第一单元 青春时光 第三课 青春的证明 第2框 青春有格说课稿 新人教版
- 进口高端医疗器械与技术培训及售后服务合同
- 华中数控车床课件
- 2025年食品安全监督员专业技能考核试题及答案解析
- 七年级初一新生家长会上校长走心讲话:陪孩子一起长大是一场不能重来的旅程
- 企业微信办公使用教程
- 学堂在线 大学历史与文化 章节测试答案
- 大学澡堂管理办法
- 2025年全国“质量月”企业员工全面质量管理知识竞赛题库及答案
- 百货商场服务礼仪培训
- 汉语言文学转专业考试题目含答案
- 神经外科一般护理常规
- 2025年党建知识竞赛题库及答案(完整版)
评论
0/150
提交评论