MCS-51单片机原理及应用
设计
报告
软件系统测试报告下载sgs报告如何下载关于路面塌陷情况报告535n,sgs报告怎么下载竣工报告下载
设计题目:简易计算器
班级:土木023
姓名:董俊
学号:021294
1.目的:
培养学生综合利用汇编语言进行程序设计的能力,主要是培养学生利用DICE-598H+综合实验台的扩展部件进行应用程序设计的技能。
2.基本要求:
(1)能够完成整数常数的四则运算,不要求支持运算符的优先级。
(2)计算
规则
编码规则下载淘宝规则下载天猫规则下载麻将竞赛规则pdf麻将竞赛规则pdf
为十进制,输入数字情况及计算结果均应在上方的显示部件上进行显示,输入的运算符不要求显示。
(3)用ABCD键分别代
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
加减乘除四则运算符。
(4)E键进行初始化,清除内存中的数(相当于计算器的ON键),F键清除当前输入的数据(相当于普通计算器的CE键)。
(5)出错处理:操作数如果不符合
数学
数学高考答题卡模板高考数学答题卡模板三年级数学混合运算测试卷数学作业设计案例新人教版八年级上数学教学计划
上的定义,应该给出错误信息。例:0做除数等情况。
3.问题的提出:
运用MCS-51单片机的硬件和软件系统设计一个能进行简单四则运算的计算器。 4总体设计流程图
运算符号 数字
运算符号
判断键号
数字
运算符号
5.原程序代码:
org 0000h
op equ 20h 定义OP
op1 equ 21h 定义OP1
op2 equ 22h 定义OP2
start:
mov sp,#60h
mov dptr,#0ff20h
mov a,#03h 方式控制字06H送A
movx @dptr,a 方式控制字送8155命令口
mov 70h,#00
mov op, #00
mov op1, #00
mov op2, #00
key1:
acall ks1 调用判有无键闭合子程序
jnz lk1
n1:
acall dir 调用显示子程序,延时6MS
ajmp key1
lk1:
acall dir 延时12MS
acall dir
acall ks1
jnz lk2
acall dir
ajmp key1
lk2:
mov r2,#0feh 列扫描码送R2
mov r4,#0 R4是列计算单元
lk4:
mov dptr,#0ff21h 列扫描码送PA口
mov a,r2
movx @dptr,a
inc dptr
inc dptr
movx a,@dptr 读C口
jb acc.0,lone
mov a,#07h 0行为高电平,转判一行
ajmp lkp
lone:
jb acc.2,next 转判下一列
mov a,#01h
ajmp key1
lkp:
add a,r4 行首键号+列号=键号
mov 51h,a
cjne a,#0ah,MM 判断键号,不等则转移
mov op,a
ajmp key1
MM:
jc qq
mov op,a
ajmp key1
qq:
mov a,op
jnz m2
m1:
cpl p1.0
mov a,#10
mov b,op1
mul ab 乘法运算
add a,70h
mov op1,a
push acc 压栈
ajmp pp 跳转
m2:
mov a,#10
mov b,op2
mul ab
add a,70h
mov op2,a
pp:
cpl p1.0
mov 70h,a
push acc
lk3:
acall dir 判键释放否
acall ks1
jnz lk3
pop acc
ajmp key1
next:
inc r4 列扫描计数器加1
mov a,r2 判是否已扫描到最后一行
jnb acc.7,knd 扫到则转移
rl a 列扫描码左移一位
mov r2,a
ajmp lk4
knd:
ajmp key1
ks1:
cpl p1.0
mov dptr,#0ef21h
mov a,#00H 全0送PA口
movx @dptr,a
inc dptr
inc dptr
movx a,@dptr 读键入状态
cpl p1.0
anl a,#1fh 屏蔽高位
ret
dir:
cpl p1.0
mov r0,#70h
mov a,@r0
anl a,#0fh
mov 30h,a
mov a,@r0
swap a
anl a,#0fh
mov 31h,a
mov r0,#30h
mov r3,#01h
do1:
mov a,r3
mov dptr,#0ef21h
movx @dptr,a
inc dptr
mov a,@r0
add a,#0dh
movc a,@a+pc
dir1:
movx @dptr,a
acall dl
mov a,r3
rl a
jb acc.2,ld1
mov r3,a
inc r0
ajmp do1
ld1:
ret
dseh:
db 0f8h,99h,80h,92h,90h,82h,88h,83h 7,4,8,5,9,6,A,B
db 0f9h,0c0h,0a4h,08Eh,0b0h,086h,0c6h,0a1h 1,0,2,F,3,E,C,D
dl:
mov r7,#2
dl1:
mov r6,#0ffh
dl2:
djnz r6,dl2
djnz r7,dl1
ret
calc:
mov r7,op
cjne r7,#0ah,notadd 判断运算符是否为+
clr c
mov a,op1
add a,op2
sjmp fcalc
notadd:cjne r7,#0bh,notsub 判断运算符是否为-
clr c
mov a,op1
subb a,op2
sjmp fcalc
notsub:cjne r7,#0ch,notmul 判断运算符是否为*
clr c
mov a,op1
mov b,op2
mul ab
sjmp fcalc
notmul:clr c 除法运算
mov a,op1
mov b,op2
div ab
sjmp fcalc
fcalc:
mov 50h,a
anl a,#0fh
mov 72h,a
mov a,50h
swap a
anl a,#0fh
mov 73h,a
disp:
mov r3,#01h 位选端指向最左一位显示器
mov r0,#70h 显示缓冲区始址送R0
mov a,r3
mov dptr,#0ff21h C口地址送位选端
movx @dptr,a 位码送位选端
mov dptr,#0ff22h B口地址送DPTR
mov a,@r0 待显字符地址偏移量送A
add a,#03h 对A进行地址修正
movc a,@a+pc 查段码表
movx @dptr,A 段码送B口
acall dlay
db 0c0h,0f9h,0a4h,0b0h,99h,92h,82h,0f8h,80h,90h,88h,83h,0c6h,0a1h,86h,8eh
dlay:
mov r7,#02h
dlay1:
mov r6,#0ffh
dlay2:
djnz r6,dlay2
djnz r7,dlay1
ret
end
6.调试
方案
气瓶 现场处置方案 .pdf气瓶 现场处置方案 .doc见习基地管理方案.doc关于群访事件的化解方案建筑工地扬尘治理专项方案下载
:联机操作,先输入键号,然后判断,调用显示和计算子程序。
7.通过本次设计,有何收获及心得体
通过本课程的设计,觉得收益很多。首先感到提高了自己的学习能力,自己动手的设计能力。再次觉得这次的课程设计给了自己一个人生的启迪,无论事情多么困难,只要你努力了,尽心尽力了,你一定会有所收获,即使没能达到预期的目标,自己也不该无怨无悔,因为我努力了。最后通过这次的设计,我觉得有一句话说的很对,团结就是力量,团结就是知识,在现在日益竞争激烈的时代里,信息社会全面发展的时代里,一个事件的完成需要大家的共同的合作和努力,单靠一己的知识和力量有时是无法完成的。
虽然这次的设计花费了自己的很多的时间,也即使没有达到完美的程度,但是这个过程会留给我无穷无尽的回忆,因为她让我学会了很多我原来没有学到的知识和技能。
终合这次的课程设计,我觉得自己付出了相当的努力,也取得了一定的成果,所以自己给自己的评分80分。
开始
有健闭合否
调用显示程序,延时6ms
两次调12ms
有键闭合否
判断键号
存到OP中
存到OP1中
存到OP2中
调运运算子程序
结果存到OP1
压栈显示子程序
闭合键释放否
输入键
Y
N
N
Y
N