微机原理课程设计报告书两台PC机之间进行串口通信.doc
《微机原理课程设计报告书两台PC机之间进行串口通信.doc》由会员分享,可在线阅读,更多相关《微机原理课程设计报告书两台PC机之间进行串口通信.doc(11页珍藏版)》请在三一办公上搜索。
1、一、课程设计题目 两台PC机之间进行串口通信。二、课程设计目的与要求 通过本次实训,加强学生们对微机原理与接口技术这门课程的理解和掌握,同时了解并掌握8250串口芯片和中断管理芯片8259的初始化编程和使用。1.目的: 俩个PC机通过串行口互联,实现文件的无差错传输。2.基本要求:(1) PC机使用8250串口芯片。中断管理芯片使用8259 (2)要求用C语言或汇编语言完成程序的设计。(3)程序必须用中断方式来实现。(4)在U盘上自备TURBO C 2.0编译环境。因为机房的计算机(C和D盘要还原)安装有还原卡。(5)自购DB9P 公插头二个,2,3脚交叉连线,5脚直接连接,焊接。电缆长度一米
2、。(6)不准带电拔插串行口插头。 三、实现方法 1. 8250的初始化依据 8250(16550)的寄存器如下表所示:基地址读/写寄存器缩写注 释0Write-发送保持寄存器(DLAB=0)0Read-接收数据寄存器(DLAB=0)0Read/Write-波特率低八位(DLAB=1)1Read/WriteIER中断允许寄存器1Read/Write-波特率高八位(DLAB=1)2ReadIIR中断标识寄存器2WriteFCRFIFO控制寄存器3Read/WriteLCR线路控制寄存器4Read/WriteMCRMODEM控制寄存器5ReadLSR线路状态寄存器6ReadMSRMODEM状态寄存器
3、7Read/Write-Scratch Register PC机支持1-4个串行口,即COM1-COM4,其基地址在BIOS数据区0000:0400-0000:0406中描述,对应地址分别为3F8/2F8/3E8/2E8,COM1及COM3使用PC机中断4,COM2及COM4使用中断3。 在上表中,8250共有12个寄存器,使用了8个地址,其中部分寄存器共用一个地址,由DLAB=0/1来区分,在DLAB=1用于设定通讯所需的波特率。常用的波特率参数见下表:速率(BPS)波特率高八位波特率低八位5009h00h30001h80h60000hC0h240000h30h480000h18h96000
4、0h0Ch1920000h06h3840000h03h5760000h02h11520000h01h 以下几个表格为8250的寄存器的功能描述: 中断允许寄存器(IER):位注 释7未使用6未使用5进入低功耗模式(16750)4进入睡眠模式(16750)3允许MODEM状态中断2允许接收线路状态中断1允许发送保持器空中断0允许接收数据就绪中断 Bit0置1将允许接收到数据时产生中断,Bit1置1时允许发送保持寄存器空时产生中断,Bit2置1将在LSR变化时产生中断,相应的Bit3置位将在MSR变化时产生中断。中断识别寄存器(IIR):位注 释Bit6:7=00无FIFOBit6:7=01允许F
5、IFO,但不可用Bit6:7=11允许FIFOBit5允许64字节FIFO(16750)Bit4未使用Bit316550超时中断Bit2:1=00MODEM状态中断(CTS/RI/DTR/DCD)Bit2:1=01发送保持寄存器空中断Bit2:1=10接收数据就绪中断Bit2:1=11接收线路状态中断Bit0=0有中断产生Bit0=1无中断产生IIR为只读寄存器,Bit6:7用来指示FIFO的状态,均为0时则无FIFO,此时为8250或16450芯片,为01时有FIFO但不可以使用,为11时FIFO有效并可以正常工作。Bit3用来指示超时中断(16550/16750)。 Bit0用来指示是否有
6、中断发生,Bit1:2标识具体的中断类型,这些中断具有不同的优先级别,其中LSR中断级别最高,其次是数据就绪中断,然后是发送寄存器空中断,而MSR中断级别最低。FIFO控制寄存器(FCR):位注 释Bit7:6=001Byte产生中断Bit7:6=014Byte产生中断Bit7:6=108Byte产生中断Bit7:6=1114Byte产生中断Bit5允许64字节FIFOBit4未使用Bit3DMA模式选择Bit2清除发送FIFOBit1清除接收FIFOBit0允许FIFO FCR可写但不可以读,该寄存器用来控制16550或16750的FIFO寄存器。Bit0置1将允许发送/接收的FIFO工作,
7、Bit1和Bit2置1分别用来清除接收及发送FIFO。清除接收及发送FIFO并不影响移位寄存器。Bit1:2可自行复位,因此无需使用软件对其清零。Bit6:7用来设定产生中断的级别,发送/接收中断将在发送/接收到对应字节数时产生。线路控制寄存器(LCR):位注 释Bit7=1允许访问波特率因子寄存器Bit7=0允许访问接收/发送及中断允许寄存器Bit6设置间断,0-禁止,1-设置Bit5:3=XX0无校验Bit5:3=001奇校验Bit5:3=011偶校验Bit5:3=101奇偶保持为1Bit5:3=111奇偶保持为0Bit2=01位停止位Bit2=12位停止位(数据位6-8位),1.5位停止
8、位(5位数据位)Bit1:0=005位数据位Bit1:0=016位数据位Bit1:0=107位数据位Bit1:0=118位数据位 LCR用来设定通讯所需的一些基本参数。Bit7为1指定波特率因子寄存器有效,为0则指定发送/接收及IER有效。Bit6置1会将发送端置为0,这将会使接收端产生一个“间断”。Bit3-5用来设定是否使用奇偶校验以及奇偶校验的类型,Bit3=1时使用校验,Bit4为0则为奇校验,1为偶校验,而Bit5则强制校验为1或0,并由Bit4决定具体为0或1。Bit2用来设定停止位的长度,0表示1位停止位,为1则根据数据长度的不同使用1.5-2位停止位。Bit0:1用来设定数据长
9、度。MODEM控制寄存器(MCR):位注 释Bit7未使用Bit6未使用Bit5自动流量控制(仅16750)Bit4环路测试Bit3辅助输出2Bit2辅助输出1Bit1设置RTSBit0设置DSR MCR寄存器可读可写,Bit4=1进入环路测试模式。Bit3-0用来控制对应的管脚。线路状态寄存器(LSR):位注 释Bit7FIFO中接收数据错误Bit6发送移位寄存器空Bit5发送保持寄存器空Bit4间断Bit3帧格式错Bit2奇偶错Bit1超越错Bit0接收数据就绪 LSR为只读寄存器,当发生错误时Bit7为1,Bit6为1时标示发送保持及发送移位寄存器均空,Bit5为1时标示仅发送保持寄存器
10、空,此时,可以由软件发送下一数据。当线路状态为0时Bit4置位为1,帧格式错时Bit3置位为1,奇偶错和超越错分别将Bit2及Bit1置位为1。Bit0置位为1表示接收数据就绪。MODEM状态寄存器(MSR):位注 释Bit7载波检测Bit6响铃指示Bit5DSR准备就绪Bit4CTS有效Bit3DCD已改变Bit2RI已改变Bit1DSR已改变Bit0CTS已改变 MSR寄存器的高4位分别对应MODEM的状态线,低4位表示MODEM的状态线是否发生了变化。 以上我们详细介绍了PC机的串行通讯硬件环境,以下将分别给出使用查询及中断驱动的方法编写的串行口驱动程序。这些程序仅使用RXD/TXD,无
11、需硬件握手信号。 2. 程序源代码和部分注释#include #include #include #include #include #define SER_RBR 0 /*接收缓冲寄存器RBR(读) DLAB=0*/#define SER_THR 0 /*发送保持寄存器THR(写) DLAB=0*/#define SER_IER 1 /*中断允许寄存器IER(读/写) DLAB=0*/#define SER_IIR 2 /*中断识别寄存器IIR (读)*/#define SER_LCR 3 /*通信线路控制寄存器LCR (读/写)*/#define SER_MCR 4 /*Model控制寄存
12、器MCR (读/写)*/#define SER_LSR 5 /*通信线路状态寄存器LSR (读)*/#define SER_MSR 6 /*Modem状态寄存器MSR (读)*/#define SER_DLL 0 /*除数锁存器(波特率低8位)DLL(读/写) DLAB=1*/#define SER_DLH 1 /*除数锁存器(波特率高8位)DLH(读/写) DLAB=1*/*8250使用1.8432MHz的基准时钟输入,所以除数=1843200/(B*16)*/#define SER_BAUD_1200 96 /*波特率为1200时,波特率因子(除数)为96*/#define SER_BAU
13、D_2400 48 /*波特率为2400时,波特率因子(除数)为48*/#define SER_BAUD_9600 12 /*波特率为9600时,波特率因子(除数)为12*/#define SER_BAUD_19200 6 /*波特率为19200时,波特率因子(除数)为6*/#define COM_1 0x3F8 /*COM1口 8250内部寄存器基地址*/#define COM_2 0x2F8 /*COM2口 8250内部寄存器基地址*/*/#define COM_3 0x3E8 /*COM3口 8250内部寄存器8250基地址*/#define COM_4 0x2E8 /*COM4口 82
14、50内部寄存器8250基地址*/#define SER_STOP_1 0 /* 1位停止位*/#define SER_STOP_2 4 /* 2位停止位*/#define SER_BITS_5 0 /* 5位数据位*/#define SER_BITS_6 1 /* 6位数据位*/#define SER_BITS_7 2 /* 7位数据位*/#define SER_BITS_8 3 /* 8位数据位*/#define SER_PARITY_NONE 0 /*无校验*/#define SER_PARITY_ODD 8 /*奇校验*/#define SER_PARITY_EVEN 24 /*偶校验*
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 原理 课程设计 报告书 PC 之间 进行 串口 通信
链接地址:https://www.31ppt.com/p-4854668.html