微机原理与接口技术课程设计串行通讯.docx

上传人:b****5 文档编号:8296741 上传时间:2023-01-30 格式:DOCX 页数:13 大小:71.26KB
下载 相关 举报
微机原理与接口技术课程设计串行通讯.docx_第1页
第1页 / 共13页
微机原理与接口技术课程设计串行通讯.docx_第2页
第2页 / 共13页
微机原理与接口技术课程设计串行通讯.docx_第3页
第3页 / 共13页
微机原理与接口技术课程设计串行通讯.docx_第4页
第4页 / 共13页
微机原理与接口技术课程设计串行通讯.docx_第5页
第5页 / 共13页
点击查看更多>>
下载资源
资源描述

微机原理与接口技术课程设计串行通讯.docx

《微机原理与接口技术课程设计串行通讯.docx》由会员分享,可在线阅读,更多相关《微机原理与接口技术课程设计串行通讯.docx(13页珍藏版)》请在冰豆网上搜索。

微机原理与接口技术课程设计串行通讯.docx

微机原理与接口技术课程设计串行通讯

微机原理与接口技术课程设计(串行通讯)

一、设计意义

在信息飞速发展的时代,计算机的应用越来越广泛。

而微机原理是机械工业控制设备的理论基础,学好了就能在激烈的竞争环境中找到一份好一点的工作。

理论课程学习是让学生学习基本理论知识,对课程内容和原理有比较深刻的理解,只要从理论上理解,不用考虑实际的可行性。

通过本次课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程,不仅需要在理论上能实现而且还要考虑实际的可行性,不能纸上谈兵。

二、设计目的

1、了解串行通信的基本原理。

2、掌握串行接口芯片8251的工作原理。

3、掌握8251芯片的编程方法。

4、了解8253的初始化。

5、巩固和加深在微机原理课程中所学的理论知识。

通过课程设计加深理解课堂教学内容,掌握计算机接口技术的基本应用方法。

6、学会查阅相关手册与资料,培养独立分析与解决问题能力。

三、设计环境

PC机一台,串行通讯接口芯片8251A一片,8253一片。

TC-1集成开发环境实验箱一台。

四、设计题目及要求

4.1设计题目

串行通讯

4.2设计要求

设计一个串行通信系统,用软件编程和硬件实验来实现。

具体要求:

用8253芯片作为计数器,用于产生8251的发送和接受时钟。

TXD和RXD连在一起。

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

8251的控制端口地址为2B9H,数据口地址为2B8H.

8253计数器的计算初值=时钟频率/(波特率*波特率因子),这里的时钟频率接1MHZ,波特率若选1200,波特因子若选16,则计数器初值为52。

收发采用查询方式。

五、设计原理

5.1.8251A的基本性能

8251A是可编程的串行通信接口芯片,基本性能:

1.两种工作方式:

同步方式,异步方式。

同步方式下,波特率为064K,异步方式下,波特率为0~19.2K。

2.同步方式下的格式

每个字符可以用5、6、7或8位来表示,并且内部能自动检测同步字符,从而实现同步。

除此之外,8251A也允许同步方式下增加奇/偶校验位进行校验。

3.异步方式下的格式

每个字符也可以用5、6、7或8位来表示,时钟频率为传输波特率的1、16或64倍,用1位作为奇/偶校验。

1个启动位。

并能根据编程为每个数据增加1个、1.5个或2个停止位。

可以检查假启动位,自动检测和处理终止字符。

4.全双工的工作方式

其内部提供具有双缓冲器的发送器和接收器。

5.提供出错检测

具有奇偶、溢出和帧错误三种校验电路。

5.2、8251A的内部结构

1、发送器

发送器由发送缓冲器和发送控制电路两部分组成。

采用异步方式,则由发送控制电路在其首尾加上起始位和停止位,然后从起始位开始,经移位寄存器从数据输出线TXD逐位串行输出。

8251A内部结构图

或采用同步方式,则在发送数据之前,发送器将自动送出1个2个同步字符,然后才逐位串行输出数据。

如果CPU与8251A之间采用中断方式交换信息,那么TXRDY可作为向CPU发出的中断请求信号。

当发送器中的8位数据串行发送完毕时,由发送控制电路向CPU发出TXE有效信号,表示发送器中移位寄存器已空。

2.接收器

接收器由接收缓冲器和接收控制电路两部分组成。

接收移位寄存器从RXD引腿上接收串行数据转换成并行数据后存入接收缓冲器。

异步方式:

在RXD线上检测低电平,将检测到的低电平作为起始位,8251A开始进行采样,完成字符装配,并进行奇偶校验和去掉停止位,变成了并行数据后,送到数据输入寄存器,同时发出RXRDY信号送CPU,表示已经收到一个可用的数据。

同步方式:

首先搜索同步字符。

8251A监测RXD线,每当RXD线上出现一个数据位时,接收下来并送入移位寄存器移位,与同步字符寄存器的内容进行比较,如果两者不相等,则接收下一位数据,并且重复上述比较过程。

当两个寄存器的内容比较相等时,8251A的SYNDET升为高电平,表示同步字符已经找到,同步已经实现。

采用双同步方式,就要在测得输入移位寄存器的内容与第一个同步字符寄存器的内容相同后,再继续检测此后输入移位寄存器的内容是否与第二个同步字符寄存器的内容相同。

如果相同,则认为同步已经实现。

在外同步情况下,同步输入端SYNDET加一个高电位来实现同步的。

实现同步之后,接收器和发送器间就开始进行数据的同步传输。

这时,接收器利用时钟信号对RXD线进行采样,并把收到的数据位送到移位寄存器中。

在RXRDY引脚上发出一个信号,表示收到了一个字符。

3.数据总线缓冲器

数据总线缓冲器是CPU与8251A之间的数据接口。

包含3个8位的缓冲寄存器:

两个寄存器分别用来存放CPU向8251A读取的数据或状态信息。

一个寄存器用来存放CPU向8251A写入的数据或控制。

4.读/写控制电路

读/写控制电路用来配合数据总线缓冲器的工作。

功能如下:

(1)接收写信号

,并将来自数据总线的数据和控制字写入8251A;

(2)接收读信号

,并将数据或状态字从8251A送往数据总线;

(3)接收控制/数据信号C/

,高电平时为控制字或状态字;低电平时为数据。

(4)接收时钟信号CLK完成8251A的内部定时;

(5)接收复位信号RESET,使8251A处于空闲状态。

5.调制解调控制电路

调制解调控制电路用来简化8251A和调制解调器的连接。

5.3.8251A的引脚功能

1、8251A和CPU之间的连接信号

8251A和CPU之间的连接信号可以分为四类:

a)片选信号

片选信号,它由CPU的地址信号通过译码后得到。

b)数据信号

D0-D7:

8位,三态,双向数据线,与系统的数据总线相连。

传输CPU对8251的编程命令字和8251A送往CPU的状态信息及数据。

c)读/写控制信号

读信号,低电平时,CPU当前正在从8251A读取数据或者状态信息。

写信号,低电乎时,CPU当前正在往8251A写入数据或者控制信息。

•C/

控制/数据信号,用来区分当前读/写的是数据还是控制信息或状态信息。

该信号也可看作是8251A数据口/控制口的选择信号。

由此可知,

、C/

这3个信号的组合,决定了8251A的具体操作,它们的关系如表7-3所示:

注:

数据输入端口和数据输出端口合用同一个偶地址,而状态端口和控制端口合用同一个奇地址。

c)收发联络信号

•TXRDY:

发送器准备好信号,用来通知CPU,8251A已准备好发送一个字符。

•TXE:

发送器空信号,TXE为高电平时有效,用来表示此时8251A发送器中并行到串行转换器空,说明一个发送动作已完成。

•RXRDY:

接收器准备好信号,用来表示当前8251A已经从外部设备或调制解调器接收到一个字符,等待CPU来取走。

因此,在中断方式时,RXRDY可用来作为中断请求信号;在查询方式时,RXRDY可用来作为查询信号。

•SYNDET:

同步检测信号,只用于同步方式。

2.8251A与外部设备之间的连接信号

8251A与外部设备之间的连接信号分为两类:

a)收发联络信号

数据终端准备好信号,通知外部设备,CPU当前已经准备就绪。

数据设备准备好信号,表示当前外设已经准备好。

请求发送信号,表示CPU已经准备好发送。

允许发送信号,是对

的响应,由外设送往8251A。

实际使用时,这4个信号中通常只有

必须为低电平,其它3个信号可以悬空。

b)数据信号

•TXD:

发送器数据输出信号。

当CPU送往8251A的并行数据被转变为串行数据后,通过TXD送往外设。

•RXD:

接收器数据输入信号。

用来接收外设送来的串行数据,数据进入8251A后被转变为并行方式。

3.时钟、电源和地

8251A除了与CPU及外设的连接信号外,还有电源端、地端和3个时钟端。

•CLK:

时钟输入,用来产生8251A器件的内部时序。

同步方式下,大于接收数据或发送数据的波特率的30倍,异步方式下,则要大于数据波特率的4.5倍。

•TXD:

发送器时钟输入,用来控制发送字符的速度。

同步方式下,TXC的频率等于字符传输的波特率,异步方式下,TXC的频率可以为字符传输波特率的1倍、16倍或者64倍。

•RXD:

接收器时钟输入,用来控制接收字符的速度,和TXC一样。

在实际使用时,RXC和TXC往往连在一起,由同一个外部时钟来提供,CLK则由另一个频率较高的外部时钟来提供。

•VCC:

电源输入

•GND:

5.4、8251A的编程

编程的内容包括两大方面:

一是由CPU发出的控制字,即方式选择控制字和操作命令控制字;

二是由8251A向CPU送出的状态字。

1.方式选择控制字(模式字)

方式选择控制字的格式如图所示。

2.操作命令控制字(控制字)

操作命令控制字的格式如下:

3、状态字

状态字的格式如下:

4.8251A的初始化

a)芯片复位以后,第一次用奇地址端口写入的值作为模式字进入模式寄存器。

b)如果模式字中规定了8251A工作在同步模式,

c)由CPU用奇地址端口写入的值将作为控制字送到控制寄存器,而用偶地址端口写入的值将作为数据送到数据输出缓冲寄存器。

六、设计方案

6.1、硬件设计

6.1.1设计原理图

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

6.1.2、实验注意事项

在本实验方案中有以下几点需要注意

1、图示电路8251的控制口地址为2B9H,数据口地址为2B8H。

2、8253计数器的计数初值=时钟频率/(波特率*波特因子),这里的时钟频率接1MHZ,

波特率若选1200,波特因子若选16,则计数器初值为52。

3、收发采用查询模式。

6.2软件设计

6.2.1程序流程图

6.2.2编程实现

datasegment

ioportequ0cc00h-0280h

io8253aequioport+280h

io8253bequioport+283h

io8251aequioport+2b8h

io8251bequioport+2b9h

mes1db'youcanplayakeyonthekeybord!

',0dh,0ah,24h

mes2ddmes1

dataends

codesegment

assumecs:

code,ds:

data

start:

movax,data

movds,ax

movdx,io8253b;设置8253计数器0工作方式

moval,16h

outdx,al

movdx,io8253a

moval,52;给8253计数器0送初值

outdx,al

movdx,io8251b;初始化8251

xoral,al

movcx,03;向8251控制端口送3个0

delay:

callout1

loopdelay

moval,40h;向8251控制端口送40H,使其复位

callout1

moval,4eh;设置为1个停止位,8个数据位,波特率因子为16

callout1

moval,27h;向8251送控制字允许其发送和接收

callout1

ldsdx,mes2;显示提示信息

movah,09

int21h

waiti:

movdx,io8251b

inal,dx

testal,01;发送是否准备好

jzwaiti

movah,01;是,从键盘上读一字符

int21h

cmpal,27;若为ESC,结束

jzexit

movdx,io8251a

incal

outdx,al;发送

movcx,40h

s51:

loops51;延时

next:

movdx,io8251b

inal,dx

testal,02;检查接收是否准备好

jznext;没有,等待

movdx,io8251a

inal,dx;准备好,接收

movdl,al

movah,02;将接收到的字符显示在屏幕上

int21h

jmpwaiti

exit:

movah,4ch;退出

int21h

out1procnear;向外发送一字节的子程序

outdx,al

pushcx

movcx,40h

gg:

loopgg;延时

popcx

ret

out1endp

codeends

七、调试运行

1.对设计原理图进行检查。

主要针对电路连接中的线路连接进行检查,并生成对应电路的网表。

特别是对电路节点的连接检查。

2.对设计的程序进行语法检查。

检查程序中存在的语法错误。

编译连接并下载到芯片中。

3.对设计进行综合调试。

对下载到芯片中的程序进行功能检查。

直到完成设计要求的功能。

运行结果:

通过对下载的程序的调试,完成了设计要求的任务:

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

八、课程设计总结

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

通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。

在本次微机原理课程设计过程中,也遇到不少问题,如对8251A芯片某些引脚的功能不是很了解,在连线过程中出现线路错误,在运用汇编语言进行软件编程中,对汇编的某些指令不是很了解,出现编程错误,导致程序不能正常运行等。

当然出现问题后解决问题才是最重要的,发现问题弥补自己在某些知识方面的漏洞,使自己在实践中得到真正的进步,才是这次课程设计的真正意义。

总之通过本次课程设计,锻炼了自己的动手能力,使自己将课本上学到的理论知识联系到具体的实践过程中去,理论联系实践,巩固了自己所学的知识,同时也暴漏出自己的不少问题。

总之通过本次课程设计使自己有了很大的进步,希望以后自己有更多的机会参与这样的课程实践,在实践中提升自己的能力与专业素质。

致谢

在本次课程设计中,遇到许多问题,得到了老师的悉心指导,也得到同学们的热心帮助,最终完成了本次课程设计。

在此,向老师的辛勤劳动以及同学们的热心帮助表示衷心的感谢。

参考文献

【1】王忠民.微型计算机原理.第二版.西安:

电子科技大学出版社.

【2】王永山.微型计算机原理与应用.西安:

电子科技大学出版社.

【3】杨素行.微型计算机系统原理及应用.北京:

清华大学出版社.

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

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

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