微机设计报告Word下载.docx
- 文档编号:22245342
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:20
- 大小:387.10KB
微机设计报告Word下载.docx
《微机设计报告Word下载.docx》由会员分享,可在线阅读,更多相关《微机设计报告Word下载.docx(20页珍藏版)》请在冰豆网上搜索。
1.将整个程序划分为键盘扫描部分、显示部分、运算部分。
首先利用程序不断扫描键盘是不是有输入,如果没有就一直扫描,如果有就停止扫描,完成输入,利用汇编的程序核对输入键的数值,通过调用子程序实现运算。
运算完成后将运算的结果存储并显示到LED显示器上。
2.流程大致如下;
开始,然后是系统的初始化,进行键盘扫描,对扫描的键值进行判断(分为数字键和功能键),若为数字键,则执行数字键处理程序,即显示数字并将数值存储;
若为功能键,则先判断是否为清屏,如果为清屏,则执行清屏子程序,如果是加减运算键则调用相应程序运算,如果是等号键,则先判断上个符号位,调用相应的运算子程序进行运算,如此就可以得到需要的结果。
3.用8086CPU做为主控制器,控制信号的读写、可屏蔽中断请求、中断响应、系统复位等等。
8255A作为并行接口电路控制键盘的扫描及数码管的显示,还使用了74HC373、74HC138译码器。
三、硬件电路设计
1.键盘输入以及LED数码管通过8255A接口与系统总线连接,键盘的16个按键组成4*4的矩阵,其中4根矩阵线作为8255A的输出线与PC3-PC0连接,4根矩阵线作为8255A的输入线与PC7-PC4连接。
键盘采用逐次扫描原理,16个按键中0-9为数字键,+、-、*、/、=作为加、减、乘、除、等号功能键,C为清零键。
LED灯通过与8255A的PA口和PB口连接,用于显示输入的数和结果的显示。
2.并行输入、输出端口A、B、C。
8255A内部包括三个8位的输入输出端口,分别是端口A、端口B、端口C,相应信号线是PA7-PA0、PB7-PB0、PC7-PC0。
端口都是8位,都可以作为输入或输出。
通常将端口A和端口B定义为输入、输出的数据端口。
二端口C则既可以作为数据端口,又可以作为端口A和端口B控制部件
3.数据总线缓冲器。
三态双向8位缓冲器,是8255A与8086CPU之间的数据接口。
与I\O操作有关的数据、控制字和状态信息都是通过该缓冲器完成的。
4.读、写控制部件。
8255A完成读、写控制功能的部件。
能接受CPU的控制命令,并根据控制命令向各个功能部件发出操作指令。
CS片选信号:
由CPU输入,有效时表示该8255A被选中。
RD\WR读写控制信号:
由CPU输入。
RD有效表示CPU读8255A,WR有效表示CPU写8255A。
RESET复位信号:
RESET信号有效,清除8255A中所有控制字寄存器内容,并将各个端口制成输入方式。
定义工作方式控制字:
工作方式0:
8255A中各端口的基本输入、输出方式。
图3.1(8255A与键盘显示器的连接)
2.芯片的介绍
(1)8086CPU
8086通过数据总线、地址总线、控制总线完成对8253和8255的读写工作,与接口部件实现数据传送,让接口部件实现预计的功能.,8086CPU的40条引脚信号可按功能分可分为四类,它们是:
地址总线,数据总线,控制总线,其它(时钟与电源)。
最小模式下一些引脚功能(MN/MX接+5V):
AD15~AD0,地址/数据总线
A19/S6~A16/S3,地址/状态总线
RD,读信号
WR,写信号
M/IO,存储器/输入输出控制信号
ALE,地址锁存允许信号
READY(Ready),准备就绪信号
INTR,可屏蔽中断请求信号
INTA,中断响应信号
NMI,非屏蔽中断请求信号
RESET,系统复位信号
DEN,数据允许信号
DT/R,数据发送/接收控制信号
HOLD,总线保持请求信号输入
HLDA,总线保持响应信号
TEST,测试信号
CLK,时钟输入信号
VCC(+5V),GND
(2)74HC373
其中D0-D7为数据输入端,Q0-Q7为输出端。
当三态允许控制端OE为低电平时,Q0-Q7为正常逻辑状态,可用来驱动负载或总线,当OE为高电平时,Q0-Q7成高阻态,不驱动总线。
当锁存允许端LE为高电平时,Q随数据D而变,当LE为低电平D被锁存在已建立的数据电平。
(3)74HC138
74HC138是一款高速CMOS器件,74HC138引脚兼容低功耗肖特基TTL(LSTTL)系列。
74HC138译码器可接受3位二进制加权地址输入(A0,A1和A2),并当使能时,提供8个互斥的低有效输出(Y0至Y7)。
74HC138特有3个使能输入端:
两个低有效(E1和E2)和一个高有效(E3)。
除非E1和E2置低且E3置高,否则74HC138将保持所有输出为高,74HC138为反相输出,它按照三位二进制输入码和赋能输入条件,从8个输出端中译出一个低电平输出。
两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器。
(4)8255A
Intel8086/8088系列的可编程外设接口电路(ProgrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。
它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。
8255A的通用性强,使用灵活,通过CPU可直接与外设相连接。
8255A可为8086微处理器与外部设备之间提供并行输入/输出的通道。
通过编程可以设置芯片的工作方式,并行接口是在多根数据线上,以数据字节/字与I/O设备交换信息。
8255A由数据总线缓冲器、读/写控制逻辑电路、A组和B组控制电路以及数据端口A、B和C组成。
数据总线缓冲器是8255A与系统数据总线的接口,CPU输入输出的数据、CPU输出的控制字和外设的状态信息都是通过这个缓冲器传送的。
读/写控制逻辑电路把CPU的控制命令或输出数据送至相应的端口,把外设的状态信息或输入数据通过相应的端口送至CPU。
数据端口PA和PB都包含一个8位输出锁存器/缓冲器和一个8位输入锁存器.。
四、软件编程设计
1.流程图
图4.1(流程图)
2.程序设计
DATASEGMENT
NUM1DB03HDUP(0)
NUMDB03HDUP(0)
DATAENDS
STACKSEGMENT
DW100DUP(0)
STACKENDS
CODESEGMENT
ASSUMECS:
CODE,DS:
DATA,SS:
STACK
PORTAEQU30H
PORTBEQU32H
PORTCEQU34H
PORT8255EQU36H
MAINPROCFAR
START:
MOVAX,DATA
MOVDS,AX
MOVDX,PORT8255
MOVAL,81H
OUTDX,AL
LOPL:
XORAH,AH
CALLKEY
CMPAH,00H
JZLOPL
CMPAL,0FH
JZCCCL
CMPAL,0AH
JNCLOPL
OUT32H,AL
LOPL2:
LEASI,NUM
MOV[SI],AL
PUSHAX
LOPL1:
JZLOPL1
JZXX1
CMPAL,0BH
JZXX2
CMPAL,0CH
JZXX3D
CMPAL,0DH
JZXX4D
JMPLOPL1
CCCL:
MOVAL,00H
JMPLOPL
XX3D:
CALLXX3
XX4D:
CALLXX4
MAINENDP
XX1PROCNOP;
加
LOPL3:
JZLOPL3
JNCLOPL3
MOV[SI+1],AL
LOPL4:
JZLOPL4
CMPAL,0EH
JZXXX1
JMPLOPL4
XXX1:
MOVAL,[SI]
ANDAL,0FH
MOVDL,[SI+1]
ANDDL,0FH;
ADDAL,DL
DAA;
转换成BCD码
XX1ENDP
XX2PROCNOP
LOPL5:
JZLOPL5
JZLOPL5
JNCLOPL5
LOPL6:
JZLOPL6
JZCCCL7
JZXXX2
JMPLOPL6
XXX2:
ANDDL,0FH
SUBAL,DL
ADDAL,00H
DAA
CCCL7:
XX2ENDP
XX3PROC
LOPL7:
JZLOPL7
JZCCCL2
JNCLOPL7
LOPL8:
JZLOPL8
JZCCCL3
JZXXX3
JMPLOPL8
XXX3:
MULDL
AAM;
商放AH,余数放AL
MOVCL,4
SALAH,CL
ORAL,AH
JMPLOPL
CCCL2:
CCCL3:
XX3ENDP
XX4PROC;
除
LOPL9:
JZLOPL9
JZCCCL5
JNCLOPL9
LOPL10:
JZLOPL10
JZCCCL4
JZXXX4
JMPLOPL10
XXX4:
MOVBL,[SI+1]
ANDBL,0FH
ANDAX,000FH
DIVBL
CCCL4:
CCCL5:
XX4ENDP
KEYPROC
NOP
LEASI,NUM1
MOVAL,0EH
OUT30H,AL;
输出A口数据AL
INAL,34H
CMPAL,07H
JZLL7
JZLL8
JZLL9
JZLDIV
SS1:
MOVAL,0DH
OUT30H,AL
JZLL4
JZLL5
JZLL6
JZLMUL
SS2:
MOVAL,0BH
JZLL1
JZLL2
JZLL3
JZLSUB
SS3:
MOVAL,07H
JZSCLC
JZLL0
JZLEQU
JZLADD
JMPKCLC
LDIV:
JMPLCLC
LL0:
LL1:
MOVAL,01H
LL2:
MOVAL,02H
LL3:
MOVAL,03H
LL4:
MOVAL,04H
LL5:
MOVAL,05H
LL6:
MOVAL,06H
LL7:
LL8:
MOVAL,08H
LL9:
MOVAL,09H
LADD:
MOVAL,0AH
LSUB:
LMUL:
MOVAL,0CH
LEQU:
SCLC:
MOVAL,0FH
LCLC:
MOVAH,01H
KCLC:
RET;
强制复位
KEYENDP
CODEENDS
ENDSTART
五、仿真与调试
1.进行数码管显示的仿真。
编写一段直接赋值到数码管显示的程序,进行数码管显示的仿真。
进行键盘扫描的仿真。
编写代码,将扫描到的键值送到数码管显示。
在数码管显示和键盘扫描程序都正确的基础上,逐步增加代码,增加功能,逐步实现按键值的储存和显示、清零、加法、减法、乘法、除法等功能的仿真。
2.连接完线路图后把编好的程序关联到8086CPU中进行运行调试,通过按键分别入“3”“+”“8”,“=”后,LED灯上显示出“11”。
图5.1(LED显示11)
3.当输入“3”“*”“8”,“=”后,LED灯上将显示出“24”。
图5.2(LED显示24)
4.当输入“2”“*”“5”“=”后,LED灯上显示。
图5.3(LED显示10)
六、结论与心得
本次课程设计,不仅使我加深了对接口程序设计的认识,对接口各部件的工作原理也有了进一步的了解,也增强了分析故障的能力,更重要的是培养了我们面对问题、解决问题的能力。
从理论知识上我对8086和8255的作用、功能以及初始化更加熟悉,并且有了客观上的理解。
对键盘的使用和数码管显示问题也完全弄懂了。
设计从汇编语言程序的编写已经应用出发,设计了一个简易计算器系统,本设计能够完成加减乘除四则运算,并且能够显示除法所得余数,同时具有清零和复位功能,达到了连续运算的效果,可以解决日常生活中一些简单的运算,通过两种方案的比较最终确定了可行性较高的方案。
最后感谢老师的辛苦指导,使我的设计能偶成功实现,使我完成了这次课程设计,在课程设计中感到个人的力量是不如群体力量的,一周的课程设计也教会我们在团队中药善于与人相处,与人共事。
争取在日后的学习生活中,认真研究,勇于创新。
七、参考文献
【1】周荷琴著,《微型计算机原理与接口技术》中国科学技术大学出版社,2013年。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 设计 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)