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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

微机原理串口通信课程设计概要文档格式.docx

1、2.2.1波特率因子寄存器(DLL/DLH) 8250芯片规定当线路控制寄存器写入D7=1时,接着对口地址3F8H、3F9H可分别写入波特率因子的低字节和高字节,即写入除数寄存器(L)和除数寄存器(H)中。而波特率为1.8432MHZ/(波特率因子16),波特率和除数对照表见下表:十进制十六进制波特率1047417110768300100384180192C060096601200483024002418480012C96002.2.2通信线路控制寄存器(LCR)(3FBH)该寄存器规定了异步串行通信的数据格式。各位含义如下:D7D6D5D4D3D2D1D0DLABSBSPEPSPENSTBW

2、LS1WLS0其中:D1D0是字长。它们的取值和对应的字长如下表:005位016位107位118位D2是停止位。它的取值和对应的停止位如下表:1位115位(数据位5位)2位(数据位6、7、8位)D3说明是否允许奇偶校验。如果为0无奇偶校验,如果为1允许奇偶校验。D4说明是奇校验还是偶校验。如果为0是奇校验,如果为1是偶校验。这一位起作用的前题是D3为1。D5说明是否有附加奇偶校验位。如果为0无附加奇偶校验位,如果为1有附加奇偶校验位。D6如果为0正常,如果为1发空缺位。D7如果为0允许访问接收、发送数据寄存器或中断允许寄存器。如果为0允许访问波特率因子寄存器。通信线路控制寄存器LCR主要用来指

3、定异步通信数据格式,即字符长度、停止位位数、奇偶校验。LCR的控制字如下2.2.3通信线路状态寄存器(3FDH)该寄存器向CPU提供有关数据传输的状态信息,各位含义如下:TSRETHREBTFEPEOEDR D0:DR,接收数据就绪 D1:OE,数据重叠错 D2:PE,数据奇偶错 D3:FE,缺少正确停止位 D4:BI,接收空缺位 D5:THRE,发送保持器空 D6:TSRE,发送移位寄存器空读入时各数据位等于1有效,读入操作后各位均复位。除D6位外,其它位还可被CPU写入,同样可产生中断请求。2.2.4中断允许寄存器(3F9H) 该寄存器允许8250四种类型中断(相应位置1)并通过IRQ4向

4、8088CPU发中断请求。EMSIELSIETBEIERBFI为1允许接收缓冲区满中断 D1:为1允许发送保持器空中断 D2:为1允许接收数据出错中断为1允许Modem状态改变中断2.2.5中断识别寄存器(3FAH) 为了具体识别时哪种事件引起的中断,直到该中断请求被CPU响应并服务之后,才能接收其他的中断请求。该寄存器为只读寄存器,内容格式为ID2ID1IP2.2.6调制解调控制寄存器(3FCH) MODEM控制寄存器用来设置对MODEM的联络控制信号和芯片自检,寄存器的各位定义LOOPOUT2OUT1RTSDTRDTR=1,数据终端就绪,输出端DTR为低电平RTS=1,请求发送,输出端RT

5、S为低电平OUT1=1,用户指令输出,输出端OUT1为低电平OUT2=1,输出端OUT2为低电平,允许发送IRQ4中断请求 D4:循环(自诊断用)=1,发送数据立即被接收,可用于自检2.2.7 MODEM状态寄存器(3FEH)Modem状态寄存器用来检测和记录来自Modem的联络信号及其状态变化。此寄存器的各位定义为:RLSDRIDSRCTSRLSDRIDSRCTS2.2.8发送保持寄存器和接收缓冲寄存器(3F8H) 发送时,CPU首先将待发送的字符写到8250的发送保持寄存器THR中,然后进入发送移位寄存器,在发送始终的作用下,从SOUT引脚输出。一旦THR的内容送到发送移位寄存器TSR后,

6、THR就变空,同时将LSR的THRE位置“1”,产生中断请求,要求CPU发送下一个字符。CPU向THR写入下一个字符后,THRE位自动清“0”。如此重复,直到全部数据发送完毕。 接收时,串行数据在接收时钟的作用下,从SIN引脚先输入到移位寄存器RSR,然后由RSR并行输入到接收缓冲寄存器RBR,一旦RBR变满,将LSR的DR位置“1”,产生中断请求,要求CPU读取数据字符。CPU从RBR读取该字符后,DR位自动清“0”。如此重复,直到所有的数据接收完毕。2.3 8250的各寄存器的地址寄存器COM1端口下的地址COM2端口下的地址发送保持寄存器(THR)3F8H2F8H接收数据寄存器(RBR)

7、低字节波特率因子(设置工作方式控制字D7=1)(LSB)高字节波特率因子(设置工作方式控制字D7=1)(MSB)3F9H12F9H1中断允许寄存器(IER)3F9H2F9H中断识别寄存器(IIR)3FAH2FAH线路控制寄存器(LCR)3FBH2FBHMODEM控制寄存器(MCR)3FCH2FCH线路状态寄存器(LSR)3FDH2FDHMODEM状态寄存器(MSR)3FEH2FEH3程序设计3.1程序设计思路根据设计要求,要实现通过串口进行通信,就必须有一个发送端和一个接收端,因此要编写两个程序,在发送端编写发送程序,在接受端编写接收程序。发送PC机和接收PC机通过RS-232C的3根信号线(

8、TXD、RXD、GND)进行相连。我决定采用查询方式编写发送程序和接收程序。编写发送程序的时候,首先要初始化段寄存器,设置发送缓冲区指针。然后初始化8250,通过初始化8250来设置串口的参数。再根据线路状态寄存器的内容,测试发送保持寄存器是否为空,如果不为空,继续读线状态寄存器的内容,判断发送保持寄存器是否为空,如果为空的话,读取按键字符并显示和发送它。我事先规定当输入某一个字符的时候发送结束,这时候我就要判断按键是否为该字符,是该字符的时候结束程序。编写接收程序的时候首先要设置接收缓冲区,设置接收错信息,初始段寄存器,设置接收缓冲寄存器地址指针然后初始化8250,初始设置和接收端的保持一置

9、。以上完成后开始接收,在屏幕上显示接收开始。然后读线状态寄存器,判断是否接收错,在屏幕上显示接收错误,继续读线状态寄存器,如果接收无误,则测试接收数据是否准备好了,为准备好则循环测试,准备好了则接收字符。判断接收的字符是否为规定的结束字符,如果是结束程序,如果不是显示字符。两台机器的连接图如下。3.2程序流程图3.2.1发送端程序流程图3.2.2接收端的程序流程图3.3具体的程序3.3.1发送端的程序代码STACK SEGMENT PARA STACK STACK DB 200 DUP(0)STACK ENDSDATA SEGMENTDISP DB TRANSMISSION START:,0A

10、H,0DH,$DATA ENDSCODE SEGMENT ASSUME CS:CODE,DS:DATA,SS:STACKSTART: MOV AX,DATA MOV DS,AX MOV AX,STACK MOV SS,AX MOV DX,3FBH ;置DLAB=1 MOV AL,80H OUT DX,AL MOV DX,3F8H ;置波特率因子寄存器 MOV AL,0CH ;波特率因子低字节 OUT DX ,AL MOV DX,3F9H MOV AL,0 ;波特率因子高字节置线路控制寄存器 MOV AL,03H ;数据位8位,停止位1位、无校验 MOV DX,3FCH ;置MODEM控制寄存器 MOV AL,02H ;禁止中断 MOV DX,3F9H ;置中断允许寄存器屏蔽所有中断 MOV DX,OFFSET DISP ;显示发送提示信息 MOV AH,9 INT 21HLO0P: MOV DX,3FDH ;读线路状态寄存器 IN AL,DX TEST AL,20H ;测试发送保持寄存器 JZ L0OP ;不空,则循环测试 MOV AH,1 ;读取按键字符并显示发送该字符 CMP AL,P ;判断按下的字符是否为P JZ OVER ;是,则结束 JMP LOP ;不是继续循环OVER: MOV AH,4CH ;返回DOSCODE ENDSEND

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

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