8086简易计算器的设计-微机原理-计硬报告Word文件下载.doc
《8086简易计算器的设计-微机原理-计硬报告Word文件下载.doc》由会员分享,可在线阅读,更多相关《8086简易计算器的设计-微机原理-计硬报告Word文件下载.doc(15页珍藏版)》请在冰点文库上搜索。
![8086简易计算器的设计-微机原理-计硬报告Word文件下载.doc](https://file1.bingdoc.com/fileroot1/2023-4/28/eedb6881-863a-4347-aaf6-041281a0f1a5/eedb6881-863a-4347-aaf6-041281a0f1a51.gif)
1、设计主要程序,编写;
2、查找资料验证修改;
1、选择需要用的各个芯片;
2、设计硬件原理图;
1、各个芯片功能的资料查找;
2、设计程序流程图
四.设计方案以及论证:
利用程序不断扫描所设的按钮键盘是不是有输入,如果没有就一直扫描,如果有就调用子程序进行判断,是数值则进行存储并同时进行显示,是运算符号等就调用相应的子程序进行操作,操作后则继续利用程序不断扫描键盘是不是有输入,从而实现部分十进制数的加、减、乘、除的运算。
运算完成后根据程序将运算的结果储存到锁存器中并显示到LED显示器上。
主要器件选择是采用8086CPU做主控制器,8255作为并行接口电路实现按键扫描以及数码管的显示。
通过8255A的C口和A口实现键盘的接入,通过键盘的不断扫描,如果有键按下,通过查表法分别将输入的数据读到AL中并保存在第一个和第二个数里,将8255A的B端口接上共阴极LED灯,将输入的数据通过查表法,将四段码送共阴极LED灯显示,当按下‘=’时,通过判断字符,8086来实现不同的操作,并将结果在LED灯上显示,当按下“C”时,将数据先清零,同时LED灯上显示为“00”。
五.硬件原理图(包括芯片的选型介绍):
芯片选型及介绍:
(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)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位输入锁存器,
(3)74HC373:
其中D0-D7为数据输入端,Q0-Q7为输出端。
当三态允许控制端OE为低电平时,Q0-Q7为正常逻辑状态,可用来驱动负载或总线,当OE为高电平时,Q0-Q7成高阻态,不驱动总线。
当锁存允许端LE为高电平时,Q随数据D而变,当LE为低电平D被锁存在已建立的数据电平。
(4)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个输出端中译出一个低电平输出。
两个低电平有效的赋能输入端和一个高电平有效的赋能输入端减少了扩展所需要的外接门或倒相器。
六.程序流程图:
七.程序清单
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:
XORAH,AH
JZLOPL1
JZXX1
CMPAL,0BH
JZXX2
CMPAL,0CH
JZXX3D
CMPAL,0DH
JZXX4D
JMPLOPL1
CCCL:
MOVAL,00H
JMPLOPL
XX3D:
CALLXX3
XX4D:
CALLXX4
MAINENDP
XX1PROC
NOP;
加
LOPL3:
JZLOPL3
JZCCCL
JNCLOPL3
MOV[SI+1],AL
LOPL4:
JZLOPL4
CMPAL,0EH
JZXXX1
JMPLOPL4
XXX1:
LEASI,NUM
MOVAL,[SI]
ANDAL,0FH
MOVDL,[SI+1]
ANDDL,0FH
ADDAL,DL
DAA
XX1ENDP
XX2PROC
NOP;
减
LOPL5:
JZLOPL5
JNCLOPL5
LOPL6:
XORAH,AH
JZLOPL6
JZCCCL7
JZXXX2
JMPLOPL6
XXX2:
SUBAL,DL
ADDAL,00H
CCCL7:
XX2ENDP
XX3PROC
LOPL7:
CALLKEY;
乘
JZLOPL7
JZCCCL2
JNCLOPL7
LOPL8:
JZLOPL8
JZCCCL3
JZXXX3
JMPLOPL8
XXX3:
MULDL
AAM
MOVCL,4
SALAH,CL
ORAL,AH
CCCL2:
CCCL3:
XX3ENDP
XX4PROC;
除
LOPL9:
JZLOPL9
JZCCCL5
JNCLOPL9
LOPL10:
XORAH,AH
JZLOPL10
JZCCCL4
JZXXX4
JMPLOPL10
XXX4:
MOVBL,[SI+1]
ANDBL,0FH
ANDAX,000FH
DIVBL
CCCL4:
CCCL5:
XX4ENDP
KEYPROC
NOP
LEASI,NUM1
MOVAL,0EH
OUT30H,AL
INAL,34H
CMPAL,07H
JZLL7
CMPAL,0BH
JZLL8
CMPAL,0DH
JZLL9
CMPAL,0EH
JZLDIV
SS1:
MOVAL,0DH
JZLL4
JZLL5
JZLL6
CMPAL,0EH
JZLMUL
SS2:
MOVAL,0BH
JZLL1
JZLL2
JZLL3
JZLSUB
SS3:
MOVAL,07H
JZSCLC
JZLL0
JZLEQU
JZLADD
JMPKCLC
LDIV:
MOVAL,0DH
JMPLCLC
LL0:
MOVAL,00H
LL1:
MOVAL,01H
LL2:
MOVAL,02H
LL3:
MOVAL,03H
LL4:
MOVAL,04H
LL5:
MOVAL,05H
LL6:
MOVAL,06H
LL7:
MOVAL,07H
LL8:
MOVAL,08H
LL9:
MOVAL,09H
LADD:
MOVAL,0AH
LSUB:
MOVAL,0BH
LMUL:
MOVAL,0CH
LEQU:
MOVAL,0EH
SCLC:
MOVAL,0FH
LCLC:
MOV[SI],AL
MOVAH,01H
KCLC:
RET
KEYENDP
CODEENDS
ENDSTART
八.程序运行结果分析与预测:
连接完线路图后把编好的程序关联到8086CPU中进行运行调试,肯定可以实现加减乘除运算,例如3+8=11,通过按键分别输入“3”,“+”,“8”,“=”后,LED灯上将显示出“11”.能实现清零操作,当按下“ON/C”时,LED上显示“00”。
如图
3+8=11
当输入“3”,“*”,“8”,“=”后,LED灯上将显示出“24”.如图
3*8=24
十.结果评述:
本期刚学过微机原理,学得不是很深入,仅限于课本知识的掌握,而此次课程设计将会是一个很好的机会,来考察自己对课本知识的掌握以及应用情况。
本次课程设计是二到三人人一组,并且自由选择设计课题,我们小组选择了简易计算器的课题,在做的过程中也遇到很多困难。
通过本次课程设计实验我们初步接触了较复杂程序的设计。
在实验中用程序对8255进行控制键盘和LED显示的控制,完成计算器加减法的应用。
在程序编写中,明白和掌握程序的原理和实现方式。
学习和掌握计算机中常用接口电路的应用和设计技术,充分认识理论知识对应用技术的指导性作用,进一步加强理论知识与应用相结