微机原理课程设计.docx
《微机原理课程设计.docx》由会员分享,可在线阅读,更多相关《微机原理课程设计.docx(16页珍藏版)》请在冰豆网上搜索。
微机原理课程设计
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芯片的功能特性和编程方法。
虽然部分程序是参考别人的,但是经过仔细的研究,已经将他人的东西为己用了,同时再一次体会到学习计算机程序语言方