




已阅读5页,还剩10页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计任务书学生姓名: 刘鹏 专业班级: 自动化0807 指导教师: 李志俊 工作单位: 自动化学院 题 目: 串行通信程序设计 初始条件:用汇编语言编写程序,实现两台计算机之间的通信。要求完成的主要任务: 制作RS232C通信线,并用它连接两台计算机; 在计算机上用不同的颜色设置接收、发送区域; 能设置发送、接收的数据长度,并能显示接收的数据; 能选择通信校验方式(奇校验、偶校验或无校验); 可以将接收的数据作为文件保存起来; 撰写设计说明书及调试心得。时间安排:2008年12月30日2009年元月15日下午17:00指导教师签名: 年 月 日系主任(或责任教师)签名: 年 月 日目录1设计要求及原理31.1设计目的31.2 设计要求31.3 设计原理32设计方案42.1 RS-232C硬件接口42.2 显示界面42.3 参数的设置42.4 发送数据52.5 接收数据62.6 保存文件63 程序设计流程图73.1 发送数据73.2 接收数据83.3 总体设计94 程序调试104.1 调试结果104.2 结果分析135 心得体会14参考文献15串行通信程序设计1设计要求及原理1.1设计目的首先运用串口通信原理,制作RS-232C通信线并用其连接两台计算机,其次编写汇编语言源程序,分别在两台计算机上运行(在此用MFPCI98软件),实现两台计算机之间的通信。1.2 设计要求初始条件:用汇编语言编写程序,实现两台计算机之间的通信。要求完成的主要任务:(1) 制作RS232C通信线,并用它连接两台计算机;(2) 在计算机上用不同的颜色设置接收、发送区域;(3) 能设置发送、接收的数据长度,并能显示接收的数据;(4) 能选择通信校验方式(奇校验、偶校验或无校验);(5) 可以将接收的数据作为文件保存起来;具体的设计步骤:(1) 对设计任务进行合理有效的分析,并初步设计出方案;(2) 通过查阅RS-232信号线的功能,用三根线对应连接两台计算机,保证硬件之间可以足通信要求;(3) 根据思路,画出程序流程图;(4) 根据流程图编写汇编语言源程序以及程序注释;(5) 调试程序,看是否满足题目要求;(6) 总结;1.3 设计原理这次课程设计的要求是实现串口通信,在此我们选用的是RS-232DB9串口,它实现串口的基础是将一台PC机的发送数据线与另一台PC机的接收数据线相连(即2、3号线交叉相连),然后将地线相连(即5号线对应相连)。2设计方案2.1 RS-232C硬件接口RS-232C串口通信接法为三线制。虽然标准串口的信号线很多,但由于RS-232C是全双工通信,在实际应用时,比如两台PC机相连,采用三线制就可以了。三线制是指发送数据线TxD,接收数据线RxD及信号地线GND。连接时,双方的地线直接相连,收发数据线交叉相连。连接图如下图所示 TxDRxDTxDRxDGNDGND 图2-1 RS-232C通信线连接图2.2 显示界面在显示界面时,要求用不同颜色设置发送和接收区域,这就需要调用BIOS系统中断,先置光标位置,再写当前字符和属性。这两项功能都可调用BIOS显示输出10H号中断服务程序实现。在IBM PC的标准显示器适配器彩色文本方式下,设置不同的属性字节即可实现不同前景和不同背景的组合。例如,0010表示绿,1111表示白,设置绿底白字的属性为00101111,十六进制表示为2FH。2.3 参数的设置在这里的参数设置主要有数据长度和奇偶校验,我们通过修改串口初始化参数达到设置目的。串口初始化参数字功能如下:D1D0=10 : 7位字长 D1D0=11 : 8位字长D2=0 : 1位中止位 D2=1 : 2位中止位D4D3=01 : 奇校验 D4D3=11 : 偶校验D4D3=00/10 : 无校验 D7D6D5=000 : 110bps D7D6D5=001 : 150bps D7D6D5=010 : 300bps D7D6D5=011 : 600bps D7D6D5=100 : 1200bps D7D6D5=101 : 2400bps D7D6D5=110 : 4800bps D7D6D5=111 : 9600bps初始化串行通信口格式如下:调用参数: AL=初始化参数 DX=通信口号,0:COM1,1:COM2返回参数: AH=通信口状态 AL=调制解调器状态我们通过读取键盘输入的数据来对串口初始化的参数进行相应的修改。2.4 发送数据发送数据时首先从键盘以单字符为单位一个一个读取,然后将其一个个发送到串口的数据缓冲区。读取键盘数据时,可使用常用DOS输入输出功能调用21H中断来实现。INT 21H是功能齐全、使用方便的一个中断服务程序,主要包括设备管理、目录管理和文件管理三个方面的功能。表2-1给出了21H号中断服务程序的部分功能。表2-1 21H号中断服务程序的部分功能入口参数出口参数功能AH=1AL=键盘输入字符的ASC码等待键盘输入一个字符,并将该字符的ASC码送到寄存器AL中,同时送显示器显示AH=2,DL=待显示字符的ASC码无将DL中的字符送显示器显示,且光标右移一个字符位置。若DL中的数据是控制字符,则输出相应控制操作AH=10,DS:DX=输入缓冲区首地址在输入缓冲区存入键盘输入的字符串等待用户从键盘向DS:DX所指的输入缓冲区输入字符串,用回车表示结束,同时将字符串送显示器显示AH=9,DS:DX =待显示字符串在内存的段地址:偏移地址,字符串必须以$(24H)结尾无将当前数据区中DS:DX所指向的以$结尾的字符串(不包括$)送显示器显示,若数据区中有控制字符,则输出相应的控制操作与串行通信口相关操作可通过调用串口中断14H实现,14H号中断服务程序的部分功能见表2-2,能实现初始化通信口、读写通信口状态等功能。表2-2 14H号中断服务程序的部分功能功能入口参数出口参数00H初始化通信口AH=0,DX=通信口号,AL=初始化参数AH=通信口状态AL=调制解调器状态01H向通信口写字符AH=1,DX=通信口号写字符成功:AH.7=0,AL=已写入字符写字符失败:AH.7=1,AH.0-6=通信口状态02H从通信口读字符DX=通信口号读字符成功:AH.7=0,AL=字符读字符失败:AH.7=1,AH.0-6=通信口状态03H取通信口状态DX=通信口号AH=通信口状态AL=调制解调器状态2.5 接收数据接收数据时与发送数据情况类似,也是一个字符一个字符从串口读取。读取的字符后将存入定义好的数据段中,再在屏幕上显示。2.6 保存文件在保存文件时我们需要用到DOS中文件的建立、打开、写和关闭功能,这些大都可以用“INT 21H”指令调用DOS中的功能子程序实现。表2-3给出了DOS提供的部分磁盘文件管理功能。表2-3 DOS提供的部分磁盘文件管理功能功能号功能说明入口参数出口参数3CH建立文件DS:DX=代表文件名的字符串的首地址,CX=文件属性,00H:普通,01H:只读,02H:隐含,04H:系统CF=0表示成功,AX=文件号,CF=1表示失败,AX=错误代码3DH打开文件DS:DX=代表文件名的字符串的首地址,AL=存取方式,00H:只读,01H:只写,02H:读写CF=0表示成功,AX=文件号,CF=1表示失败,AX=错误代码40H写文件BX=文件号,CX=写盘字节数,DS:DX=准备存放所读数据的缓冲区的首地址CF=0表示成功,AX=写出的字节数,CF=1表示失败,AX=错误代码3EH关闭文件BX=文件号CF=0表示成功,CF=1表示失败3 程序设计流程图3.1 发送数据在发送数据的时候我们首先要从键盘读取数据,调用INT 21H的10号功能,字符串回车结束,之后显示在屏幕上。每读完一行,光标自动换行到下一行进行读取。发送时,首先调用14H的03号功能读取通信口状态,初始化,再调用01号功能将字符一个一个传送到通信口中。发送完后再依次按照上面的程序进行读取与发送。流程图如下图2-3所示。串行通信初始化有通信数据?发送PC机数据数据上传返回结果解析并执行命令NY开始图2-3 发送数据流程图3.2 接收数据有通信数据?接收PC机数据数据上传返回结果解析并执行命令NY开始图2-4 接收数据流程图3.3 总体设计按照图2-5串行通信程序流程图来编写程序,首先是从键盘读取数据并且显示,接着是初始化串口并且按照参数的设置来从通信端口发送数据,接收端每接收到一串字符都判断是否保存,若选择保存则将该字符串保存,若不选择保存则继续接收数据。此程序的功能是实现两台计算机之间的串口通信,可以设置数据长度以及校验方式,并且在现实的过程中发送区和接收区可以达到要求的不同颜色。最后可以保存文件到指定路径.开始初始化发送数据子程序接收数据子程序发送数据?是否保存?保存数据释放数据缓冲区NYN结束Y图2-5 串行通信程序流程图接收数据?YN4 程序调试 在此我们选用MFPCI98汇编语言软件对所涉及的程序进行调试,先点击汇编对源程序进行编译,生成扩展名为“.obj”的目标文件,再点击连接,最后运行生成扩展名为“.exe”的可执行文件。如果说程序出现错误的话,那么就无法生成目标文件,我们就要双击底下的错误提示信息,找到相应的错误语句,然后分析错误修改后按照以上步骤继续进行生成可执行文件。4.1 调试结果在两台计算机上同时运行程序,在发送端输入7,e及回车键,光标就会进入到发送区。在里面输入字符串后,与此同时接收端输入7,e及Tab键,则发送过程和接收过程完成。参数设置相同时的发送、接收界面分别如下图3-1和3-2所示。图3-1 参数设置相同时的发送界面图3-2 参数设置相同时的接收界面两台计算机再次运行程序,发送端输入7,n及回车键,光标移动到发送区,在里面输入字符串后,同时接收端输入7,o及Tab键,则发送过程及接收过程完成。参数设置不同时的发送、接收界面分别如图3-3和3-4所示。 图3-3 参数设置不同时的发送界面图3-4 参数设置不同时的接收界面跟前面两个一样,两台计算机运行程序并且发送数据和几首数据完成后,接收端可以选则文件保存,文件保存的接收界面如图3-5所示。图3-5 文件保存的接收界面4.2 结果分析当参数设置相同时,接收端收到的数据与发送端发出的数据相同,通信正常,显示界面可以显示发送的数据和接收的数据。当参数设置设置不同时,显示界面可以正常显示发送端的数据,但是接收端就会出现乱码,通信不正常。当接收端接受完了数据后,程序会提示是否保存数据,如果选择保存,屏幕上就会显示保存成功及保存文件的路径。经过以上分析,本程序基本满足设计要求。5 心得体会 “微机原理与系统设计” 作为电子信息类本科生教学的主要基础课之一,课程紧密结合电子信息类的专业特点,我们本次所做的课程设计就是关于串口通信这方面的,让我们对信息方面的知识又有了进一步的认识与了解。这次微机原理课程设计历时两个星期,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。在变成的时候,以前总是觉得流程图没那个必要,有点多此一举。但是,这次课程设计完全改变了我以前的那种错误的认识,以前我接触的那些程序都是很短、很基础的,但是在课程设计中碰到的那些需要很多代码才能完成的任务,画程序方框图是很有必要的。因为通过程序方框图,在做设计的过程中,我们每一步要做什么,每一步要完成什么任务都有一个很清楚的思路,而且在程序测试的过程中也有利于查错。其次,以前对于汇编软件的使用还处于一知半解的状态上,但是经过一段上机的实践,对于怎么去排错、查错,怎么去看每一步的运行结果,怎么去了解每个寄存器的内容以确保程序的正确性上都有了很大程度的提高。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固。 最后通过本次课程设计,使我对汇编语言的基本知识的使用更加熟练,同时也增加了我对汇编语言的一些认识,在作业完成过程中通过和同学的交流,也增加了合作的技巧。通过查阅以下资料也学到了一些课本上没有的东西,拓宽了自己的知识面,增加了学好汇编语言的信心。 在这次课程设计中,我真正体会到了合作的重要性,遇到很多问题时,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论