文档库 最新最全的文档下载
当前位置:文档库 › 简易计算器的设计微机原理计硬报告

简易计算器的设计微机原理计硬报告

简易计算器的设计微机原理计硬报告
简易计算器的设计微机原理计硬报告

计算机硬件技术实践报告

题目简易计算器的设计

专业自动化(电站方向)

班级

学号

电力学院自动化工程学院

实践报告容(目录)

一.设计题目

二.开发目的

三.小组成员分工及成果

四.设计方案以及论证

五.硬件原理图(包括芯片的选型介绍)

六.程序流程图(包括各个子系统和子过程的程序流程)

七.程序清单,要有适当的注释

八.程序运行结果分析与预测

九.结果评述或总结(对实验结果进行分析,对实验过程进行总

结,系统改进升级建议或者提出新的方案等。)

一.设计题目:

用8086设计一个能实现0~9整数加法运算的计算器,并用2位LED数码显示. 键盘包括0-9,+ ,-,*,/,=,ON/C;共16个按键.能实现简单的清零操作,减法运算,乘法运算.

二.开发目的:

通过课程设计,熟悉和掌握微机系统的软件、硬件设计的方法、设计步骤,得到微机开发应用方面的初步训练。培养集体讨论设计题目的总体设计方案、编程、软件硬件调试、编写设计报告等问题,做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计熟练运用程序对8255控制键盘和LED显示的控制,完成计算器加减法的应用,并熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。三.小组成员分工及成果:

本组的三个成员一起讨论研究简易计算器设计的主要方案。

粗略设计程序流程图以确定简易计算器设计的大概框架。

明确目的后各自查询资料了解设计原理、逐步清晰设计思路。

以下为大体分工:主要负责: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可编程并行接口芯片:

Intel 8086/8088 系列的可编程外设接口电路(Programmable Peripheral Interface)简称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 个输出端中译出一个低电平输出。两个低电平有效的赋能输入端和一个高电平

有效的赋能输入端减少了扩展所需要的外接门或倒相器。

六.程序流程图:

七.程序清单

DATA SEGMENT

NUM1 DB 03H DUP(0)

NUM DB 03H DUP(0)

DATA ENDS

STACK SEGMENT

DW 100 DUP(0)

STACK ENDS

CODE SEGMENT

ASSUME CS:CODE,DS:DATA,SS:STACK PORTA EQU 30H

PORTB EQU 32H

PORTC EQU 34H

PORT8255 EQU 36H

MAIN PROC FAR

START: MOV AX,DATA

MOV DS,AX

MOV DX,PORT8255

MOV AL,81H

OUT DX,AL

LOPL: XOR AH,AH

CALL KEY

CMP AH,00H

JZ LOPL

CMP AL,0FH

JZ CCCL

CMP AL,0AH

JZ LOPL

JNC LOPL

OUT 32H,AL

LOPL2:

LEA SI,NUM

MOV [SI],AL

PUSH AX

LOPL1: XOR AH,AH

CALL KEY

CMP AH,00H

JZ LOPL1

CMP AL,0FH

JZ CCCL

CMP AL,0AH

JZ XX1

CMP AL,0BH

JZ XX2

CMP AL,0CH

JZ XX3D

CMP AL,0DH

JZ XX4D

JMP LOPL1

CCCL: MOV AL,00H

OUT 32H,AL

JMP LOPL

XX3D: CALL XX3

XX4D: CALL XX4

MAIN ENDP

XX1 PROC

NOP ;加LOPL3: XOR AH,AH

CALL KEY

CMP AH,00H

JZ LOPL3

CMP AL,0FH

JZ CCCL

CMP AL,0AH

JZ LOPL3

JNC LOPL3

OUT 32H,AL

PUSH AX

LEA SI,NUM

MOV [SI+1],AL

LOPL4: XOR AH,AH

CALL KEY

CMP AH,00H

JZ LOPL4

CMP AL,0FH

JZ CCCL

CMP AL,0EH

JZ XXX1

JMP LOPL4

XXX1: LEA SI,NUM

MOV AL,[SI]

AND AL,0FH

MOV DL,[SI+1]

AND DL,0FH

ADD AL,DL

DAA

OUT 32H,AL

JMP LOPL

XX1 ENDP

相关文档