微机原理课程设计.docx

上传人:b****1 文档编号:1626416 上传时间:2022-10-23 格式:DOCX 页数:16 大小:269.95KB
下载 相关 举报
微机原理课程设计.docx_第1页
第1页 / 共16页
微机原理课程设计.docx_第2页
第2页 / 共16页
微机原理课程设计.docx_第3页
第3页 / 共16页
微机原理课程设计.docx_第4页
第4页 / 共16页
微机原理课程设计.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

微机原理课程设计.docx

《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(16页珍藏版)》请在冰豆网上搜索。

微机原理课程设计.docx

微机原理课程设计

 

1、设计内容……………………………………………………………1

1.1设计目的…………………………………………………………1

1.2设计要求…………………………………………………………1

1.3设计思路…………………………………………………………1

二、硬件原理图…………………………………………………………6

三、源程序………………………………………………………………8

四、程序调试……………………………………………………………12

五、课程设计总结及体会………………………………………………16

六、参考资料……………………………………………………………16

附录一:

8051A芯片引脚图……………………………………………17

附录二:

8088最小系统图………………………………………………18

一、设计内容:

用8251A实现异步串行通信。

1.1设计目的:

(1)了解串行通信的一般原理和8251A芯片的工作原理。

(2)了解实现计算机间串行通信的连接方法,数据格式的协议,数据交换的协议。

1.2设计要求:

编程实现异步串行通信,掌握利用8251A进行异步串行通信时的编程方法。

1.3设计思路:

1.相关知识:

(1)8251A内部结构

8251A内部结构如图一所示。

内部结构主要由七大部分组成。

 

图一8251内部结构框图

 

(2)CPU对8251A内部的读写操作:

在异步方式下,接收器监视输入到引脚的串行数据。

在无字符传送时为高电平,当出现低电平则启动内部计数器,当计数到一个数据宽度的一半时,重新采样线,如仍为低电平则确认为起始位,以后每隔16个脉冲采样一次,并送至移位寄存器,经移位去掉停止位,又经奇偶校验使串行数据变为并行数据,送至接收数据缓冲器,同时发出信号,告诉CPU字符已经可用。

在异步方式下发送时,发送器会自动加上起始位,根据程序规定的检验要求加上奇偶校验位和停止位,由引脚按规定的波特率发送。

CPU与8251A的连接图如下:

(3)8251A的接口信号

8251A用来作为CPU串行外设或调制解调器之间的接口,故其接口信号可分为两组:

一组为与CPU的接口信号;另一组为与外设(调制解调器)接口信号。

与CPU的接口信号主要有以下几个:

D0-D7:

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

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

片选信号,它由CPU的地址信号通过译码后得到,一般接地址译码器输出。

C/:

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

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

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

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

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

发送准备好。

只有当允许发送且发送缓冲器为空时此信号有效。

接收器准备好信号。

发送器空信号。

同步检测断点信号。

与外设的接口信号主要有一下几个:

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

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

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

发送器数据输出信号。

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

接收器数据输入信号。

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

在异步方式下,的频率可以为字符传输波特率的1倍、16倍、64倍。

接电源

接地。

2.编程提示:

(1).方式选择指令格式

.方式选择指令规定8251A工作方式,在系统初始化后输入的命令(C/为高,=1)

默认为方式选择指令,该命令的格式如图二所示

 

图二8251A方式选择命令的字格式

 

(2)命令指令格式

命令指令格式的作用是直接使8251处于工作状态,已准备接收或发送数据。

其格式如图三所示

图三8251A命令字格式

 

(3)8251A状态寄存格式

CPU读8251A状态字时,端为“1”。

读取状态字,CPU用以控制与8251A之间的数据交换。

状态字格式图如图四所其中的位在数据缓冲器变空时置位,而引脚只有在条件数据缓冲器空**成立时,即结果为1时,才置位。

图四8251A状态字格式

(4)8251串行通信的初始化

8251异步串行通信的初始化编程步骤为:

1)向控制口写入三个0.

2)向控制口写入复位命令字40H,使器件返回到“空闲”状态。

3)延时。

延时时间应大于8251A时钟周期的28倍,以便等待状态转换完毕。

4)向控制口写入方式选择命令字。

5)向控制口写入工作命令字。

二.硬件原理图:

1.8251A芯片引脚图(附录一)

2.8088最小系统原理图(附录二)

 

3.程序流程图

本设计程序的参考流程图如图五所示

 

图五串行通信程序参考流程图

 

三.源程序:

;FILENAME:

PC8251.asm

;内容:

8251串行通信

DATASEGMENT

TEXTDB‘THEQUICKBROWNFOXJUMPSOVERLAZYDOG’,0DH,0AH

LENSEQU$-TXET

ERRORDB0DH,0AH,‘8251BAD!

$’

OLD0ADD?

C_8251EQU211H;8251控制口地址

D_8251EQU210H;8251数据口地址

C_8251EQU20BH;8251控制口地址

D_8251EQU20AH;8251_2号计数器口地址

DATAENDS

CODESEGMENT

FLAGDB?

ASSUEMCS:

CODE,DS:

DATA

BEG:

MOVAX,DATA

MOVDS,AX

CLI

CALLI8253;8253初始化

CALLI8251;8251初始化

CALLI8259;开放用户中断

CALLRW0A;置换0AH型中断向量

STI

LAST1;MOVBX,OFFSETTEXT

MOVCX,LENS;电文长度→CX

TSCAN:

MOVAH,1

INT16H;有键入?

JNZRETURN;有,转恢复0AH型中断向量

MOVDX,C_8251

INAL,DX;8251状态字→AL

TESTAL,01H;TXRDY位=1?

JZTSCAN;;否,转键盘输入检测

MOVDX,D_8251

MOVAX,[BX];取字符→A

OUTDX,AL;发送数据

MOVCS:

FIAG,0;接收标志置0

MOVSI,100;设置外循环计数次数

LLL:

MOVDI,0;设置内循环计数次数

LAST2:

CMPCS:

FLAG,-1;收到?

JENEXT;是,转电文计数

DECDI;内循环计数

JNZLAST2

DECSI;外循环计数

JNZLLL

JMPERR;超时,转出错处理

NEXT:

INCBX

LOOPTSCAN;电文计数

JMPLAST1

ERR:

MOVAH,9

MOVDX,OFFSETERROR

INT21H;显示错误信息

RETURN:

CALLRESET;恢复0AH型中断向量

MOVAH,4CH

INT21H

RECEIVEPROC

PUSHAX;保护现场

PUSHDX;保护现场

MOVDX,D_8251;从数据口

INAL,DX;读取数据→AL

MOVAH,0EH

INT10H;AL→屏幕显示

MOVAL,20H;中断结束命令

OUT20H,AL;送主8259

MOVCS;FLAG,-1;设置接收标志

POPDX;恢复现场

POPAX;恢复现场

IRET;中断返回

RECEIVEENDP

I8253PROC;2号计数器初始化

MOVDX,C_8253

MOVAL,96H;控制字

OUTDX,AL;送控制寄存器

MOVDX,D_8253

MOVAL,104;计数初始值104

OUTDX,AL;波特率1200

RET

I8253ENDP

I8251PROC;8251初始化

MOVCX,3

MOVAL,0

MOVDX,C_8251

AGA:

OUTDX,AL;向控制口写入3个0

LOOPAGA

MOVAL,40H

OUTDX,AL;写入复位命令字

CALLDELAY;延时

MOVDX,C_8251

MOVAL,01001110B;写入方式选择命令字

OUTDX,AL;选择波特率系数为16

MOVAL,00010101B

OUTDX,AL;写入工作命令字

RET

I8251ENDP

DELAYPROC;延时10us

MOVAH,86H

MOVCX,0

MOVDX,10

INT15H

RET

DELAYENDP

I8259PROC

INAL,21H

ANDAL,11111011B

OUT21H,AL;开放从8259中断

INAL,0A1H

ANDAL,11111101B

OUT0A1H,AL;开放用户中断

RET

I8259ENDP

RW0APROC;置换0AH型中断向量

MOVAX,350AH

INT21H

MOVWORDPTROLD0ABX

MOVWORDPTROLD0A+2,ES

PUSHDS

MOVAX,CODE

MOVDX,AX

MOVDX,OFFSETRECEIVE

MOVAX,250AH

INT21H

POPDS

RET

RW0AENDP

RESETPROC;恢复0AH型中断向量

MOVDX,WORDPTROLD0A

MOVDS,WORDPTROLD0A+2

MOVAX,250AH

INT21H

RET

RESETENDP

CODEENDS

ENDBEG

四.程序调试

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

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

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

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

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

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

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

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

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

 

主要调试截图:

1.程序调试界面

 

2.运行过程

 

 

3.运行结果

 

 

4.保存文件

 

五.课程设计总结及体会:

课程设计是培养我们综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,微型计算机已经成为当今计算机应用中空前活跃的领域,在生活中可以说得是无处不在。

因此作为二十一世纪的大学来说掌握微型计算机的开发技术是十分重要的。

通过这次课程设计的学习,我们了解了串口通信的原理,以及熟悉了8251A芯片的功能特性和编程方法。

虽然部分程序是参考别人的,但是经过仔细的研究,已经将他人的东西为己用了,同时再一次体会到学习计算机程序语言方

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

当前位置:首页 > 考试认证 > 交规考试

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

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