微机串口通信内环自检_第1页
微机串口通信内环自检_第2页
微机串口通信内环自检_第3页
微机串口通信内环自检_第4页
微机串口通信内环自检_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

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

文档简介

1、第第- -页共13页课程设计说明书续2开始YY选1?NY选2?N提示出错5.设计详细说明(包括硬件原理图、流程图)【程序流程图】(如图3-20、3-21、3-22)程序初始调用发送程序调用接受程序图3-20双机通信初始化8250,设定传输率1显示提示信息有键入?Y发送器为空?NNY有键入?YNN是enter?YNNY读状态寄存器接收有错?换行是enter?开始开始接收到数是esc?是esc键?图3-21发送程序Y发送器为空?NNY有键入?YNN是enter?YNNY读状态寄存器接收有错?换行是enter?开始开始接收到数是esc?是esc键?图3-21发送程序图3-22接受程序恢复原寄存器内容

2、保护原寄存器内容返回恢复原寄存器内容;保护原寄存器内容输入缓冲器处读数显示接收信息显示接收内容显示提示信发送并显示读键盘输入返回课程设计说明书程序代码源程序:DISPMACROVAR;定义宏,完成字符串的输出MOVAH,9MOVDX,OFFSETVARINT21HENDMDATASEGMENTTEXTDBTHEQUICKBROWNFOXJUMPSOVERLAZYDOG,0DH,0AHLLLEQU$-TEXT;电文长度-LLLERRORDBCOMBAD!,0DH,0AH,$NEQU24DUP()MESG1DB0DH,0AHDBN,MENU,0DH,0AHDBN,0DH,0AHDBN,|,0DH,

3、0AHDBN,|1.COM2INTERNALLOOP|,0DH,0AHDBN,|2.SHUANGJI|,0DH,0AHDBN,|3.EXIT|,0DH,0AHDBN,|,0DH,0AHDBN,0DH,0AHDBN,CHOICE(1,2,3):$,0DH,0AHMESG2DB0DH,0AHDBN,MENU,0DH,0AHDBN,0DH,0AHDBN,|,0DH,0AHDBN,|1.SENT|,0DH,0AHDBN,|2.RECIEVE|,0DH,0AHDBN,|,0DH,0AHDBN,0DH,0AHDBN,CHOICE(1,2):$,0DH,0AHMESG3DB0DH,0AH,PLEASEINP

4、UTTHEMESSEGE:,0DH,0AH,$MESG4DB0DH,0AH,THEMESSAGEYOUINPUTARE:,0DH,0AH,$DATAENDSCODESEGMENTASSUMECS:CODE,DS:DATASTART:MOVAX,DATAMOVDS,AXLAST:DISPMESG1;显示操作信息,选择是内环自检还是双机通信MOVAH,01HINT21H;等待键入一个字符,有回显,响应Ctrl_CCMPAL,1JENEXT1;如果输入1,转测辅串口内环自检CMPAL,2JENEXT2;如果输入2,转双机通信CMPAL,3JNELASTJMPEXIT;测试结束,退出;PC机辅串口的内

5、环自检NEXT1:CALLI8250;辅串口初始化AGAIN:MOVCX,LLL;电文长度一CXMOVBX,OFFSETTEXT;BX指向TEXT的首地址SCANT:MOVAH,01HINT16H;查询键盘缓冲区JNZEXIT;有键入,转退出MOVDX,2FDHINAL,DX;从DX指向的端口中读一个字节到ALTESTAL,20H;检查发送保持寄存器是否空闲JZSCANT;若不空闲,转SCANT输入检查MOVDX,2F8H;发送保持寄存器辅串口地址-DXMOVAL,BXOUTDX,AL;将字符送辅串口数据寄存器MOVSI,0SCANR:MOVDX,2FDHINAL,DX;读取通信线状态字TES

6、TAL,00011110B;检查有无错误标志JNZDISPERR;有错,显示出错信息TESTAL,01H;无错,检查接收数据是否准备好JNZRECEIVE;准备好,转接收程序DECSIJNZSCANRJMPDISPERRRECEIVE:MOVDX,2F8H;接收缓冲器辅串口地址-DXINAL,DX;接收一个数据MOVAH,2MOVDL,ALINT21H;送屏幕显示一个字符INCBXLOOPSCANT;一个电文长度计数JMPAGAIN;重复内环自检DISPERR:DISPERROR;显示出错信息EXIT:MOVAH,4CHINT21H;返回DOSI8250PROCMOVAX,00C7H;波特率4

7、800,无校验传输,2个停止位,一桢字符有8个数据位,即为11000111BMOVDX,1;对辅串口进行初始化INT14HMOVDX,2FCH;MODEM控制寄存器辅串口地址-DXMOVAL,00010000B;D4=1,8250工作在内部自环方式OUTDX,ALRETI8250ENDP;双机通信NEXT2:DISPMESG2;显示操作信息,发送还是接收信息MOVAH,1INT21H;等待键入一个字符,有回显,响应Ctrl_CCMPAL,lJESENDM;当输入为1时,转发送信息CMPAL,2JERECEM;当接受为2时,转接收信息JMPNEXT2SENDM:;发送信息MAIN:;对8250主

8、串口进行初始化。通信速率选用4800波特,无校验传输,一桢字符有8个数据位,2个停止位MOVAL,80HMOVDX,3FBHOUTDX,AL;80H-通信线控制寄存器,使寻址位为1MOVDX,3F9HMOVAL,0OUTDX,AL;除数高8位-除数寄存器高8位MOVDX,3F8HMOVAL,18HOUTDX,AL;除数低8位-除数寄存器低8位MOVAL,00000111B;把命令字写入通信线控制寄存器MOVDX,3FBHOUTDX,ALMOVDX,3F9HMOVAL,0OUTDX,AL;查询方式,置中断允许命令字为0MOVAH,0BHINT21H;杳询有无键盘输入,响应CtrlCCMPAL,0

9、;AL=0时无输入,AL=0FFH时有输入JEWAIT0;当无输入时,返回等待MOVAH,0INT16H;读取键入的一个字符,无回显,响应Ctrl_C,无键入则等待PUSHAXMOVAH,02HMOVDL,ALINT21H;DOS功能调用,显示个字符,DL-待显示的ASCII码POPAXCALLSENTCHARJMPWAIT0;传输字符;从本机向对方发送字符串,同时在两个屏幕上都显示;按回车键,则双方都换行,按ESC键,双方都退出。SENTCHARPROCNEARPUSHAXPUSHDSMOVAX,DATAMOVDS,AXPUSHBXPUSHCXPUSHDXDISPMESG3;显示提示信息ST

10、ATUE:;读取通信线路状态,查询工作MOVDX,3FDHINAL,DX;读通信线状态字TESTAL,20H;检测发送保持寄存器是否为空JNZKBOARD;已空,转发送程序KBOARD:MOVAH,0BHINT21H;查询有无键盘输入,响应Ctrl_CCMPAL,0JZKBOARD;无字符输入,循环等待MOVAH,0;有字符输入则读取字符INT16H;读取键入的一个字符,无回显,响应Ctrl_CMOVDX,3F8HOUTDX,AL;将字符写入到发送保持寄存器CMPAL,1BH;ESC的ASCII码为0011011BJZDONE1;输入为ESC键,则退出程序返回DOS,同时对方也返回DOSPUS

11、HAXMOVAH,02HMOVDL,ALINT21H;DOS功能调用,显示输一个字符POPAXCMPAL,0DH;继续检查是否是ENTER键,ENTER的ASCII码为0001101BJNZSTATUE;如果不是ENTER键则继续输入下一个字符MOVDL,0AH;换行的ASCII码为00001010BMOVAH,02HINT21H;显示换行JMPSTATUE;换行后继续输入下一个字符DONE1:POPDX;出栈POPCXPOPBXPOPDSPOPAXRETSENTCHARENDPRECEM:;接收信息START1:;通信速率选用4800波特,无校验传输,一桢字符有8个数据位,2个停止位MOVA

12、L,80HMOVDX,3FBHOUTDX,AL;80H-通信线控制寄存器,使寻址位为1MOVDX,3F9HMOVAL,0OUTDX,AL;除数高8位-除数寄存器高8位MOVDX,3F8HMOVAL,18HOUTDX,AL;除数低8位-除数寄存器低8位MOVAL,00000111BMOVDX,3FBHOUTDX,AL;把D7=0的命令字写入通信线控制寄存器,确定一帧数据的格式MOVDX,3F9HMOVAL,0OUTDX,AL;查询方式,置中断允许命令字为0CALLRECEIVE1MOVAX,4C00H;返回DOSINT21HRECEIVE1PROCNEARPUSHAXPUSHBXPUSHDXDI

13、SPMESG4;屏幕显示信息,接收到得字符串REC:MOVDX,3FDHINAL,DX;读通信线路状态寄存器TESTAL,1EH;判断接收是否有错JNZERROR1;有错,则转出错处理TESTAL,01H;无错,检查接收数据是否准备好JNZRECEIVE2;准备好转接收程序JMPREC;继续读取下个数RECEIVE2:MOVDX,3F8HINAL,DX;从输入缓冲寄存器读数据ANDAL,7FH;传送标准ASCII码PUSHAX;保存数据MOVDL,ALMOVAH,02HINT21H;屏幕显示该数据POPAX;恢复数据CMPAL,1BH;判断是否为ESC键JZDONE2;如果是则退出DOSCMPAL,0

温馨提示

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

评论

0/150

提交评论