微机原理课程设计_简易计算器的设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录
一前言 (1)
二总体设计 (2)
三硬件设计 (2)
3.1微处理器8086芯片 (2)
3.2可编程并行接口芯片8255A (3)
3.44
3.5
4.1
4.2
五仿真
一前言
1.1
软件硬件调试、编写设计报告等问题,真正做到理论联系实际,提高动手能力和分析问题、解决问题的能力,实现由学习知识到应用知识的初步过渡。通过本次课程设计使学生熟练掌握微机系统与接口扩展电路的设计方法,熟练应用8086汇编语言编写应用程序和实际设计中的硬软件调试方法和步骤,熟悉微机系统的硬软件开发工具的使用方法。
通过课程设计实践,不仅要培养学生事实求是和严肃认真的工作态度,培养学生的实际动手能力,检验学生对本门课学习的情况,更要培养学生在实际的工程设计中查阅资料,撰写设计报告表
达设计思想和结果的能力。
1.2课程设计指导及要求
在课程设计时,2~3名同学组成1个设计小组,分别完成项目的功能设计、电路编辑及调试、编码及调试和课程设计报告编写工作。同批次同学中选择同一题的不超过3组。在教师指导下,可以相互讨论。每设计小组提交1份设计报告,设计报告由设计小组同学独立完成,不得互相抄袭。教师的主导作用主要在于指明设计思路,启发学生独立设计的思路,解答疑难问题和按设计进度进行阶段审查。学生必须发挥自身学习的主动性和能动性,主动思考问题、分析问题和解决问题,而
同时使“输入回答”线有效,作为对外设的响应。外设在收到这个回答信号后,就撤消数据和“输入准备好”信号。数据到达接口中后,接口会在“状态寄存器”中设置输入准备好标志,或者向CPU 发一个中断请求。CPU 可用查询方式或中断方式从接口中读取数据。接口中的数据被读取后,接口会自动清除状态寄存器中的标志,且
撤消对CPU 的中断请求。
在输出过程中,每当输出寄存器可以接收数据,接口就会将状态寄存器中“输出准备好”状态置1或向CPU发一个中断请求,CPU可用查询或中断方式向接口输出数据。当CPU输出的数据到达接口后,接口会清除“输出准备好”状态,把数据送往外设,并向外设发一个“数据输出准备好”信号。外设受到驱动后,便接收数据,并向接口电路发一个“输出回答”信号,接口收到该回答信号后,又将状态寄存器中“输出准备好”置位,以便CPU输出下一个数据。
定义工作方式控制字:
3.3LED数码管
LED
8位I/O
从这7,其显示原理与COM
3.44×
个I/O
是有原因的,
4×4键
所以只能是PC口接键盘。
3.5硬件原理图
四软件设计
4.1程序流程图
(1)键盘扫描程序流程图:
(2
4.2源代码
DATASEGMENT
X DB ? ;存放数据的每一位
X1 DW ? ;存放第一个数据值
X2 DW ? ;存放第二个数据值
Y DW ? ;存放运算结果
S DB ?;存放运算符号值
E DB ?;按下等号键标记
CC DB ?;存放运算数据位数
H DB 0;存放按键行号
L DB 0;存放按键列号
DISCODE DB 3FH,06H,5BH,4FH,
66H,6DH,7DH,07H,
7FH,6FH,77H,7CH,
;
MOV L,0
MOV BL,01H
MOV BH,0FEH;扫描法读键值:从第一行开始测试,即PC0输出低电平NEXT: MOV AL,BH
OUT 44H,AL
NEXTH: IN AL,40H ;读列值,判断是第几列有键按下
TEST AL,BL;从第一列开始判断
JZ WAIT0
ROL BL,1
CMP BL,10H;当前行状态下没有列有键按下,则转为对下一行的测试
JZ NEXTL
INC H ;每判断一列,列号加1
JMP NEXTH ;再对下一列进行判断
NEXTL: MOV H,0
MOV BL,01H
ROL BH,1;对下一行测试,让下一个PC口输出低电平
CMP BH,0EFH
JZ EXIT
INC L
JMP NEXT
WAIT0: IN AL,40H;若有键按下,则等该按键松开后再计算键值
;
NUM_CALL: CALL NUMBER ;调数字键处理子程序
JMP EXIT1
CONT_CALL: MOV S,DL ;存放运算键的键值
MOV E,0
CALL COUNT 调运算键处理子程序,计算第一个加数
JMP EXIT1
OUTP_CALL: CALL OUTP ;调等号键处理子程序
JMP EXIT1
CLR_CALL: CALL CLEAR ;调清除键处理子程序
EXIT1: RET
KEYVALUEENDP
;以下为清除键处理子程序,按下清除键后,X变量全部清0
CLEARPROC
MOV X[3],0
MOV X[2],0
MOV X[1],0
MOV X[0],0
CALL BITP
RET
CLEARENDP
;以下为等号键处理子程序,该子程序负责将第二个运算数据的数值计算出来存入X2变量;
;
DIV BX
MOV X[0],AL
MOV AX,DX
MOV BL,100
DIV BL
MOV X[1],AL
MOV AL,AH
MOV AH,0
MOV BL,10
DIV BL