首页 >> 知识 >> 简易四则运算计算器(C51单片机实现)

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

【说明】

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

【关键点】

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

    2、R3用于保存运算符

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

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

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

【键盘位置】

代码:

;3位0-255计算器,支持四则运算;按键有0-9、+、-、*、/、复位、=;R5,R6,R7分别用于显示三位;暂不支持负数、溢出处理ORG0000HLJMPSTARTWCEQU P0 ;数码管位控DCEQU P1 ;数码管段控KCEQU P2 ;键盘检测ORG0030HSTART: MOV R5,#0 MOV R6,#0 MOV R7,#0N1_B1: ACALLKEYDOWN CJNER4,#0x10,PRO1;检测到按键做相应处理 ACALLDISPLAY JMPN1_B1;否则继续检测PRO1: MOVA,R4 MOVR0,A MOVDPTR,#DCODE MOVC A,@A+DPTR MOVR5,AN1_B2: ACALLDISPLAY ACALLKEYDOWN CJNE R4,#0x10,PRO2 ;检测按键,有键按下做相应处理 JMPN1_B2PRO2: MOVA,R4 ACALLJUDGE_OPER ;检查是否为操作符 CJNER3,#0x04,CON1 ;是清除键,直接复位 JMPSTARTCON1: CJNER3,#0x06,PRO3 ;是操作符,跳转到PRO3 MOVA,R4 ;是数字 MOVR1,A MOVDPTR,#DCODE MOVC A,@A+DPTR MOVR6,A MOVR4,#0x10 JMPN1_B3PRO3: MOVB,R0 ;将num1的结果保存在B中 PUSHB JMPN2_B1
网站地图