微机原理实验简易计算器

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

【实验题目】

简易计算器设计

【实验目的】

综合测试学生微机接口技术及应用能力,包括系统构思设计、电路设计搭建、软件调试等;

结合应用实际,培养学生运用微机技术服务应用、服务实际的能力。

【基本要求】

1)利用实验箱上的4x4键盘及6位数码管,实现两个16位宽的非负整数(0~65535)进行+、-、×运算,计算结果限制在范围-65535~65535,超过范围在数码管最低位显示E;

2)16个按键的分配可以自行指定;

【扩展要求】

1)按基本要求保持输入的范围不变(16位宽),扩展计算结果的范围到用足6位数码管,当计算结果超过-65535~999999时,显示E;

2)增加÷的功能,有小数显示;

【实验程序】

;该程序实现了基本要求及扩展要求的2)

DSEG SEGMENT

BUFF DB 6 DUP(?)

LED_7 DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,77H,7C H,39H,5EH,79H,71H,00H,40H

POSITION DB 0DFH,0EFH,0F7H,0FBH,0FDH,0FEH UNIT10 DW 10000,1000,100,10,1

NEWNUM DB 0

COUNT DB 0

FLAG DB 0 ;是否有键按下的标志

NEGTI DB 0 ;是否为负数的标志

NUM DW 0

NUM1 DW 0

NUM2 DW 0

TAG DB 0 ;运算种类标志

POINT DB 0 ;除法结果添加小数点标志

RESULT DW 0

DSEG ENDS

CSEG SEGMENT

ASSUME DS:DSEG,CS:CSEG

START:

MOV AX,DSEG

MOV DS,AX

MOV DX,300CH ;8255初始化

MOV AL,81H

OUT DX,AL

LEA SI,BUFF MOV CX,6

NEXT:

MOV BYTE PTR[SI],16

INC SI

LOOP NEXT

CALL SHOW ;将显示缓冲区中内容在LED上一次显示出来

MOV COUNT,0 ;记按下了几位数

NEXT2:

CALL SHOW

CALL SCAN ;判断是否有按键按下

CMP FLAG,1

JZ OK

JMP NEXT2

OK:

MOV FLAG,0

MOV POINT,0

MOV DX,3000H ;判断是哪一个键被按下

MOV AL,0FFH

OUT DX,AL

MOV CH,-1 ;CH用于保存当前被扫描的列号MOV CL,07FH

XL:

ROL CL,1

INC CH

MOV DX,3000H

MOV AL,CL

.

.

.

.

.

.

.

相关文档
最新文档