通信程序课程设计_第1页
通信程序课程设计_第2页
通信程序课程设计_第3页
通信程序课程设计_第4页
通信程序课程设计_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

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

文档简介

串行通信程序课程设计本串行通信程序利用汇编语言通过BIOS中断调用和DOS功能调用实现PC机双机串行通信。其中,上位机和下位机串行口均为辅串口COM2(口地址为2FXH),对外用9针连接器与令一台PC机连接;BIOS通过TNT14H”4个中断服务子程序,分别完成串口初始化编程、发送一帧数据、接受一帧数据以及测试通信线状态。本程序分为PC机串口自动测试程序(目的是测试串口好坏)和PC机全双工双机通信程序两个部分。PC机串口自动测试对PC机主串口进行外环自动测试,要求:调用BIOS通信软件,采用查询方式编程,将下列测试电文10行由主串口发出,经外环连接线再由主串口接受送屏幕显示。测试电文如下:THEQUICKBROWNFOXJUMPSOVERLAZYDOG通信速率为1200波特,一帧字符有8个数据位,1个停止位,无校验。1.设计思路由于调用BIOS通信软件发送和接受数据,因此主串口RS-232C连接器必须按图1(a)连线。(a)有联络线自发自收 (b)有联络线全双工通信图1串行通信RS-232C连接器连线方式测试电文译为:狡猾的褐色狐狸越过懒狗的背。它是国际电报通信常用的测试电文,电文包含了26个字母,又称狐狸电文。在一条报路上长时间的循环发送这条电文,接收方统计在一定时间内的差错率,即可知道报路的通信质量。2.程序框图程序框图如图2所示。图2PC机串口自动测试程序框图3.程序清单DATASEGMENTTEXTDB ‘THEQUICKBROWNFOXJUMPSOVERLAZYDOG',0DH,0AHLLLEQU$-TEXTERRORDB ‘COM2BAD!',0DH,0AH,‘$'DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATABEG:MOVAX,DATAMOVDS,AXCALLI8250;辅串口初始化

MOVCH,10;电文行数送CHAGAIN:MOVCL,LLL;电文长度送CLMOVBX,OFFSETTEXTSEND:MOVAL,[BX];取数据MOVAH,1;BIOS调用MOVDX,1INT14H;发送一个数据TESTAH,80H;发送成功否?JNZDISPERR;否,转出错处理RECEIVE:MOVAH,2;BIOS调用MOVDX,1INT14H;接受一个数据TESTAH,80H;接受成功否?JNZDISPERR;否,转出错处理DISP:MOVAH,2MOVDL,ALINT21H;接受字符送屏幕显示INCBXDECCL;电文长度计数JNZSENDDECCH;行计数JNZAGAINJMPEXITDISPERR:MOVAH,9MOVDX,OFFSETERRORINT21H;显示出错信息EXIT:MOVAH,4CHINT21H;返回DOSI8250PROCI8250PROCMOVAX,0083HMOVDX,1INT14HRETI8250ENDPCODEENDSENDBEG;波特率1200,无校验,8位;使用辅串口如果辅串口是好的,程序执行后自动屏显10行测试电文,否则将屏显“COM2BAD!”。PC机全双工双机通信利用汇编语言进行编程,实现两台计算机间数据的异步串行发送和接受,要求:(1)上位机接收键盘输入的a、b两个参数,将参数的值通过计算机的串行口传输到下位机,同时接受下位机的计算结果;下位机接受到a、b值后,计算y=ax+b,同时将结果传输到上位机。上位机在线修改a、b的值,下位机能随之相应。界面能够清晰的反映操作步骤和操作结果。1.设计思路(1)数据发送采用查询方式,数据接受采用中断方式,对端口直接操作编写通信程序。(2)上位机传输a、b两个参数时,回车后方为有效参数。(3)Esc为通信结束字符,当双方都键入Esc的时候结束通信,各自返回DOS。通信结束时,双方不可能同时按下Esc键,必然是有先有后,反送方必须保证通信字符能够完整的传送到对方,这些都必须在程序中考虑进去。(4)通信速率2400波特,一帧字符有8个数据位,1个停止位,无校验。2.程序框图程序框图如图3所示。图3PC机全双工双机通信从机程序框图

3.从机程序清单DISPACROMOVMOVINTENDMVARAH,9DX,OFFSETVAR21HDATASEGMENT0LD0BDD?MESG1DB‘Pleasewaitaminute..',0DH,0AH,‘$'MESG2DB‘Communicationlinebad!',0DH,0AH,‘$'MESG3DB‘Ok!',0DH,0AH,‘$'TTTDD1000000DATAENDSCODESEGMENTBUFDB?ASSUMES:CODE,DS:DATABEGMOVAX,DATAMOVDS,AXCLICALLI8250;8250初始化CALLI8259;开放辅串口中断CALLRW0B;置换0BH型中断向量STIMOVSI,10AGA:DISPMESG1;显示等待信息MOVDX,2FEH;读MODEM状态寄存器INAL,DXANDAL,00110000BCMPAL,30H;DSR、CTS引脚为逻辑0?JEOK;联络成功,转OKCALLDELAY;延时1sDECSIJNZAGADISPMESG2;显示通信线路坏JMPRETURNOK:DISPMESG3;显示OKSCANT:MOVDX,2FDH;读通信线状态寄存器INAL,DXTESTAL,20H;发送保持寄存器空闲否?JZSCANT;否,转SCANTMOVAH,1

INT16H;有键入否?JZSCANT;否,转SCANTMOVAH,0INT16H;取键入字符x的ASCII送ALSUBAL,60H;将乂变换为十六进制数MULCL;计算a*xADDAL,CH;计算y=ax+bADCAX,3030H;将丫变换为ASCII码MOVDX,2F8HOUTDX,AL;发送y的低字节MOVAL,AHOUTDX,AL;发送y的高字节CMPAL,1BH;是Esc否?JNZSCANT;否,转SCANTWWW:MOVDX,2FDHINAL,DX;读通信状态寄存器TESTAL,40H;发送移位寄存器是否为空?JZWWW;否,转WWWLAST:CMPCS:BUF,1BH;受到对方Esc否?JNZLAST;否,转lastRETURN:CALLRESETMOVAH,4CHINT21HRECEIVEPROCPUSHAX;保护现场PUSHDX;保护现场MOVDX,2F8HINAL,DX;接受数据MOVCX:BUF,AL;送BUF单元保存NEXT:MOVAH,0EHINT10H;屏幕显示CMPAL,0DH;是否回车?JNEEXIT;否,转exitMOVCH,CL;是,参数a、b顺次MOVCL,AL; 存入CL、CHMOVAL,0AHINT10H;补送换行EXIT:MOVAH,20H;中断结束命令OUT20H,AL;送8259命令寄存器POPDX;恢复现场POPAX;恢复现场IRET;中断返回RECEIVEENDPI8250PROCMOVAX,00A3HMOVDX,1INT14HMOVDX,2F9HMOVAL,01HOUTDX,AL;允许接收中断MOVDX,2FCHMOVAL,00001011BOUTDX,AL;令RTS、DTR端为逻辑0RETI8250ENDPI8259PROC;开放辅串口中断INAL,21HANDAL,11110111BOUT21H,ALRETI8259ENDPRW0BPROC;置换0BH型中断向量MOVAX,350HBHINT21HMOVWORDPTR0LD0B,BXMOVWORDPTR0LD0B+2,ESPUSHDSMOVAX,CODEMOVDS,AXMOVDX,OFFSETRECEIVEMOVAX,250BHINT21HPOPDSRETRW0BENDPRESETPROC;恢复0BH型中断向量MOVDX,WORDPTR0LD0BMOVDS,WORDPTR0LD0B+2MOVAX,250BHINT21HMOVDX,2FCHMOVAL,0

OUTRETDX,ALOUTRETDX,ALRESETENDPDELAYPROCMOVAH,86HMOVCX,WORDPTRTTT+2MOVDX,WORDPTRTTTINT15HRETDELAYENDPCODEENDSENDBEG主机程序与从机程序类似,这里不在螯述。;令RTS、DTR端为逻辑1;延时1s4.程序分析进行通信联络要采取两项措施:其一,在8250初始化子程序中,响MODEM控制寄存器写入命令字时,令D]位为1,D0位为1,从而使RS-232C的RTS端子、DTR端子输出逻辑0,通知对方本端已经做好了数据发送和数据接受的准备工作;其二,对方在

温馨提示

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

评论

0/150

提交评论