实验三串行通信

上传人:人*** 文档编号:473399141 上传时间:2023-04-02 格式:DOCX 页数:7 大小:177.13KB
返回 下载 相关 举报
实验三串行通信_第1页
第1页 / 共7页
实验三串行通信_第2页
第2页 / 共7页
实验三串行通信_第3页
第3页 / 共7页
实验三串行通信_第4页
第4页 / 共7页
实验三串行通信_第5页
第5页 / 共7页
点击查看更多>>
资源描述

《实验三串行通信》由会员分享,可在线阅读,更多相关《实验三串行通信(7页珍藏版)》请在金锄头文库上搜索。

1、北京双工人季Beifing旷 TnjhmAfgy本科实验报告实验名称:串行通信课程名称:计算机原理与应用实验时间:2014/5/27任课教师:马永锋实验地点:10-102实验教师:苏京霞实验类型: 原理验证 综合设计 自主创新学生姓名:姚晨学号/班级:1120110334/05111103组号:学院:信息与电子学院同组搭档:专业:信息工程成绩:信息与电子学院3m. fl*JUMP ILICTKNICJI、实验目的1、了解串行通信的基本原理。2、掌握串行接口芯片8251的工作原理与编程方法。3、掌握串行接口芯片8250的工作原理与编程方法。4、掌握对串行接口芯片的初始化编程;学会串行半双工与全双

2、工的编程技巧。、实验内容及步骤1、利用PC机系统的串行通信接口实现与实验系统的双机通信,PC机的串行通信接口的端口地址为3F8H,并画出三线连接,七线连接通信接口的连线图,接口为标准RS-232(25 芯)插座。2、按图1连接好电路淇中8254计数器用于产生 8251的发送与接收时钟,TXD与RXD连在九针接口处。串行通讯电路OUT电G A T tOC U K O ;U5 q2ncs口 M mxac5-Ml口*卜 2白 T :一口5.K 01234667 -sdr/e l D口口 ppt)Dc_RQcR cT/心RxDTnRPY一口3、连线:CLK0/8254接1M时钟CLK/8251接1M时

3、钟(系统已经连接,不用学生连接)GATE0/8254接+5VOUT0 /8254接TX/RXCLK/8251CS/8254接Y0/IO地址CS/8251接Y7/IO地址RXD/8251接TXD/九针接口TXD/8251接RXD/九针接口4、8254计数器的计数初值二时钟频率/(波特率X波特率因子 ,这里的时钟频率接 1MHz,波特率若选1200,波特因子若选16,则计数器初值为52。5、设串行通信的波特率为 1200、偶校验、数据位为 7位、1位停止位,利用查询方式实现单工 通信。要求发送方将任一文件传送到收方,收方收到后将源程序写入磁盘。分别编写收方与发方 的通信程序。6、上述参数不变,用中

4、断方式实现半双工通信,编写程序。7、 PC机寄存器的端口地址如下表所示PC机率存器的端口地址1心端口dST寄存器居林3F8*OUT发送保持寄存罂3F8*IN搂枚数飒窗存躁3*OUT波特率困于(LSB)3FP*OUT波净率国于tMSB)丸5OL7T中断允许语作耕3FBOUT战用住%寄存器3FAIN中御谕;志寄百器3FCOIJTMODFM控制用市嚣3FDIN戏路状态寄存需3FEINMODEM状态寄存器线路控制寄存器第七位DLAB=0线路控制寄存器第七位DLAB=1波特率和除数闪子对.濯表诚徜+.因子值波特串因不值单位HZMSBLSB单位HZMSBLSB5009DOLEOO00-IG7506DO2D

5、OO003A110(M1724000DW134. 56!WOO002015003M001&3000)ROroo0010cOO00CO9oOO00oc12W州网三、编程提示1、可以首先采用查询方式,实现单工PC机系统与实验系统的双机通信 ,之后再实现双工方式通信;2、再尝试实现利用中断方式,实现单工PC机系统与实验系统的双机通信,之后再实现双工方式通信;3、要求能实现字符与文件的传输 ;4、程序流程图如图所示四、实验 程序1、发送 端程 序JTRANSLATE FILES stack segment para stackstackdb 256 dup(0) stack ends datasegm

6、ent name0 db 64hdb 64h dup(?)buff dw 64h dup(?) data ends code segment para public code startproc farassume cs: code,ds:data,es:datapush dsmov ax,0push axmov ax,datamov ds,axmovdx,3fbh;3fb ctrl registermoval,80h;outdx,al;给线路控制寄存器 DLAB位置1movdx,3f8hmoval,60h;写除数因子低位outdx,alincdx;写除数因子高位moval,00outdx,a

7、l;写除数因子寄存器,1200baudmovdx,3fbhmoval,00011011b;0 寻址识别位,0禁止间断,*,11 偶校验outdx,alincdx; 设置调制解调器控制寄存器MCRmoval,00001111b; 正常工作状态,引脚低电平outdx,almovdx,3fdh;线路状态寄存器inal,dxtestal,20h;判断就是否显示好,发出数据jzfamovah,01hint21hmovdx,3f8houtdx,alpushbxint10hpopbxpushcxmovcx,0fhtr:1 位停止位 ,8 位数据gg:; 循环延迟nop nop nop loop gg pop

8、 cx jmp tr startendp code endsend start2、 接收端程序 :;TRANSLATE FILESstack segment para stackstack db 256 dup(0)stack endsdatasegmentname0 db 64hdb 64h dup(?)buff dw 64h dup(?)dataendscode segment para public codestartproc farassume cs: code,ds:data,es:datapushdsmovax,0pushaxmovax,datamovds,axmovdx,3fbh

9、;3fb ctrl registermoval,80houtdx,al;给线路控制寄存器DLAB 位置 1movdx,3f8hmoval,60h;写除数因子低位outdx,alincdx;写除数因子高位moval,00outdx,al;写除数因子寄存器,1200baudmovdx,3fbhmoval,00011011b;0 寻址识别位,0禁止间断,*,11 偶校验,1 位停止位,8 位数据outdx,alincdx;设置调制解调器控制寄存器MCRmoval,00001111b;正常工作状态,引脚低电平outdx,alshoufa:mov dx,3fdh;读高位寄存器,判断就是否接收好inal,

10、dxtestal,01hjzshoufarecv:movdx,3f8h ;读数据inal,dxpushbxmovbx,0movah,14;显示int 10hpopbxmovcx,0fhgg:nopnopnoploop gg ; 循环延迟pop cxjmp shoufastart endpcode endsend start五、实验结果将两台电脑通过九针接口相连,一端运行收端代码一端运行发端代码,发端发送的字符全都及时正确的在收端显示。六、实验感想本次实验最大的难度就是对于8254 的初始化编程以及控制字各位的含义理解不到位, 导致一开始无从下手。 编程过程中遇到了许多问题 , 但就是在参考了书本上的例题后基本上得到了解决。 程序最后运行的结果相对令人满意。 本来想做出一个双工的通信系统, 但就是由于知识的欠缺 , 没能够完成。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 商业/管理/HR > 营销创新

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