PC机双机串行通信_第1页
PC机双机串行通信_第2页
PC机双机串行通信_第3页
PC机双机串行通信_第4页
PC机双机串行通信_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

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

文档简介

1、信息科学与技术学院微机原理与接口技术课程设计报告题目名称:PC机与PC机间进行串行通信学生姓名:吴森学 号:2009082203专 业:计算机科学与技术班 级:09级(01)班指导教师:裘祖旗 张更新完成日期:2012年1月2日目录一设计任务与技术要求:- 3 -二课程设计总结报告正文- 3 -1. PC机间串行通信测试- 3 -1.1 设计思路- 3 -1.2 程序框图- 4 -1.3 程序清单- 5 -2. PC机间进行字符动画控制- 6 -2.1 设计思路- 6 -2.2 程序框图- 7 -2.3 从机程序清单- 7 -3. 程序分析- 7 -4. 调试步骤- 7 -5. 开发心得- 7

2、 -三参考文献- 7 - 一设计任务与技术要求:A PC与PC机能进行串行通信;B 一台PC机能对另一台PC机进行字符动画控制扩展功能:制定一定的通信协议本串行通信程序利用汇编语言通过BIOS中断调用和DOS功能调用实现PC机双机串行通信。其中,上位机和下位机串行口均为辅串口COM2(口地址为2FXH),对外用9针连接器与令一台PC机连接;BIOS通过“INT 14H”4个中断服务子程序,分别完成串口初始化编程、发送一帧数据、接受一帧数据以及测试通信线状态。本程序分为PC机串口自动测试程序(目的是测试串口好坏)和PC机全双工双机通信程序两个部分。二课程设计总结报告正文1. PC机间串行通信测试

3、 对PC机主串口进行外环自动测试,要求:(1) 调用BIOS通信软件,采用查询方式编程,将下列测试电文10行由主串口发出,经外环连接线再由主串口接受送屏幕显示。测试电文如下:THE QUICK BROWN FOX JUMPS OVER LAZY DOG(2) 通信速率为1200波特,一帧字符有8个数据位,1个停止位,无校验。1.1 设计思路 由于调用BIOS通信软件发送和接受数据,因此主串口RS-232C连接器必须按图1(a)连线。 (a)有联络线自发自收 (b) 有联络线全双工通信 图 1 串行通信RS-232C连接器连线方式 测试电文译为:狡猾的褐色狐狸越过懒狗的背。它是国际电报通信常用的

4、测试电文,电文包含了26个字母,又称狐狸电文。在一条报路上长时间的循环发送这条电文,接收方统计在一定时间内的差错率,即可知道报路的通信质量。1.2 程序框图 程序框图如图2所示。图 2 PC机间串行通信测试程序框图1.3 程序清单DATASEGMENTTEXTDBTHE QUICK BROWN FOX JUMPS OVER LAZY DOG,0DH,0AHLLLEQU$TEXTERRORDBCOM2 BAD!,0DH,0AH, $DATAENDS;-CODESEGMENTASSUMECS: CODE, DS: DATABEG:MOVAX, DATAMOVDS, AXCALLI8250;辅串口初

5、始化MOVCH,10;电文行数送CHAGAIN:MOVCL,LLL;电文长度送CLMOVBX, OFFSET TEXTSEND:MOVAL, BX;取数据MOVAH, 1;BIOS调用MOVDX, 1INT14H;发送一个数据TESTAH, 80H;发送成功否?JNZ DISPERR;否,转出错处理RECEIVE:MOVAH, 2;BIOS调用MOVDX, 1INT14H;接受一个数据TESTAH, 80H;接受成功否?JNZDISPERR;否,转出错处理DISP:MOVAH, 2MOVDL, ALINT21H;接受字符送屏幕显示INCBXDECCL;电文长度计数JNZSENDDECCH;行计

6、数JNZAGAINJMPEXITDISPERR:MOVAH, 9MOVDX, OFFSET ERRORINT21H;显示出错信息EXIT:MOVAH, 4CHINT21H;返回DOS;-I8250PROCMOVAX, 0083H;波特率1200,无校验,8位MOVDX, 1;使用辅串口INT14HRETI8250ENDPCODEENDSENDBEG如果辅串口是好的,程序执行后自动屏显10行测试电文,否则将屏显“COM2 BAD!”。2. PC机间进行字符动画控制 利用汇编语言进行编程,实现两台计算机间数据的异步串行发送和接受,要求:(1)上位机接收键盘输入的a、b两个参数,将参数的值通过计算机

7、的串行口传输到下位机,同时接受下位机的计算结果;下位机接受到a、b值后,计算y = ax+b,同时将结果传输到上位机。(2)上位机在线修改a、b的值,下位机能随之相应。(3)界面能够清晰的反映操作步骤和操作结果。2.1 设计思路(1)数据发送采用查询方式,数据接受采用中断方式,对端口直接操作编写通信程序。 (2)上位机传输a、b两个参数时,回车后方为有效参数。 (3)Esc为通信结束字符,当双方都键入Esc的时候结束通信,各自返回DOS。通信结束时,双方不可能同时按下Esc键,必然是有先有后,反送方必须保证通信字符能够完整的传送到对方,这些都必须在程序中考虑进去。 (4)通信速率2400波特,

8、一帧字符有8个数据位,1个停止位,无校验。2.2 程序框图 程序框图如图3所示。图 3 PC机间进行字符动画控制从机程序框图2.3 从机程序清单DISPACROVARMOVAH, 9MOVDX, OFFSET VARINT21HENDM;-DATASEGMENT0LD0BDD?MESG1DBPlease wait a minute, 0DH, 0AH, $MESG2DBCommunication line bad!, 0DH, 0AH, $MESG3DBOk!, 0DH, 0AH, $TTTDD1000000DATAENDS;-CODESEGMENTBUFDB?ASSUMES: CODE, D

9、S: DATABEGMOVAX, DATAMOVDS, AXCLICALLI8250;8250初始化CALLI8259;开放辅串口中断CALLRW0B;置换0BH型中断向量STIMOVSI, 10AGA:DISPMESG1;显示等待信息MOVDX, 2FEH;读MODEM状态寄存器INAL, DXANDAL, 00110000BCMPAL,30H;、引脚为逻辑0?JEOK;联络成功,转OKCALLDELAY;延时1sDECSIJNZAGADISPMESG2;显示通信线路坏JMPRETURNOK:DISPMESG3;显示OKSCANT:MOVDX, 2FDH;读通信线状态寄存器INAL, DXT

10、ESTAL, 20H;发送保持寄存器空闲否?JZSCANT;否,转SCANTMOVAH, 1INT16H;有键入否?JZSCANT;否,转SCANTMOVAH, 0INT16H;取键入字符x的ASCII送ALSUBAL, 60H;将x变换为十六进制数MULCL;计算a*xADDAL, CH;计算y=ax+bADCAX, 3030H;将y变换为ASCII码MOVDX, 2F8HOUTDX, AL;发送y的低字节MOVAL, AHOUTDX, AL;发送y的高字节CMPAL, 1BH;是Esc否?JNZSCANT;否,转SCANTWWW:MOVDX, 2FDHINAL, DX;读通信状态寄存器TE

11、STAL, 40H;发送移位寄存器是否为空?JZWWW;否,转WWWLAST:CMPCS: BUF, 1BH;受到对方Esc否?JNZLAST;否,转LASTRETURN:CALLRESETMOVAH, 4CHINT21H;-RECEIVEPROCPUSHAX;保护现场PUSHDX;保护现场MOVDX, 2F8HINAL, DX;接受数据MOVCX: BUF, AL;送BUF单元保存NEXT:MOVAH, 0EHINT10H;屏幕显示CMPAL, 0DH;是否回车?JNEEXIT;否,转EXITMOVCH, CL;是,参数a、b顺次MOVCL, AL; 存入CL、CHMOVAL, 0AHINT

12、10H;补送换行EXIT:MOVAH, 20H;中断结束命令OUT20H, AL;送8259命令寄存器POPDX;恢复现场POPAX;恢复现场IRET;中断返回RECEIVEENDP;-I8250PROCMOVAX, 00A3HMOVDX, 1INT14HMOVDX, 2F9HMOVAL, 01HOUTDX, AL;允许接收中断MOVDX, 2FCHMOVAL, 00001011BOUTDX, AL;令、端为逻辑0RETI8250ENDP;-I8259PROC;开放辅串口中断INAL, 21HANDAL, 11110111BOUT21H, ALRETI8259ENDP;-RW0BPROC;置换

13、0BH型中断向量MOVAX, 350HBHINT21HMOVWORD PTR 0LD0B, BXMOVWORD PTR 0LD0B+2, ESPUSHDSMOVAX, CODEMOVDS, AXMOVDX, OFFSET RECEIVEMOVAX, 250BHINT21HPOPDSRETRW0BENDP;-RESETPROC;恢复0BH型中断向量MOVDX, WORD PTR 0LD0BMOVDS, WORD PTR 0LD0B+2MOVAX, 250BHINT21HMOVDX, 2FCHMOVAL, 0OUTDX, AL;令、端为逻辑1RETRESETENDP;-DELAYPROCMOVAH

14、,86H;延时1sMOVCX, WORD PTR TTT+2MOVDX, WORD PTR TTTINT15HRETDELAYENDPCODEENDSENDBEG主机程序与从机程序类似,这里不再赘述。3. 程序分析 进行通信联络要采取两项措施:其一,在8250初始化子程序中,响MODEM控制寄存器写入命令字时,令D1位为1,D0位为1,从而使RS-232C的端子、端子输出逻辑0,通知对方本端已经做好了数据发送和数据接受的准备工作;其二,对方在程序执行后,读取MODEM状态寄存器的内容,检查D5、D4位,这两位都为1,说明线路畅通,可以运行通信程序。4. 调试步骤 程序调试要分两步进行,首先在单机上调试,按照图1(a)连线,使辅串口具有自发自收的外部环境,在这个环境下调试“PC机间串行通信测试程序”,调试成功后,再在双机连同的环境下调试“PC机间进行字符动画控制程序”。双机连通实验时,先在一端执行程序,令一端暂不运行,以便观察屏幕的错误信息。5. 开发心得通过这次课程设计,我拓宽了知识面,锻炼了能力,综合素质得到较大提高。安排课程设计的基本目的,在于通过理论与实际的结合,人与人的沟通,尤其是观察、分析和解决问题的实际工作能力。作为整个学习体系的有机组成部分,课程设计并不是独立的。它的一个重要功能,在于运用学习成果,检验学习成果,把课堂上学

温馨提示

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

评论

0/150

提交评论