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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

基于8251双机通信设计.docx

1、基于8251双机通信设计微机原理课程设计报告课题名称:基于8251双机通信设计 姓 名: 张文涛 0705074018 周 勇 0705074006 伍安全 0705074017 专 业: 07自动化(2)班 指导老师:刘 伟 林泽坤 基于8251双机通信的设计任务书论文题目基于8251双机通信的设计设计类型导师姓名刘 伟林泽坤主要内容及目标1、掌握8251在半双工方式下双机串行通讯的软件编制及硬件连接技术2、微机两台 (一台为发送机,一台为接收机) 本题目需用两台8086教学机,并通过各自的RS-232C接口用RS-232C通讯电缆将两台机器相连,如图所示。其中号机用作接收机,利用8253的

2、1#通道产生接收时钟;号机用作发送机,利用8253的1#通道产生发送时钟。本题目的是将号机中3000-3009H十个单元中的代码传送到号机的3000-3009H单元中。 具有的设计条件1 PC机一台,EL教学实验箱一台及汇编程序;计划设计进程(按课程设计周计算)第一周设计任务:(1):明确课题对程序功能,运算精度等方面的要求及硬件条件(2):把复杂问题分解为若干模块,确定各模块处理方法,画出流程图。(3):存储器资源分配第二周设计任务:(4):编制程序,根据流程图精心选择合适的指令和寻址方式来编制源程序(5):对程序进行汇编,调试和修改,直到程序运行结果正确为止。参考文献微型计算机原理及接口技

3、术中国科技大学出版社 吴秀清 周荷琴编著16-32位微型计算机技术及应用清华大学出版社 戴梅萼 史嘉权 编著汇编语言程序设计南京大学出版社 姚君遗编著汇编语言程序设计教程清华大学出版社 杨记文编著微型计算机原理及接口技术实验指导书摘要 本题是基于8251的双机通信的设计,8251芯片是我们上课所学的芯片之一,试验中我们也学习了该芯片的相关应用,如实现8251的串口自发自收。我们组选择该题的目的通过该题的设计进一步学习8251的工作原理和控制方式以及串口的传送原理。设计的硬件基础是星研集成开发环境,是以8086微处理器核心控制8251A芯片实现双机的串行通信;软件设计是在汇编语言基础上,要求设计

4、者熟练8086指令集及汇编语言的编程特点。 设计的主要内容实现双机间的通信,设计中使用两个相同模块一端为发射机另一端为接收机;模块以8086最小系统为核心,设计通过各自的RS-232C接口用RS-232C通讯电缆将两台机器相连,设计采用半双工查询方式,异步传送,一方定义为发送器,另一方为接收器。当发送端CPU查询到TxRDY有效时,向825lA并行输出一字节数据;接收端CPU每查询到RxRDY有效,则从8251A并行输入一个字节数据,一直进行到全部数据传送完为止,由8253可编程计数/定时器提供8251A可编程串口通信器接受和发送时钟频率;设计的最终目的是将号机中3000-3009H十个单元中

5、的代码传送到号机的3000-3009H单元中。关键字:微处理器 串行通信 汇编 双机通信目录1课题简介 411 课题内容 412 课题意义 42方案论证 421 8251A的基本性能 522 8251A的内部结构 523 8251A的引脚功能 724 8251A的编程 93设计方案 1031 方案分析 1032 硬件设计 1133 软件设计 114 总结 12参考文献 13附录一 14附录二 15附录三 161课题简介11 课题内容1、掌握8251在半双工方式下双机串行通讯的软件编制及硬件连接技术2、微机两台 (一台为发送机,一台为接收机) 本题目需用两台8086教学机,并通过各自的RS-23

6、2C接口用RS-232C通讯电缆将两台机器相连,如图所示。其中号机用作接收机,利用8253的1#通道产生接收时钟;号机用作发送机,利用8253的1#通道产生发送时钟。本题目的目的是将号机中3000-3009H十个单元中的代码传送到号机的3000-3009H单元中。12 课题意义串口通信是微机原理和接口技术课程的重点,与并口通信它有着众多的优点是各种数据传输的主流的方式,学好串行是很有必要的这也是我们选择该课题的原因之一。这次的课程设计的主要目的如下:1、学习串口通信的工作原理,利用8086、8251实现双机的串行通信。2、通过本次课程的设计我们要进一步了解8086、8251。加强理论与实际的联

7、系,提高我们的设计与运用所学知识的能力。3、通过设计了解并掌握汇编语言的设计方法和设计流程。2方案论证本次设计中主要使用了可编程串行接口芯片8251A,下面就8251A对设计方案进行论证。21 8251A的基本性能8251A是可编程的串行通信接口芯片,基本性能:1两种工作方式:同步方式,异步方式。同步方式下,波特率为064K,异步方式下,波特率为019.2K。2同步方式下的格式每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。3异步方式下的格式每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率

8、的1、16或64倍,用1位作为奇/偶校验。1个启动位。并能根据编程为每个数据增加1个、15个或2个停止位。可以检查假启动位,自动检测和处理终止字符。4全双工的工作方式其内部提供具有双缓冲器的发送器和接收器。5提供出错检测具有奇偶、溢出和帧错误三种校验电路。22 8251A的内部结构1、发送器发送器由发送缓冲器和发送控制电路两部分组成。采用异步方式,则由发送控制电路在其首尾加上起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出。8251A内部结构图采用同步方式,则在发送数据之前,发送器将自动送出1个或2个同步字符,然后才逐位串行输出数据。如果CPU与8251A之间采用中

9、断方式交换信息,那么TXRDY可作为向CPU发出的中断请求信号。当发送器中的8位数据串行发送完毕时,由发送控制电路向CPU发出TXE有效信号,表示发送器中移位寄存器已空。2接收器接收器由接收缓冲器和接收控制电路两部分组成。接收移位寄存器从RXD引腿上接收串行数据转换成并行数据后存入接收缓冲器。异步方式:在RXD线上检测低电平,将检测到的低电平作为起始位, 8251A开始进行采样,完成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出RXRDY信号送CPU,表示已经收到一个可用的数据。同步方式:首先搜索同步字符。8251A监测RXD线,每当RXD线上出现一个数据

10、位时,接收下来并送入移位寄存器移位,与同步字符寄存器的内容进行比较,如果两者不相等,则接收下一位数据,并且重复上述比较过程。当两个寄存器的内容比较相等时,8251A的SYNDET升为高电平,表示同步字符已经找到,同步已经实现。采用双同步方式,就要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同。如果相同,则认为同步已经实现。在外同步情况下,同步输入端SYNDET加一个高电位来实现同步的。实现同步之后,接收器和发送器间就开始进行数据的同步传输。这时,接收器利用时钟信号对RXD线进行采样,并把收到的数据位送到移位寄

11、存器中。在RXRDY引脚上发出一个信号,表示收到了一个字符。3数据总线缓冲器数据总线缓冲器是CPU与8251A之间的数据接口。包含3个8位的缓冲寄存器:两个寄存器分别用来存放CPU向8251A读取的数据或状态信息。一个寄存器用来存放CPU向8251A写入的数据或控制。4读/写控制电路读/写控制电路用来配合数据总线缓冲器的工作。功能如下:(1) 接收写信号,并将来自数据总线的数据和控制字写入8251A;(2) 接收读信号,并将数据或状态字从8251A送往数据总线; (3) 接收控制/数据信号C/,高电平时为控制字或状态字;低电平时为数据。 (4) 接收时钟信号CLK完成8251A的内部定时; (

12、5) 接收复位信号RESET,使8251A处于空闲状态。5调制解调控制电路调制解调控制电路用来简化8251A和调制解调器的连接。23 8251A的引脚功能1、8251A和CPU之间的连接信号8251A和CPU之间的连接信号可以分为四类: a)片选信号 :片选信号,它由CPU的地址信号通过译码后得到。b)数据信号D0-D7:8位,三态,双向数据线,与系统的数据总线相连。传输CPU对8251A的编程命令字和8251A送往CPU的状态信息及数据。c)读/写控制信号:读信号,低电平时, CPU当前正在从8251A读取数据或者状态信息。:写信号,低电乎时, CPU当前正在往8251A写入数据或者控制信息

13、。 C/:控制/数据信号,用来区分当前读/写的是数据还是控制信息或状态信息。该信号也可看作是8251A数据口/控制口的选择信号。由此可知,、C/这3个信号的组合,决定了8251A的具体操作,它们的关系如表7-3所示:注:数据输入端口和数据输出端口合用同一个偶地址,而状态端口和控制端口合用同一个奇地址。c)收发联络信号 TXRDY:发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。 TXE:发送器空信号,TXE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。 RXRDY:接收器准备好信号,用来表示当前8251A已经从外部设备或调制解调器接

14、收到一个字符,等待CPU来取走。因此,在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。 SYNDET:同步检测信号,只用于同步方式。28251A与外部设备之间的连接信号8251A与外部设备之间的连接信号分为两类:a) 收发联络信号 :数据终端准备好信号,通知外部设备,CPU当前已经准备就绪。 :数据设备准备好信号,表示当前外设已经准备好。:请求发送信号,表示CPU已经准备好发送。 :允许发送信号,是对的响应,由外设送往8251A。实际使用时,这4个信号中通常只有必须为低电平,其它3个信号可以悬空。b) 数据信号 TXD:发送器数据输出信号。当CPU送

15、往8251A的并行数据被转变为串行数据后,通过TXD送往外设。 RXD:接收器数据输入信号。用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式。3. 时钟、电源和地8251A除了与CPU及外设的连接信号外,还有电源端、地端和3个时钟端。 CLK:时钟输入,用来产生8251A器件的内部时序。同步方式下,大于接收数据或发送数据的波特率的30倍,异步方式下,则要大于数据波特率的4.5倍。 TXD:发送器时钟输入,用来控制发送字符的速度。同步方式下,TXC的频率等于字符传输的波特率,异步方式下,TXC的频率可以为字符传输波特率的1倍、16倍或者64倍。 RXD:接收器时钟输入,用来控制接

16、收字符的速度,和TXC一样。在实际使用时,RXC和TXC往往连在一起,由同一个外部时钟来提供,CLK则由另一个频率较高的外部时钟来提供。 VCC:电源输入 GND:地24 8251A的编程编程的内容包括两大方面:一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;二是由8251A向CPU送出的状态字。1方式选择控制字(模式字)方式选择控制字的格式如图所示。2操作命令控制字(控制字)操作命令控制字的格式如下:3、状态字状态字的格式如下:48251A的初始化 a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。b)如果模式字中规定了8251A工作在同步模式,c)由CPU用

17、奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。3设计方案31 方案分析 1、接受发送时钟频率选择 方案一:采用外部时钟发生器,要额外添加时钟发生器,无法直接改变时钟频率,不方便使用。 方案二:采用集成环境自带的计数器8253工作在方式三输出一个时钟频率,可以通过程序控制产生的频率大小,方便快捷。 2、同步、异步选择 如果选择同步要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同,这样选择太过繁琐难度较大不易课程设计只好放弃同步采用异步的工作方式。 3、数据

18、传送接受方式 方案一:采用中断方式,需要使用8259中断控制器,不利于程序的编写。 方案二:才用查询方法,发射机不停的查询TxRDY的状态,接收机不停的查询RxRDY的状态,这样来判断是否传送或接受完毕。 4、总体方案 采用两个8086最小系统为控制核心,以可编程串行控制器8251A为数据传输和接受芯片,8251A采用查询方法、异步传送、半双工通信。8253提供接受和传送的时钟频率。32 硬件设计1、硬件原理框图2、硬件原理图见附录一33 软件设计1、软件流程图见附录二2、程序清单见附录三4 总结课程设计是培养学生综合运用所学知识发现、提出、分析和解决实际问题,是锻炼实践能力的重要环节,是对学

19、生实际工作能力的具体训练和考察过程。回顾起此次微机原理课程设计,的确如此,从选题到定稿,从理论到实践,在整整两个星期的日子里,我们学到很多很多的的东西,同时巩固了以前所学过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的。在设计的过程中遇到问题是无法避免但克服困难的过程就是学习的过程,说到困难我想这次的课题设计的难点在于 8251A芯片的使用,以及相关软件的使用如:PRETOL,就本质还是对汇编语言掌握得不好通过这次课程设计之后,我们每个人都有很大的进步。致谢: 在这课程设计结束之际,我要感谢王敬生、刘伟和林泽坤三位老师,感谢王老师在上课时的认真仔细的讲解和在课程设计时的精心点拔,

20、感谢两位课程设计指导老师他们的耐心指导和不厌辛苦的和我们奋斗到课程设计的结束,还要感谢学校给我们的这次机会。参考文献微型计算机原理及接口技术中国科技大学出版社 吴秀清 周荷琴编著16-32位微型计算机技术及应用清华大学出版社 戴梅萼 史嘉权 编著汇编语言程序设计南京大学出版社 姚君遗编著汇编语言程序设计教程清华大学出版社 杨记文编著微型计算机原理及接口技术实验指导书 附录一8086最小系统图:系统原理图:附录二程序流程图:附录三1、双机串行通信发送机源程序.MODEL TINY;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,产生4800bpsPCIBAR3 EQU 1CH

21、;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;厂商ID号Device_ID EQU 8376 ;设备ID号 .STACK 100 .DATACTL_ADDR DW 00F1H ;控制字或状态字DATA_ADDR DW 00F0H ;读写数据W_8253_T0 DW 00B0H ;计数器0地址W_8253_C DW 00B3H ;控制字;MESS DB SEND & LOAD A DATA,0AH,0DH,$ ORG 3000H A1 DB 01H,02H,03H,04H,05H,06H,0

22、7H,08H,09H,00HIO_Bit8_BaseAddress DW ?msg0 DB BIOS不支持访问PCI $msg1 DB 找不到Star PCI9052板卡 $msg2 DB 读8位I/O空间基地址时出错$ .CODE START: MOV AX,DATA MOV DS,AX MOV ES,AX NOP ; LEA DX,MESS ; MOV AH,9 ; INT 21H CALL InitPCI CALL ModifyAddress ;根据PCI提供的基地址,将偏移地址转化为实地址 CALL INIT_8253 CALL INIT_8251START1: MOV CX,10 C

23、ALL Send_Group CALL IfExit ;OUT1输出频率为1S的方波 JZ START1 JMP Exit INIT_8253 PROC NEAR MOV DX,W_8253_C MOV AL,37H ;定时器0,方式3 OUT DX,AL MOV DX,W_8253_T0 MOV AL,26H ;BCD码26(2000000/26)=16*4800 OUT DX,AL MOV AL,0 OUT DX,AL RETINIT_8253 ENDPINIT_8251 PROC NEAR CALL RESET_8251 MOV DX,CTL_ADDR MOV AL,7EH ;波特率系数

24、为16,8个数据位 OUT DX,AL ;一个停止位,偶校验 CALL DLTIME ;延时 MOV AL,11H ;只允许发送发送数据,清错误标志 OUT DX,AL CALL DLTIME RETINIT_8251 ENDP;8251的复位 Reset_8251 PROC NEAR MOV DX,CTL_ADDR MOV AL,0 OUT DX,AL ;向控制口写入0 CALL DLTIME ;延时,等待写操作完成 OUT DX,AL ;向控制口写入0 CALL DLTIME ;延时 OUT DX,AL ;向控制口写入0 CALL DLTIME ;延时 MOV AL,40H ;向控制口写入

25、复位字40H OUT DX,AL CALL DLTIME RETReset_8251 ENDP;发送一组数据,CX-发送数目Send_Group PROC NEAR LEA SI,A1Send_Group1: LODSB CALL Sendbyte LOOP Send_Group1 RETSend_Group ENDP;发送一个字节Sendbyte PROC NEAR PUSH AX MOV DX,CTL_ADDR ;读入状态Sendbyte1: IN AL,DX TEST AL,01H JZ Sendbyte1 ;允许数据发送吗? MOV DX,DATA_ADDR POP AX ;发送 OU

26、T DX,AL RETSendbyte ENDP ;延时DLTIME PROC NEAR PUSH AX PUSH DX MOV DX,1 ;延时1ms MOV AH,0FFH ;星研公司提供的软中断 INT 21H POP DX POP AX RETDLTIME ENDP IfExit PROC NEAR PUSH AX PUSH DX MOV AH,06H MOV DL,0FFH INT 21H POP DX POP AX RETIfExit ENDPInitPCI PROC NEAR MOV AH,00H MOV AL,03H INT 10H ;清屏 MOV AH,0B1H MOV AL

27、,01H INT 1AH CMP AH,0 JZ InitPCI2 LEA DX,msg0InitPCI1: MOV AH,09H INT 21H JMP ExitInitPCI2: MOV AH,0B1H MOV AL,02H MOV CX,Device_ID MOV DX,Vendor_ID MOV SI,0 INT 1AH JNC InitPCI3 ;是否存在Star PCI9052板卡 LEA DX,msg1 JMP InitPCI1InitPCI3: MOV DI,PCIBAR3 MOV AH,0B1H MOV AL,09H INT 1AH ;读取该卡PCI9052基地址 JNC I

28、nitPCI4 LEA DX,msg2 JMP InitPCI1InitPCI4: AND CX,0FFFCH MOV IO_Bit8_BaseAddress,CX RETInitPCI ENDPModifyAddress PROC NEAR ADD CTL_ADDR,CX ADD DATA_ADDR,CX ADD W_8253_T0,CX ADD W_8253_C,CX RETModifyAddress ENDPExit: MOV AH,4CH INT 21H END START2、双机通信接收机源程序.MODEL TINY;使用8253的计数器0,外接2Mhz,经26分频后,送给8251,

29、产生4800bpsPCIBAR3 EQU 1CH ;8位I/O空间基地址(它就是实验仪的基地址,也为DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_ID EQU 10EBH ;厂商ID号Device_ID EQU 8376 ;设备ID号Receive_Buffer EQU 3000H .STACK 100 .DATACTL_ADDR DW 00F1H ;控制字或状态字DATA_ADDR DW 00F0H ;读写数据W_8253_T0 DW 00B0H ;计数器0地址W_8253_C DW 00B3H ;控制字IO_Bit8_BaseAddress DW ?msg0 DB BIOS不支持访问PCI $msg1 DB 找不到Star PCI9052板卡 $msg2 DB 读8位I/O空间基地址时出错$/Receive_Buffer DB 10 DUP(0) ;接受缓冲器 .CODE START:

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

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