当前位置:文档之家› 8251串行通讯实验

8251串行通讯实验

郑州科技学院《微机原理与接口技术》课程设计题目8251串行通讯实验学生姓名专业班目录1 引言 (1)2 设计方案与论证 (1)2.1 设计内容 (1)2.2 设计要求 (2)2.3 设计框图 (2)3 设计原理及功能 (2)3.1 8251的基本性能 (2)3.2 8251的内部结构及外部引脚 (2)3.3 软件 (3)3.3.1 流程图 (3)3.3.2 主程序 (4)4 单元电路的设计 (5)4.1 电路图 (5)4.2 电路说明 (5)4.3 8251概述 (6)4.4 8251的内部结构 (6)5 系统调试与结果测试 (8)5.1 调试 (8)5.2 程序结果测试 (9)6 总结 (10)参考文献 (11)附录1:总体电路原理图 (12)附录2 程序 (13)附录3:实验原器件清单 (15)1 引言通过对微机系统分析和具体设计,使学生加深对所学课程的理解,掌握汇编语言程序设计的基本方法和典型接口电路的基本设计方法,培养学生分析问题、解决问题的能力,培养学生对微型计算机应用系统的基本设计能力,提高学生的实践动手能力和创新能力。

从《微型计算机原理》中,我懂得了微机设计的基本原理,学会了微机的基本知识和内容,知道了其中的基本操作。

另外,我从《微型计算机原理与应用》中知道了在微机实验中如何应用的,并且学到了以前没有学到的知识。

在微机原理及应用课程中学过了微机各个基本组成模块的原理和编程技术,在实验室现有的设备情况下,设计一个具有一定功能的应用系统,达到对知识的深入理解和融会贯通,培养动手能力、实践能力以及团队合作的精神。

2 设计方案与论证2.1 设计内容连接好电路,(8251插通用插座)其中8253计数器用于产生8251的发送和接收时钟,TXD和RXD连在一起。

编程:从键盘输入一个字符,将其ASCII码加1后发送出去,再接收回来在屏幕上显示,实现自发自收。

2.2 设计要求8253计数器的计数初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,这计数器初值52.2.3 设计框图3 设计原理及功能3.1 8251的基本性能8251是可编程的串行通信接口,可以管理信号变化范围很大的串行数据通信。

有下列基本性能:(1)通过编程,可以工作在同步方式,也可以工作在异步方式。

(2)同步方式下,波特率为0~64K,异步方式下,波特率为0~19.2K。

(3)在同步方式时,可以用5~8位来代表字符,内部或外部同步,可自动插入同步字符。

(4)在异步方式时,也使用5~8位来代表字符,自动为每个数据增加1个启动位,并能够根据编程为每个数据增加1个、1.5个或2个停止位。

(5)具有奇偶、溢出和帧错误检测能力。

(6)全双工,双缓冲器发送和接收器。

3.2 8251的内部结构及外部引脚8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,每个部分还有对外的引脚。

8251共有28个外部引脚,每个引脚信号的输入输出方式不同。

根据第一个实验的两个程序设计出8251串口自发自收实验的实验程序,可参考双机通讯实验的两个程序的格式。

对于串行传输的数据格式,本实验有如下规定:一个字有一个逻辑“1”起始位,8位ASCII码数据位,1位逻辑“1”停止位,传输波特率为9600baut。

程序设计提示:可以用4000H-400AH十个单元作为需要发送数据的存贮单元,可以用3000H-300AH十个单元作为接收数据的存贮单元。

3.3 软件3.3.1 流程图3.3.2 主程序mov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16hout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251xor al,almov cx,03 ;向8251控制端口送3个0delay: call out1loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz waitimov ah,01 ;是,从键盘上读一字符int 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251ainc alout dx,al ;发送mov cx,0F00h4 单元电路的设计4.1 电路图图 5-14.2 电路说明该电路图采用了串联的方式,运用了8253和8251,8253 是一种可编程定时/计数器,有三个十六位计数器,其计数频率范围为0-2MHz,用+5V 单电源供电。

8253具有延时中断;可编程频率发生器;事件计数器;二进制倍频器;实时时钟;数字单稳复杂的电机控制器。

8253有计数结束中断;可编程频率发生;频率发生器;方波频率发生器;软件触发的选通信号;硬件触发的选通信号六种方式。

4.3 8251概述Intel 公司的8251 是可编程串行通信接口集成电路,可工作于同步或异步方式,并可指定为半双工或全双工工作方式,同时也可确定字符位数、奇偶校验和异步时钟频率。

4.4 8251的内部结构8251的内部结构图如图所示,可以看出,8251有7个主要部分,即数据总线缓冲器、读/写控制逻辑电路、调制/解调控制电路、发送缓冲器、发送控制电路、接收缓冲器和接收控制电路,图中还标识出了每个部分对外的引脚。

8251的外部引脚如图所示,共28个引脚,每个引脚信号的输入输出方式如图中箭头方向所示。

图5-4 内部结构图图5-5外部引脚图5 系统调试与结果测试5.1 调试为了进一步了解系统的工作过程,这里介绍一下系统的调试过程。

(1)首先根据电路图连接好如图7-1。

(2)在PC机上敲入程序,并对其进行的查错,编译,连接,最后生成可执行文件。

(3)将试验箱接入电源,运行程序。

图5-15.2 程序结果测试(1)8253计数器的计数初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHz,波特率若选1200,波特率因子若选16,这计数器初值52.(2)收发采用查询方式。

图5-26 总结课程设计是培养我们综合运用所学知识、发现、提出、分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程。

在这次的课程设计中,我深深地认识到理论联系实际的重要性。

此次课程设计有两周的时间,在第一周,我们不但在图书馆借了许多的相关资料,并且在网上也下载了一些电子书籍,和同学们一起讨论,遇到不懂的就向老师请教。

从而很快地了解到此次课程设计的内容及要求,并且确定了设计的方案。

在确定了方案之后,本以为会很快的完成设计。

但是,事情远比想象的困难的多。

有时会犯一些简单的原则性错误。

经过多次的检查,源程序编译把错误个个清除。

除此之外,通过这次课程设计,我也学会了当面对困难时我们应该以何种心态。

不论是做实验,还是做课程设计,我们都要有所准备。

俗话说的好“不打无准备之仗”,用到此处是再恰当不过了。

只有做好了充分的准备,才能顺利的完成课程设计。

其实,我们做其他事情也是如此。

参考文献[1] 专著.王忠民.《微型计算机原理》【M】.西安科技大学出版社.2005年5月[2] 专著.王永山.《微型计算机原理与应用》【M】.西安电子科技大学出版社.1991[3] 专著.白中英.《计算机组成原理》【M】.北京科学出版社.2000年[4] 专著.王晓军.《微机原理与接口技术》【M】.北京邮电大学出版社.2001年[5] 专著.吴功宜.《计算机网络教程》【M】,电子工业出版社. 2003 年[6] 专著.吴玲达.《计算机通信原理与技术》【M】.国防大学出版社. 2003年 3 月[7] 专著.张家超. 《计算机网络基础》【M】.中国电力出版社. 2003 年9 月附录1:总体电路原理图附录2 程序data segmentioport equ 1200h-0280hio8253a equ ioport+280hio8253b equ ioport+283hio8251a equ ioport+2b8hio8251b equ ioport+2b9hmes1 db 'you can play a key on the keybord!',0dh,0ah,24hmes2 dd mes1data endscode segmentassume cs:code,ds:datastart: mov ax,datamov ds,axmov dx,io8253b ;设置8253计数器0工作方式mov al,16hout dx,almov dx,io8253amov al,52 ;给8253计数器0送初值out dx,almov dx,io8251b ;初始化8251xor al,almov cx,03 ;向8251控制端口送3个0delay: call out1loop delaymov al,40h ;向8251控制端口送40H,使其复位call out1mov al,4eh ;设置为1个停止位,8个数据位,波特率因子为16 call out1mov al,27h ;向8251送控制字允许其发送和接收call out1lds dx,mes2 ;显示提示信息mov ah,09int 21hwaiti: mov dx,io8251bin al,dxtest al,01 ;发送是否准备好jz waitimov ah,01 ;是,从键盘上读一字符int 21hcmp al,27 ;若为ESC,结束jz exitmov dx,io8251ainc alout dx,al ;发送mov cx,0F00hs51: loop s51 ;延时next: mov dx,io8251bin al,dxtest al,02 ;检查接收是否准备好jz next ;没有,等待mov dx,io8251ain al,dx ;准备好,接收mov dl,almov ah,02 ;将接收到的字符显示在屏幕上int 21hjmp waitiexit: mov ah,4ch ;退出int 21hout1 proc near ;向外发送一字节的子程序out dx,alpush cxmov cx,0F00hgg: loop gg ;延时pop cxretout1 endpcode endsend start附录3:实验原器件清单(1)电脑(2)微机原理实验箱(3)8251芯片(4)8253芯片(5)导线若干。

相关主题