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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理与接口串行通信Word格式文档下载.docx

1、要求在屏幕不同的区域看到自己发出和接收的字符,可以通过调用int 10 BOIS中断并设定不同的显示颜色来实现。键入数字转化为相应的音符发音,可以通过查表把数字转化成相应的发音频率,再通过发音程序,输出相应的响铃。自动保存发送和接收的程序可以通过调用保存程序实现。打开、发送和接收的文件也可以通过调用打开文件的子程序实现。图1-1 两台PC机之间的串口三线制连接利用PC机的RS-232串口可以很方便的实现两台机器之间的信息互传,在实际使用RS-232时,可以采用三线制,即发送数据线TxD、接收数据线RxD及信号地线GND。连接时,双方的的地线直接相连,收发数据线交叉相连。通过以上的分析,可以确定

2、该设计主要实现发送、接收、显示、响铃、保存和打开文件及退出这几种功能。2程序设计及说明通过以上的分析,可以确定该设计主要实现发送、接收、显示、发声、保存和打开文件及退出这几种功能。将功能划分为以下几个模块:主控模块。实现对各个子模块的调用,在主模块内定义数据区。显示模块。实现将BUF缓冲区中的数据显示到屏幕特定区域。转换音乐模块。实现将BUF缓冲区中的数字转换成音符并播放。保存文件模块。实现将BUF缓冲区中内容存到指定的文件中。打开文件模块。实现将指定文件中的内容读入到BUF缓冲区中。出错信息显示模块。这是一个公用模块,读文件和写文件模块都需要调用。在主控模板下,通过调用各个子模块的功能,实现

3、了程序的功能调用,从而达到设计要求的操作。这也是模块化设计的基本要求。主流程图如图2所示:图2-1 程序主流程图2.1 宏定义和宏调用宏是源程序中一段有独立功能的程序代码。它只需要在源程序中定义一次,就可以多次调用它,调用时只需要用一个宏调用语句就可以了。其格式是:Macro name MACRO dummy parameter list(宏定义体) ENDM 其中MACRO和ENDM是一对伪操作。这对伪操作之间是宏定义体是一组有独立功能的程序代码。经过宏定义后的宏指令就可以在源程序中调用。宏调用的格式是:Macro name actual parameter list 当源程序被汇编时,汇编

4、程序将对每个宏调用做宏展开,即用宏定义体取代源程序中的宏指令名,并且用实元取代宏定义中的哑元。子程序在执行时,每调用一次都要先保护断点、保护现场;返回时先要回复现场,然后回复断点,再返回。这些操作增加了额外的时间,因而执行时间长,速度相对较慢。用宏定义和宏调用都可以免去执行时间上的这些额外开销,执行时间短,速度相对较快。在进行本设计时,大量使用了宏定义和宏调用。2.2 显示程序设计设计要求在不同的区域用不同的颜色显示接收和发送的数据信息,通过BIOS、DOS系统功能调用,实现以上的要求。调用“INT 10H”和“INT 21H”实现颜色和区域的选择显示。使用宏定义、宏调用的方式来实现程序的调用

5、。表2-1 INT 21H 的功能调用表AH功能调用参数返回参数01H带回显的键盘输入AL=输入字符09H显示字符串DS:DX=串地址$结束字符串02H显示输出DL=输出字符表2-2 INT 10H的功能表功能号入口参数显示模式属性00H设置显示模式AH=00H ,AL=02H8025的16色 文本设置光标形状AH01HCH低四位光标的起始行CL低四位光标的终止行用文本坐标下设置光标位置AH02BH显示页码DH行(Y坐标)DL列(X坐标)2.3数字转化为音乐的程序设计 设计要求输入字符后,程序将其转化为相应的音符,并发声。这个要求,可以通过查表实现,实现过程如下:1从键盘读入一个字符的ASCI

6、I码;2判断该字符是否是0-9的数字;3如果是0-9的数字,将其转化为相应的发声频率;4调用发声程序,驱动扬声器发声。表2-3 数字与发声频率的对应表数字123456789频率248262294330350393441495525589在设计程序时,要加入延迟程序,以使音调可以持续一段时间,效果明显。2.4 保存文件的程序设计 程序要求在键盘输入字符过程中实现自动保存,并且在接受对方发送的文件的同时,也在本机上建立文件保存。 在发送和接收文件时调用SAVE宏定义,即可实现程序的自动保存。保存之前要先建立文件,再进行写入的操作,然后再关闭建立的文件。当需要读取文件时通过该文件的标号即可读取。 保

7、存文件需要调用功能号如下表:表2-4 INT 21H 文件操作的功能号3CH建立文件DX=ASCIIZ串地址CX=文件属性成功:AX=文件代号错误:AX=错误码3DH打开文件AL=0 读 =1 写 =3 读/写3EH关闭文件BX=文件代号失败:40H写入文或设备DX=数据缓冲区地址CX=写入的字节数写成功: AX=实际写入的字节数写出错:保存文件的子程序的流程图如下:图2-2 保存文件程序流程图2.5 打开文件程序设计 打开文件的程序设计顺序同保存文件程序的设计类似。程序在执行打开文件时,需要调用显示子程序、设置颜色子程序、发声子程序。其流程图如下:图2-3 打开文件程序图2.6 接收程序的设

8、计 程序设计要求:在执行主程序时,当键盘输入字符时,发送程序、接收程序同时启动,键盘每输入一个字符,经过判定不是ESC后,发送程序自动保存字符并且向另一台PC发送一个字符,此时,另一台PC的接收程序自动接收字符,并且自动保存,同时两台PC可以在屏幕的不同区域分别显示发送和接收的字符。该程序需要调用的子程序有:保存子程序、显示子程序、发声子程序等。该程序的流程图如下:图2-4 接收文件程序流程图2.7 发送程序的程序设计程序设计要求,键盘输入数据后,发送程序启动,将读入的数据发送给另一台PC,同时,也将数据显示在屏幕的一个区域并将字符保存。程序首先保护现场,然后取状态口的状态,当检测到可以发送时

9、,便将数据送至数据口进行发送,最后将AX出栈,回到主程序。 该程序需要调用的子程序有:显示子程序、设置颜色子程序等。图2-5发送文件程序流程图2.8 换行程序的设计 该程序的主要作用是当输入字符达到一定数目后,使光标定位在特定位置。由于本程序在界面的左侧显示收到的字符,右侧显示发送的字符,为避免发送和接受的字符出现混淆的状况,定义该程序。 换行程序执行过程:1执行INT 10H中断的03H号功能,设置屏幕的显示方式为80*25彩色文本显示方式;2定位光标的初始位置DL列数,DH行数;3当DL达到限定值时,行数DH加1;4在新的位置上继续显示字符。 具体程序如下: LOCATION_P MACR

10、O MOV AH,03H MOV BH,0 INT 10H LEA BX,P1 CMP DL,79 JZ H1 IH1: MOV BX,DX jmp SH1 H1: INC DH MOV DL,29h jmp IH1 SH1:3 程序调试过程 任何程序在编写完成之后都要进行调试,以测试编写的程序是否存在错误或者不妥的地方,从而改进程序,实现序的良好运行。本程序调试过程分别对程序的各个环节进行了调试和改正,其中发现了很多错误,改正后程序可以正常运行,并能够得到正确的结果。3.1 程序界面的调试 程序运行的初始状态,该状态主要是显示提示语句和界面的美化并初步验证字符的输入和保存,调试过程中发现的问

11、题有:1定义的语句不能在预定的位置显示,原因:光标定位指令执行错误。解决办法:从新定义光标定位指令,并赋予确切的位置参数、;2屏幕颜色混乱,原因:没有执行屏幕显示方式的指令。重新调用INT 10H中断的03H号指令;3键入ESC无法退出程序,返回系统,原因:ESC的ASCII码定义错误。重新执行指令,并修正ESC的ASCII码值。下图为正常的程序的运行结果:图3-1 程序出示状态的界面 3.2 发送程序、接收程序、保存程序的调试 该部分的程序是整个程序的核心部分,需要实现的功能有:键盘读入,显示,保存,发送,接收等。 调试该部分程序时,使用9针串口线将两台PC连接起来,两台PC同时执行程序进入

12、DOS状态。一方键入字母和数字混合字符,该字符可以在自方屏幕的右侧显示,并且将键入的字符保存在指定的文件中,屏幕下方可显示“save succeed”提示语句;另一方将在屏幕的左侧显示收到的字符,并将字符保存在指定的文件中。以上过程可逆。 调试中遇到的问题:1发送和接收的字符显示混乱,原因:输入字符达到一定数量后,光标会自动向下移动一行,但是却没有定位到初始位置。重新加入换行子程序,重置光标于指定位置;2PC1发送,PC2无法接收,原因:串口线不正常。更换串口线;3INT 14H 中断方式无法进行数据传输,原因:没有找到。解决办法,使用芯片16500通过查询方式检测端口状态并进行数据的传输。

13、以下为正常程序的运行结果: 图3-3 PC2的发送和就收状态3.3 打开文件,发声程序的调试 该部分程序可以实现的功能为:将已经保存的文件打开并显示在屏幕上,同时数字字符对应应的频率发声。图3-4 打开PC1保存文件的界面图3-5 打开PC2的程序的界面以上就是程序运行时各个分支功能的调试过程,通过不断的修改和改进,最终达到了上述的效果,基本满足了设计的要求。4 设计总结 4.1 设计优缺点分析本程序采用模块化设计思想,可读性强,具有很强的可移植性,便于增加新的功能。在子程序调用方面采用宏定义、宏调用的方法而不是一个个子程序的调用,原因是子程序在执行时,每调用一次都要先保护断点、保护现场;尤其

14、是本程序大量使用了显示、定义颜色、定义光标位置等功能,而宏定义、宏调用的使用节省了大量资源。设计中也有一些不足,比如在打开保存的文件时,本机发送的和接收的文件同时显示在界面上,虽然本机的发送的文件显示在前面,但实际上两段字符并没有明显的断点。对于这个问题,有两种解决方法可行:1使发送的和接收的字符分别保存在不同的文件内,在打开文件时同时打开两个文件并在不同的位置显示;2显示字符时分别给发送的字符和接收的定义以不同的颜色加以区分。 4.2 心得体会通过对本题目程序的编写,我有下面几点体会:(1) 中断是汇编语言最精彩的地方, 实时控制、故障自动处理、计算机与外围设备间的数据传送都采用中断系统。中

15、断系统的应用大大提高了计算机效率,接口需要服务时向CPU申请中断,其他时间CPU正常工作,免去了CPU不断的查询,节约了时间。通过中断的调用,可以实现很多扩展的功能,同时中断也使得编程工作变得相对容易。汇编语言提供了各种中断功能是我们可以利用的丰富的资源,灵活利用这些功能会使工作事倍功半;(2) 书写程序时要有良好的习惯,比如缩进和随时添加程序注释等,这样不仅有利于程序的阅读也便于查找错误。子程序位置的合理设置也是重要的问题,合理的放置子程序可以增强程序的可读性,有利于模块化设计;(3) 调试工作是一项很枯燥、繁琐的工作,要做到耐心、信心、细心。通常程序不可能一次成功,需要反复的调试,以达到最

16、优状态。在调试过程中,有的时候仅凭一个人的力量是很难完成的,需要大家的通力合作,每个人的关注的角度不同,可能会从不同的发面发现并解决问题;(4) 汇编语言是一种很复杂的语言,有的时候实现一个很简单的功能,却需要大量的代码,很长时间的运算,同时,汇编语言也是计算机系统提供给用户的最快、最有效的语言,也是对硬件直接编程的语言。(5) 这次课设收获颇丰,虽然部分程序是参考别人的,但是经过仔细的研究,已经将他人的东西为己用了,同时再一次体会到学习计算机程序语言方法的重要性,只有不断的使用才能够彻底的掌握这种工具。只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正

17、为社会服务,从而提高自己的实际动手能力和独立思考的能力。参考文献1 周佩玲.微机原理与接口技术(基于16位机).北京:电子工业出版社,20052 沈美明.IBM-PC汇编程序语言设计.北京:清华大学出版社,19913 袁新燕.计算机外设与接口简明教程.北京:北京航空航天大学出版社,20054 沈美明.IBM-PC汇编语言程序设计实验教程.北京:清华大学出版社,19925 毛明.宏汇编语言程序设计编程知道.北京:机械工业出版社,19936 王士元.IBM PC/XT286386微机汇编语言与外设编程.南京:南开大学出版社,19937 王力虎.PC控制及接口程序设计实例.北京:科学出版社,2004

18、附录:;*标题: 串行通信程序功能:串行通信 区域划分 键盘读入 文件保存 文件读取作者: 纪广杰E-mail : jj99981单位: 武汉理工大学 自动化学院 自动化0608班时间: 2009年1月10日 数据段- DATAS SEGMENT aa1 db *, INFORMATION1 DB Transmission test designed by JI GUANGJIE! INFORMATION2 DB PRESS ESC TO EXIT INFORMATION3 DB - INFORMATION4 DB TO SAVE THE MESSAGE TO SEE WHAT YOU SAV

19、ED M11 DB WHAT YOU WANT TO SEND: M22 DB WHAT YOU HAVE RECEIVED: FREG DB 40,80,120,140,160,180,200,220,240,255 BUF DB 255 DUP (0) BUF1 DB 255 DUP (0) BUF2 DB 255 DUP (0) P1 DW 0429H P2 DW 0600H FILE_SAVE DB c:WENJIAN.txt , 0 HANDLE DW ? SUCCEED_MESSAGE DB SAVE SUCCEED ERROR DB SAVE ERROR OPEN_INFO1 D

20、B ESC to quit! OPEN_INFO2 DB press any key except ESCReturn to the serial transmission OPEN_INFO3 DB Saved message is : DATAS ENDS - 堆栈段 - STACKSG SEGMENT STACK S DW 64 DUP(?) STACKSG ENDS 代码段- CODES SEGMENT 初始化16550 COMRD MACRO MOV AL, 9FH MOV DX, 03FBH OUT DX, AL ; 初始化LCR MOV AL, 120 ; 分频低8位 MOV D

21、X, 03F8H OUT DX, AL MOV AL, 0 MOV DX, 03F9H ; 高位端口 系数高位填0 MOV AL, 07H ; FIFO控制字 MOV DX, 03FAH 将LCR最高位清零 LCRCX MACRO PUSH AX MOV AL, 1FH POP AX ENDM 换行 显示 PUTS MACRO STRING MOV AH, 9 LEA DX, STRING INT 21H定光标位置 SET_P MACRO P_XY MOV DX,P_XY MOV AH,02H保存光标位置 SAVE_P MACRO PL LEA BX,PL设置显示颜色 SET_C MACRO

22、COLOR,LENGTH MOV AL, 1 MOV BH, 0 MOV BL, COLOR MOV CX, LENGTH 从串口发送一个字符 SENDS MACRO LOCAL SEND CMP AL,1BH JZ SEND1 CMP AL, SET_P P1 SET_C 0EH,1 MOV DL,SI ; 显示字符 MOV AH,2 LOCATION_P P1 SEND1: LCRCX MOV DX, 03FDH ; 状态口 SEND2: IN AL, DX ; 读状态 TEST AL, 20H ; 发送就绪? JZ SEND2 MOV DX, 03F8H ; 数据口 从串口接收一个字符 RECVS MACRO LOCAL NEXT_R,AGAIN_R IN

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

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