简易四则运算计算器(C51单片机实现)

【说明】

    这是嵌入式课程的一个小作业,用C51单片机,实现了0-255内的简易四则运算,暂不支持负数、溢出等特殊情况的处理。


【关键点】

    1、计算器用R5、R6、R7三位显示,段码为0,全暗,段码为0xff,全亮。

    2、R3用于保存运算符

    3、两数都用B压入栈中,最后取结果时可以分别弹出,并根据操作符计算。

    4、程序在两数的第一位默认都输入数字,其他位置皆可复位。

    5、一次计算完成后、按任意键复位。


【键盘位置】



代码:

;3位0-255计算器,支持四则运算
;按键有0-9、+、-、*、/、复位、=
;R5,R6,R7分别用于显示三位
;暂不支持负数、溢出处理
ORG		0000H
LJMP	START
	WC	EQU	 P0	 ;数码管位控
	DC	EQU	 P1  ;数码管段控
	KC	EQU	 P2  ;键盘检测

ORG		0030H
START:
     MOV 	R5,		#0
	 MOV 	R6,		#0
	 MOV 	R7,		#0
N1_B1:
	 ACALL		KEYDOWN
	 CJNE		R4,		#0x10,		PRO1		;检测到按键做相应处理						 
	 ACALL		DISPLAY
	 JMP		N1_B1							;否则继续检测
PRO1:
	 MOV		A,		R4
	 MOV		R0,		A
	 MOV		DPTR,	#DCODE
	 MOVC 		A,		@A+DPTR
	 MOV		R5,		A
N1_B2:
	 ACALL		DISPLAY
	 ACALL		KEYDOWN
	 CJNE	   	R4,		#0x10,		PRO2		 ;检测按键,有键按下做相应处理
	 JMP		N1_B2
PRO2:
	 MOV		A,		R4
	 ACALL		JUDGE_OPER						 ;检查是否为操作符
	 CJNE		R3,		#0x04,		CON1		 ;是清除键,直接复位
	 JMP		START
CON1:
	 CJNE		R3,		#0x06,		PRO3		 ;是操作符,跳转到PRO3	   											 											 
     MOV		A,		R4						 ;是数字
	 MOV		R1,		A
	 MOV		DPTR,	#DCODE
	 MOVC 		A,		@A+DPTR
	 MOV		R6,		A
	 MOV		R4,		#0x10
	 JMP		N1_B3
PRO3:
     MOV		B,		R0						 ;将num1的结果保存在B中
	 PUSH		B
	 JMP		N2_B1					
  • 9
    点赞
  • 44
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
好的,以下是一个简单的四则运算计算器的Python程序,使用tkinter库实现图形界面: ```python import tkinter as tk class Calculator: def __init__(self, master): self.master = master master.title("四则运算计算器") self.result_var = tk.StringVar() self.result_var.set("0") self.result_label = tk.Label(master, textvariable=self.result_var, font=("Arial", 36)) self.result_label.grid(row=0, column=0, columnspan=4) button_texts = [ "7", "8", "9", "+", "4", "5", "6", "-", "1", "2", "3", "*", "0", "C", "=", "/" ] self.buttons = [] for i, text in enumerate(button_texts): button = tk.Button(master, text=text, width=6, height=3, font=("Arial", 16)) self.buttons.append(button) row = i // 4 + 1 col = i % 4 button.grid(row=row, column=col) button.bind("<Button-1>", self.button_click) def button_click(self, event): button = event.widget text = button["text"] if text == "C": self.result_var.set("0") elif text == "=": try: result = eval(self.result_var.get()) self.result_var.set(str(result)) except: self.result_var.set("Error") else: if self.result_var.get() == "0" or self.result_var.get() == "Error": self.result_var.set(text) else: self.result_var.set(self.result_var.get() + text) root = tk.Tk() calculator = Calculator(root) root.mainloop() ``` 运行以上代码,即可看到一个简易四则运算计算器界面。用户可以通过点击按钮来输入数字和运算符,并通过“=”按钮来计算结果。如果输入有误,计算器会显示“Error”。用户可以通过“C”按钮来清空输入。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值