ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:100.42KB ,
资源ID:11290367      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/11290367.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(串口异步通信.docx)为本站会员(b****8)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

串口异步通信.docx

1、串口异步通信微机原理与接口课程设计报告课程设计题目:DOS功能调用-串口异步通信 学 号:08113217学生姓名:苏林坡班 级:081132专 业:信息工程指导教师:谌洪茂 一 软件的功能随着计算机的不断普及,在我们的周围可能会同时出现多台微型计算机,而且这些计算机的牌号,后型号不同,而且有的格式不兼容。于是利用单片机串行口实现不同计算机之间的相互通信,以达到信息或程序的共享是非常有用的。另一方面,在某计算机的软磁盘驱动器万一出现故障的情况下,也可以通过它将计算机硬盘的数据或程序拷贝出来。文件传输程序可以用来在两个计算机之间传输任何类型的文件(包括二进制文件),对于那些有不同类型的计算机特别

2、有用。网络的发展,局域网的建立,使得一个文件服务器以及允许其他计算机从服务器中装入文件或将它们存入文件服务器也可以通过串口来实现。二 软件设计2.1设计简单介绍本系统的软件设计流程图参见附录部分(图2)。系统设计代码分为以下几个部分:初始化8251A、发送数据、接收数据、键盘输入、数值转换、LED显示。2.2 模块设计详细分析1. 初始化8251A:8251A工作在同步方式下,方式选择控制字为00H,工作命令控制字为40H.代码如下:KEYLED: MOV AL,00H OUT DX,AL OUT DX,AL OUT DX,AL MOV AL,40H OUT DX,AL MOV AL,4EH

3、OUT DX,AL MOV AL,27H OUT DX,AL2. 键盘输入键盘的输入由8279控制,再输入之前要现判断键盘是否允许按键,则只需读取8279的状态即可;通过数据口读取键值。然后对输入的数据进行判断,若为数字键,只需判断其高四位,高四位为零,则为数字键;不为零则不是数字键;再判断是否为EXEC键,此时只需和10H比较,相同则为EXEC键。KEY0: MOV DX,CONTPORT ;读8279状态 IN AL,DX TEST AL,07H ;判断是否有键按下 JZ KEY0 MOV CX,0FFFHDELAY1: LOOP DELAY1 MOV DX,DATAPORT ;读取键值

4、IN AL,DX MOV DI,AX AND AL,0F0H ; 判断是否为数字键 JZ KEY1 MOV AX,DI CMP AL,10H ; 判断是否为EXEC键 JNZ KEY0 CMP WORD PTR DS:0601H,0000H ;判断按EXEC键前是否按过数字键 JZ SERERR1 MOV SI,DATA3 CALL LEDDISP3. 数值转换数值转换就是将输入的键值转换成发送代码。转换代码实现部分:CONVERS:MOV BH,0H MOV AX,DI AND AL,0FH MOV BL,AL MOV AL,CS:BX+DATA4 MOV BYTE PTR DS:0602H

5、,AL RET4. 发送数据 1号机用于键盘的控制以及数据的发送。 首先判断1号机器键盘的状态,由8279控制,则只需读取8279的状态即可;再判断按键值,若为数字键,则计算次数,再将按键值转换为显示代码;若为EXEC键,再判断按此键之前是否按过数字键,若没按过,则调用显示,显示Errl,若按过再将按键值转换为显示代码。接下来就是判断是否允许发送数据了,发送数据由8251控制,则只需读取8251的状态。允许发送就开始发送数据。部分代码如下:WATTXD: MOV DX,SECOPORT IN AL,DX ;读取8251状态 TEST AL,01H ;判断是否允许发送 JZ WATTXD MOV

6、 AL,BYTE PTR DS:0602H ;显示代码送给AL MOV DX,SEDAPORT ;发送显示代码 OUT DX,AL MOV CX,0FFFFHDELAY2: LOOP DELAY2JMP KEY0 SEREND: JMP SEREND5. 接收数据并显示 2号机用于接受1号机发送的数据并将其显示出来。数据接收由8251控制,则先判断其状态,允许接收则转入接收程序,从数据口读取数据,然后将接收到的数据存入到RAM区暂存。再将数据发送到控制口进行显示。接收数据部分代码如下: WATRXD:MOV DX,SECOPORT ;读取8251状态 IN AL,DX TEST AL,02H

7、;判断是否允许接受 JZ WATRXD MOV DX,SEDAPORT ;接受数据 IN AL,DX MOV BYTE PTR DS:0600H,AL ;将接受的数据存入RAM区 MOV AL,90H MOV DX,CONTPORT OUT DX,AL MOV AL,BYTE PTR DS:0600H ;从RAM区取出数据? MOV DX,DATAPORT OUT DX,AL ;显示接受的数据 MOV AL,00H OUT DX,AL JMP WATRXD详见源程序清单及注释附录部分。三 操作说明1、准备2台本系统,确定1号为发送,2号为接收。2、将1号RXD插孔和2号的TXD插孔相连。3、将

8、1号TXD插孔和2号的RXD插孔相连。4、将1号GND插孔和2号的GND插孔相连(共地)。5、先运行2号机,显示器显示“82512”,进入等待接收状态。6、再运行1号机,显示器显示“82511”,进入串行发送状态。7、在1号机的键盘上输入数字键,在2号机显示器上显示对应数字值。8 、输入数字键后再按EXEC 键,1号机显示“8251 good”。如果不输入数字键直接按EXEC键,则显示“Err”,如果双机通信不能正常进行,也显示“Err1”。四 总结设计体会和收获:最初选择串行通信这个实验时,由于从未接触过这类设计,感到新鲜的同时不乏焦虑。现在终于将它完成了,感到受益颇多。第一,这是一份考验我

9、们自觉性、动手能力与协作意识的任务。在长达一个月的时间里,我们不断发现自身不足也不断自我完善。第二,未知并不可怕,可怕的是因未知而止步。我们在课堂上所学的知识是非常有限的,这次的课程设计就是个很好的体现。很多函数的运用我们还没掌握,一些简单的循环语句都可能出错。实践后才能真的知道我们真正掌握了多少。第三,团结就是力量一点都不假,三个臭皮匠顶一个诸葛亮。在团组合作时我们更便于互相取长补短,相互讨论,效果很好。附:1、程序流程图接收数据: :2、源程序清单及注释Send程序段代码CODE SEGMENTASSUME CS:CODESTART: JMP SERIALCONTPORT EQU 00DF

10、H ;8279端口地址DATAPORT EQU 00DEH ;8279端口地址SECOPORT EQU 0051H ;8251端口地址SEDAPORT EQU 0050H ;8251端口地址DATA0 EQU 0500HDATA1 EQU 0508HDATA2 EQU 0510HDATA3 EQU 0518HDATA4 EQU 0520HSERIAL: CALL FORMAT MOV SI,DATA2 CALL LEDDISP ;显示8251-2 MOV BYTE PTR DS:0601H,0H MOV WORD PTR DS:0602H,0H CLD MOV DI,0602H ; MOV C

11、X,08H XOR AX,AX REP STOSW MOV DX,SECOPORT MOV AL,00H ;初始化8251 OUT DX,AL OUT DX,AL OUT DX,AL MOV AL,40H OUT DX,AL MOV AL,4EH OUT DX,AL MOV AL,27H OUT DX,ALKEY0: MOV DX,CONTPORT ;读8279状态 IN AL,DX TEST AL,07H ;判断是否有键按下 JZ KEY0 MOV CX,0FFFHDELAY1: LOOP DELAY1 MOV DX,DATAPORT ;读取键值 IN AL,DX MOV DI,AX AND

12、 AL,0F0H ; 判断是否为数字键 JZ KEY1 MOV AX,DI CMP AL,10H ; 判断是否为EXEC键 JNZ KEY0 CMP WORD PTR DS:0601H,0000H ;判断按EXEC键前是否按过数字键 JZ SERERR1 MOV SI,DATA3 CALL LEDDISP JMP SERENDSERERR1:MOV SI,DATA1 CALL LEDDISP ;显示Err1 JMP SEREND KEY1: CALL CONVERS ;键值转换成显示代码WATTXD: MOV DX,SECOPORT IN AL,DX ;读取8251状态 TEST AL,01H

13、 ;判断是否允许发送 JZ WATTXD MOV AL,BYTE PTR DS:0602H ;显示代码送给AL MOV DX,SEDAPORT ;发送显示代码 OUT DX,AL MOV CX,0FFFFHDELAY2: LOOP DELAY2JMP KEY0 SEREND: JMP SERENDKEY2: CALL LEDDISP ADD BYTE PTR DS:0601H,01H JMP KEY0CONVERS:MOV BH,0H MOV AX,DI AND AL,0FH MOV BL,AL MOV AL,CS:BX+DATA4 MOV BYTE PTR DS:0602H,AL RETLE

14、DDISP:MOV AL,90H MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:0600H,00LED1: CMP BYTE PTR DS:0600H,07H JA LED2 MOV BL,DS:0600H MOV BH,0H MOV AL,CS:BX+SI MOV DX,DATAPORT OUT DX,AL ADD BYTE PTR DS:0600H,01H JNZ LED1LED2: RETLEDDISPD:MOV AL,90H MOV DX,CONTPORT OUT DX,AL MOV BYTE PTR DS:0600H,00LEDD1: CMP B

15、YTE PTR DS:0600H,07H JA LEDD2 MOV BL,DS:0600H MOV BH,0H MOV AL,DS:BX+0602H MOV DX,DATAPORT OUT DX,AL ADD BYTE PTR DS:0600H,01H JNZ LEDD1LEDD2: RETFORMAT: MOV BX,0 MOV WORD PTR DS:BX+0500H,5050H ;ERR2显示代码 ADD BX,2 MOV WORD PTR DS:BX+0500H,0079H ADD BX,2 MOV WORD PTR DS:BX+0500H,0000H ADD BX,2 MOV WOR

16、D PTR DS:BX+0500H,0000H ADD BX,2 MOV WORD PTR DS:BX+0500H,503FH ;ERR1显示代码 ADD BX,2 MOV WORD PTR DS:BX+0500H,7950H ADD BX,2 MOV WORD PTR DS:BX+0500H,0000H ADD BX,2 MOV WORD PTR DS:BX+0500H,0000H ADD BX,2 MOV WORD PTR DS:BX+0500H,405BH ;8251-1显示代码 ADD BX,2 MOV WORD PTR DS:BX+0500H,4040H ADD BX,2 MOV W

17、ORD PTR DS:BX+0500H,6D06H ADD BX,2 MOV WORD PTR DS:BX+0500H,7F5BH ADD BX,2 MOV WORD PTR DS:BX+0500H,5C5EH ;8251good显示代码 ADD BX,2 MOV WORD PTR DS:BX+0500H,6F5CH ADD BX,2 MOV WORD PTR DS:BX+0500H,6D06H ADD BX,2 MOV WORD PTR DS:BX+0500H,7F5BH ADD BX,2 MOV WORD PTR DS:BX+0500H,063FH ;0-F显示代码 ADD BX,2 MO

18、V WORD PTR DS:BX+0500H,4F5BH ADD BX,2 MOV WORD PTR DS:BX+0500H,6D66H ADD BX,2 MOV WORD PTR DS:BX+0500H,077DH ADD BX,2 MOV WORD PTR DS:BX+0500H,6F7FH ADD BX,2 MOV WORD PTR DS:BX+0500H,7C77H ADD BX,2 MOV WORD PTR DS:BX+0500H,5E39H ADD BX,2 MOV WORD PTR DS:BX+0500H,7179H RETCODE ENDSEND STARTRecive程序段代

19、码CODE SEGMENTASSUME CS:CODECONTPORT EQU 00DFH ;8279控制口DATAPORT EQU 00DEH ;8279数据口SECOPORT EQU 0051H ;8251端口地址SEDAPORT EQU 0050H ;8251端口地址ORG 1800HSTART: JMP KEYLEDKEYLED: MOV AL,00H ;初始化8251 OUT DX,AL OUT DX,AL OUT DX,AL MOV AL,40H OUT DX,AL MOV AL,4EH OUT DX,AL MOV AL,27H OUT DX,AL WATRXD:MOV DX,SE

20、COPORT ;读取8251状态 IN AL,DX TEST AL,02H ;判断是否允许接受 JZ WATRXD MOV DX,SEDAPORT ;接受数据 IN AL,DX MOV BYTE PTR DS:0600H,AL ;将接受的数据存入RAM区 MOV AL,90H MOV DX,CONTPORT OUT DX,AL MOV AL,BYTE PTR DS:0600H ;从RAM区取出数据? MOV DX,DATAPORT OUT DX,AL ;显示接受的数据 MOV AL,00H OUT DX,AL JMP WATRXDCODE ENDSEND START参考文献1C语言程序设计清华

21、大学出版社;谭浩强主编1999.122C语言程序设计技巧及应用上海科学普及出版社;陈进编著1992.63微型计算机原理与应用(第二版)西安电子科技大学出版社;王永山,杨宏五,杨婵娟编著1999.124单片机原理及应用教程北京大学出版社;范立南,谢子殿编著2007.8东华理工大学软件学院课程设计评分表学生姓名:苏林坡 班级: 081132 学号:08113217课程设计题目:DOS功能调用-串口异步通信项目内容满分实 评选题能结合所学课程知识、有一定的能力训练。符合选题要求(5人一题)10工作量适中,难易度合理10能力水平能熟练应用所学知识,有一定查阅文献及运用文献资料能力10理论依据充分,数据准确,公式推导正确10能应用计算机软件进行编程、资料搜集录入、加工、排版、制图等10能体现创造性思维,或有独特见解10成果质量总体设计正确、合理,各项技术指标符合要求。10说明书综述简练完整,概念清楚、立论正确、技术用语准确、结论严谨合理;分析处理科学、条理分明、语言流畅、结构严谨、版面清晰10设计说明书栏目齐全、合理,符号统一、编号齐全。格式、绘图、表格、插图等规范准确,符合国家标准10有一定篇幅,字符数不少于500010总 分100指导教师评语: 指导教师签名: 年 月 日

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1