用单片机设计简易计算器
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用单片机设计简易计算器相关的知识,希望对你有一定的参考价值。
1.设计内容
利用单片机的I/O接口设计4×4键盘,16个键依次对应0~9、“+”、“-”、“×”、“÷”、“=”和清除键。通过检测不同数字键、功能键的按下,可以进行小于255的数的加减乘除运算,并可连续运算。当键入值大于255时,将自动清零,可以重新输入。对应每一个数字键按下的同时,LED显示按下键的值,并显示最后的运算结果。
2.设计要求
(1)设计给出系统硬件电原理图和程序清单;
(2)单片机系统采用8031机型;
请发到邮箱369546011@qq.com
满意加分
;@@@@@@@@@双字节整数运算@@@@@@@@@@@@@@@@@@
;***********双字节无符号加法**************
;入口:R6(H),R7,R4(H),R5,出口:和R6(H),R7(L)
UADD: MOV A,R7
ADD A,R5
MOV R7,A
MOV A,R6
ADDC A,R4
MOV R6,A
RET
;***********双字节无符号减法**************
;入口:被减数R6(H),R7(L),减数R4(H),R5(L),出口:差R6(H),R7(L)
CLR C
MOV A,R7
SUBB A,R5
MOV R7,A
MOV A,R6
SUBB A,R4
MOV R6,A
RET
;***********双字节无符号乘法**************
;入口:R6(H),R7(L),R4(H),R5(L),出口:积R6(H),R7(L)
UMUL: MOV A,R7
MOV B,R5
MUL AB
MOV R0,B
XCH A,R7
MOV B,R4
MUL AB
ADD A,R0
XCH A,R6
MOV B,R5
MUL AB
ADD A,R6
MOV R6,A
RET
;***********双字节无符号除法*****************
;入口:R6(H),R7(L),R4(H),R5(L),出口:商R6(H),R7(L),余R4(H),R5(L)
;影响:R2,R3,
;堆栈需求:1
UDIV: CLR C
CLR A
MOV R2,A
MOV R3,A
MOV B,#10H
MOVBIT: MOV A,R7;R6、R7中数据左移一位到R2、R3中,C到R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R3
RLC A
MOV R3,A
MOV A,R2
RLC A
MOV R2,A
CLR C ;R2R3-R4R5
MOV A,R3
SUBB A,R5
PUSH Acc
MOV A,R2
SUBB A,R4
JBC Cy,MOVBIT0;不够减,清C继续左移
MOV R2,A;够减,存回余数并置位C
POP Acc
MOV R3,A
SETB C
SJMP MOVBIT1
MOVBIT0: POP Acc
MOVBIT1: DJNZ B,MOVBIT
MOV A,R7
RLC A
MOV R7,A
MOV A,R6
RLC A
MOV R6,A
MOV A,R2
MOV R4,A
MOV A,R3
MOV R5,A
RET
(7) 标号: DIVD 功能:双字节二进制无符号数除法
入口条件:被除数在R2、R3、R4、R5中,除数在R6、R7中。
出口信息:OV=0 时,双字节商在R2、R3中,OV=1 时溢出。
影响资源:PSW、A、B、R1~R7 堆栈需求: 2字节
DIVD: CLR C ;比较被除数和除数
MOV A,R3
SUBB A,R7
MOV A,R2
SUBB A,R6
JC DVD1
SETB OV ;溢出
RET
DVD1: MOV B,#10H ;计算双字节商
DVD2: CLR C ;部分商和余数同时左移一位
MOV A,R5
RLC A
MOV R5,A
MOV A,R4
RLC A
MOV R4,A
MOV A,R3
RLC A
MOV R3,A
XCH A,R2
RLC A
XCH A,R2
MOV F0,C ;保存溢出位
CLR C
SUBB A,R7 ;计算(R2R3-R6R7)
MOV R1,A
MOV A,R2
SUBB A,R6
ANL C,/F0 ;结果判断
JC DVD3
MOV R2,A ;够减,存放新的余数
MOV A,R1
MOV R3,A
INC R5 ;商的低位置一
DVD3: DJNZ B,DVD2 ;计算完十六位商(R4R5)
MOV A,R4 ;将商移到R2R3中
MOV R2,A
MOV A,R5
MOV R3,A
CLR OV ;设立成功标志
RET 参考技术A protues里自带了这个程序,是8031的,和原理图,代码都有,自己找找 参考技术B ptotues软件中带了一个
单片机实现的简易计算器
http://macroling.bokee.com/2390458.html
第一篇文章 基于单片机的简易计算器
首先我们要定义两个数组来存储要计算的数字,然后设计算法从数组中将数字提取出来 例如:
125 + 567
5*1
2*10
1*100
好了 到此为止 你或许知道如何提取数字了
下一步就是让单片机帮我们计算了(假如计算的结果是235)
235%10=5;
235/10=23;
23%10=3;
23/10=2;
将数字 2 3 5放到sum数组中将这些数字在数码管上显示出来就行了;
以上是关于用单片机设计简易计算器的主要内容,如果未能解决你的问题,请参考以下文章
基于51单片机的简易计算器设计(仿真+程序+原理图+PCB图+设计报告)
基于单片机家具窗帘控制系统设计基于单片机路灯教室灯光家具智能控制设计-基于单片机简易电饭煲电饭锅仿真系统设计基于单片机酒精检测控制系统仿真设计-设计资料