标准全双工查询方式异步串行通信.doc

上传人:数据九部 文档编号:10210675 上传时间:2021-04-29 格式:DOC 页数:12 大小:103.50KB
返回 下载 相关 举报
标准全双工查询方式异步串行通信.doc_第1页
第1页 / 共12页
标准全双工查询方式异步串行通信.doc_第2页
第2页 / 共12页
标准全双工查询方式异步串行通信.doc_第3页
第3页 / 共12页
标准全双工查询方式异步串行通信.doc_第4页
第4页 / 共12页
标准全双工查询方式异步串行通信.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《标准全双工查询方式异步串行通信.doc》由会员分享,可在线阅读,更多相关《标准全双工查询方式异步串行通信.doc(12页珍藏版)》请在三一文库上搜索。

1、RS-232 标准全双工查询方式异步串行通信实验 报 告实验题目: RS-232标准全双工查询方式异步通信实验 专 业: 计算机科学与技术 学生姓名: 班级学号: 分组序号: 指导教师: 2011 年 5月27 日RS-232标准全双工查询方式异步串行通信实验一、 实验时间 2011 5/27二、 实验地点 三、 实验小组人员四、 指导老师五、 实验目的 熟学习RS-232C标准的串行通信接口电路及串行通信收/发程序的设计原理与方法六、 实验内容 甲乙两台微机之间,按RS-232C标准协议,进行零MODEM方式,全双工串行通信。所谓全双工是双方通过各自的键盘按键发送,同时接收对方发来的字符。发

2、送与接收的字符均在屏幕上显示。通信数格式为起止式:1位停止位,7位数据位,无校验,波特率因子为16。波特率为1200bps。按ESC键,退出七、 试验要求采用两台MFID平台板上的串行接口电路进行硬件连接,分别编写甲乙两机各自的发送与接收程序,并进行调试,直至程序正常运行八、 实验原理1. RS-232标准串行通信接口电路原理如图2.1.17所示。接口电路以8251为核心,8253提供发/收时钟,8255控制8253的Gate门。另外,还有MAX232作电平转换,MAX491作RS-232与RS-485的转换、用RxRDY作中断申请开关等。因此,该接口电路可实现两种接口标准和查询/中断两种方式

3、的串行通信2. RS-232C标准串行通信接口电路设计原理和方法的详细阐述,参考计算机接口技术相关参考书.内部复位方式命令返回工作命令计数初值计算8253-5初始化返回计数初值装入(a)(b)空操作九、 实验流程图 输入所选的波特率计数初值计算与装入call set-bps是ESC键?打开8253接收准备好?N8251初始化call init51发送1个字符关闭8253(c)查键盘bl有键按下? YYYYN显示发送字符接收一个字符显示接收字符发送准备好?是ESC键?YNNNRxRDY=1?TxRDY=1?结束返回DOS开始全双工查询方式串行通信十、 实验源程序 data segment tem

4、p dw (?)message db please input some informations,0dh,0ah db quit with esc,0dh,0ah,$input_message db 0:110 1:150 2:300 3:600,0dh,0ah db 4:1200 5:2400 6:4800 7:9600,0dh,0ah db please take a choice(07)of baud_rate:,0dh,0ah,$error_message db input error! try again,0dh,0ah,$data endscode segmentassume c

5、s:code, ds:dataint51 proc near ;8251A初始化子程 mov dx,309h ;8251A命令口 xor ax,ax ;空操作 call charout ;送数子程 delay:loop delay mov al,40h ;内部复位 call charout mov al,4ah ;8251A方式命令 call charout mov al,27h ;8251A工作命令 call charout retint51 endp charout proc near out dx,al ;送数子程 push cx mov cx,10000 ;延时gg: loop gg

6、pop cx ret ;返回charout endpset_bps proc near ;8253计数初值计算与装入子程 mov dx,1dh ;取8253输入时钟频率clk作被除数 mov ax,4b54h mov bx,temp ;取所选波特率作第一个除数 div bx ;除法运算,商数送ax mov dx,0 ;余数清零 mov bx,16 ;取波特率因子作第二个除数 div bx ;除法运算,得计数初值(商数)送ax mov bx,ax ;保存计数初值至bx mov dx,307h ;8253命令口 mov al,0b6h ;8253初始化命令 out dx,al mov dx,306

7、h ;8253计数器2的端口 mov ax,bx ;取计数初值 out dx,al ;装计数初值低字节 mov al,ah ;装计数初值高字节 out dx,al ret ;返回set_bps endpmain proc far ;通信主程序 mov ax,data mov ds,ax mov ah,9 ;提示选择波特率 mov dx,seg input_message mov ds,dx mov dx,offset input_message int 21hinput: mov ah,8 ;输入波特率 int 21h cmp al,0 ;输入0,表示选择110baud jne next1 m

8、ov temp,110 ;存入bps00 jmp begin ;跳转开始begin处next1: cmp al,1 jne next2 mov temp,150 ;1表示150b/s jmp begin next2: cmp al,2 jne next3 mov temp,300 ;2表示300b/s jmp begin next3: cmp al,3 jne next4 mov temp,600 ;3表示600b/s jmp begin next4: cmp al,4 jne next5 mov temp,1200 ;4表示1200b/s jmp begin next5: cmp al,5

9、jne next6 mov temp,2400 ;5表示2400b/s jmp begin next6: cmp al,6 jne next7 mov temp,4800 ;6表示150b/s jmp begin next7: cmp al,7 jne error ;若波特率选择有错,则重新输入 mov temp,9600 ;7表示9600b/s jmp begin error: mov ah,9 ;提示波特率选择出错,则重新输入 mov dx,seg error_message mov ds,dx mov dx,offset error_message int 21h jmp input b

10、egin: call set_bps ;调用8253的set_bps子程序,设置所选波特率的8253-5 call int51 ;调用8251A子程序,初始化8251A lea dx,message mov ah,09 int 21h mov dx,303h ;初始化8255A mov al,80h out dx,al mov al,0dh ;置PC6=1,打开8253的GATE2,开始输出方波 out dx,alcheckkey:mov ah,0bh ;按键发送 int 21h cmp al,0 ;有键按下? Je receiv ;若无键按下,则转接收 mov ah,01 ;若有键按下,则从

11、KB读入,并在CRT上显示 int 21h mov bl,al ;保存键值,以备发送 cmp al,1bh ;是ESC? je quit ;是,则退出,并返回DOS mov dx,309h ;不是,则发送数据 transm: in al,dx test al,01 ;发送准备好?TXRDY=1? jz transm ;未准备好,则等待 mov dx,308h ;已准备好,则将键入的字符发送出去 mov al,bl out dx,al jmp checkkey ;发送1个字符后00,再转按键发送 receiv: mov dx,309h ;接收数据 in al,dx test al,02 ;接收数

12、据准备好?RXRDY=1? jz checkkey ;未准备好,即无数据接收,则转按键发送 mov dx,308h ;已准备好,即有数据传送过来,则接收1个字符 in al,dx mov dl,al ;显示接收的字符 mov ah,02h int 21h mov ah,0bh int 21h cmp al,00h je checkkey mov ah,08h int 21h cmp al,1bh ;是ESC? je quit ;是,则退出,返回DOS jmp checkkey ;不是,则接收1个字符后,再转按键发送 quit: mov al,0ch ;置PC6=0,关闭8253的GATE2,停

13、止输出方波 mov dx,303h out dx,al mov ax,4c00h ;程序退出 int 21hmain endpcode ends end main 十、 实验步骤步骤一: 硬件连线跳线设置:跳接说明JP12-3零MODEMN方式JP22-3选择RS232协议JP3空/跳接(RXD-TXD)双机通信/自发自收JP4跳接/空收发时钟由OUT2提供/用户自定义JP11(1-2)跳接用PC6接Gate2口使用3芯屏蔽电缆线,直接将甲乙两机MFID平台板上的RS-232C串行接口插座J7连接起来。平台乙平台甲J7J7连接线K区E区1.19318MCLK2F区Gate2PC6步骤二:将平台的电源开关拔到“内”的位置上。在配套集成环境下进行硬件检测,达到初始化芯片的目的。步骤三:(演示实验步骤)打开集成环境在“演示实验”菜单下点开“基本接口实验”。在“基本接口实验”中的“串行接口实验”中选择“全双工串行通信(传送字符)”实验进行演示。步骤四:观看实验现象得出结论。十一、 实验心得 这次实验是两个小组在一起合作做成功的,这就更要求我们要更好的配合,才能更快更好的完成试验。通过这次试验也使我们对学习RS-232C标准的串行通信接口电路及串行通信有了更深的了解,开始由于硬件的原因,我们试验一直没能成功,但通过我们组努力还是成功了,这次的试验让我们明白了,硬件原理的重要性

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1