傻大方


首页 > 知识库 > >

特选材料|基于51单片机的计算器设计程序代码(汇编)[特选材料]


按关键词阅读: 基于 特选材料 选材 汇编 程序代码 设计 计算器 单片机 51

1、DBUFEQU 30HTEMP EQU 40HYJ EQU50H ;
结果存放YJ1 EQU51H ;
中间结果存放GONG EQU52H ;
功能键存放ORG 00HSTART:MOV R3,#0 ;
初始化显示为空MOV GONG,#0MOV 30H,#10HMOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#10HMLOOP:CALL DISP ;
PAN调显示子程序WAIT:CALL TESTKEY ;
判断有无按键JZ WAIT CALL GETKEY ;
读键INC R3 ;
按键个数CJNE A,#0,NEXT1 ;
判断是否数字键LJMP E1 ;
转数字键处 。

2、理NEXT1:CJNE A,#1,NEXT2LJMP E1NEXT2:CJNE A,#2,NEXT3LJMP E1NEXT3:CJNE A,#3,NEXT4LJMP E1NEXT4:CJNE A,#4,NEXT5LJMP E1NEXT5:CJNE A,#5,NEXT6LJMP E1NEXT6:CJNE A,#6,NEXT7LJMP E1NEXT7:CJNE A,#7,NEXT8LJMP E1NEXT8:CJNE A,#8,NEXT9LJMP E1NEXT9:CJNE A,#9,NEXT10LJMP E1NEXT10:CJNE A,#10,NEXT11 ;
判断是否功能键LJMP E2 ;
转功能键 。

3、处理NEXT11:CJNE A,#11,NEXT12LJMP E2NEXT12:CJNE A,#12, NEXT13LJMP E2NEXT13:CJNE A,#13,NEXT14LJMP E2NEXT14:CJNE A,#14,NEXT15LJMP E2NEXT15:LJMP E3 ;
判断是否清除键E1:CJNE R3,#1,N1 ;
判断第几次按键LJMP E11 ;
为第一个数字N1:CJNE R3,#2,N2LJMP E12 ;
为第二个数字N2:CJNE R3,#3,N3 LJMP E13 ;
为第三个数字N3:LJMP E3 ;
第四个数字转溢出E11:MOV R4,A ;
输入值暂存R4MOV 。

4、 34H,A ;
输入值送显示缓存MOV 33H,#10HMOV 32H,#10HLJMP MLOOP ;
等待再次输入E12: MOV R7,A ;
个位数暂存R7MOV B,#10MOV A,R4MUL AB ;
十位数ADDA,R7MOV R4,A ;
输入值存R4MOV 32H,#10H ;
输入值送显示缓存MOV 33H,34HMOV 34H,R7LJMP MLOOPE13:MOV R7,AMOV B,#10MOV A,R4MUL ABJB OV,E3 ;
输入溢出ADD A,R7JB CY,E3 ;
输入溢出MOV R4,AMOV 32H,33H;
输入值送显示缓存MOV 33H,34HMOV 34 。

5、H,R7LJMP MLOOPE3:MOV R3,#0 ;
按键次数清零MOV R4,#0 ;
输入值清零MOV YJ,#0 ;
计算结果清零MOV GONG,#0 ;
功能键设为零MOV 30H,#10H ;
显示清空MOV 31H,#10HMOV 32H,#10HMOV 33H,#10HMOV 34H,#10HLJMP MLOOPE2:MOV 34H,#10HMOV 33H,#10HMOV 32H,#10HMOV R0,GONG ;
与上次功能键交换MOV GONG,AMOV A,R0CJNE A,#10,N21 ;
判断功能键LJMP JIA ;
N21: CJNE A,#11,N22LJMP JIAN。

6、;
N22: CJNE A,#12,N23LJMP CHENG ;
*N23:CJNE A,#13,N24LJMP CHU ;
/N24:CJNE A,#0,N25LJMP FIRST ;
首次按功能键N25:LJMP DEN ;
=N4:LJMP E3FIRST:MOV YJ,R4 ;
输入值送结果MOV R3,#0 ;
按键次数清零LJMP DISP1 ;
结果处理JIA:MOV A,YJ;
上次结果送累加器ADD A,R4;
上次结果加输入值JB CY,N4;
溢出MOV YJ,A;
存本次结果MOV R3,#0;
按键次数清零LJMP DISP1JIAN:MOV A,YJSUBB A,R4;
上次结果减输入值JB 。

7、 CY,N4;
负数溢出MOV YJ,AMOV R3,#0LJMP DISP1CHENG:MOV A,YJMOV B,AMOV A,R4MUL AB;
上次结果乘输入值JB OV,N4;
溢出MOV YJ,ALJMP DISP1CHU:MOV A,R4MOV B,AMOV A,YJDIV AB;
上次结果除输入值MOV YJ,AMOV R3,#0LJMP DISP1DEN:MOV R3,#0LJMP DISP1DISP1:MOVB,#10MOVA,YJ;
结果送累加器DIVAB;
结果除10MOVYJ1,A;
暂存商MOVA,B;
取个位数MOV34H,A;
个位数送显示缓存MOVA,YJ1JZDISP11;
结 。

8、果是否为一位数MOVB,#10MOVA,YJ1DIVABMOVYJ1,AMOVA,BMOV33H,A;
十位送显示缓存MOVA,YJ1JZDISP11;
结果是否为二位数MOV32H,A;
百位数送显示缓存DISP11:LJMPMLOOPDISP:MOVR0,#DBUF;
显示子程序MOVR1,#TEMP+4MOVR2,#5DP10:MOVDPTR,#SEGTABMOVA,R0MOVCA,A+DPTRMOVR1,AINCR0DECR1DJNZR2,DP10MOVR0,#TEMPDP12:MOV A,R0MOV P0,Aclr P2.7CALL D1MSsetb P2.7INC R0MOV A,R0MO 。

9、V P0,Aclr P2.6CALL D1MSsetb P2.6INC R0MOV A,R0MOV P0,Aclr P2.5CALL D1MSsetb P2.5INC R0MOV A,R0MOV P0,Aclr P2.4CALL D1MSsetb P2.4INC R0MOV A,R0MOV P0,Aclr P2.3CALL D1MSsetb P2.3RETD1MS: MOV R7,#02HDMS: MOV R6,#0FFHDJNZ R6,$DJNZ R7,DMS RETSEGTAB:DB 028H,7eH,0A2H,062HDB 74H, 61H, 21H, 7aH DB 20H, 60H,。

10、88H, 83H DB 0C6H, 0A1H, 86H, 8EH,0ffHTESTKEY:ACALL DISPMOVP1,#0FH;
读入键状态MOVA,P1CPLAANLA,#0FH;
高四位不用RETKEYTABLE:DB0DEH,0EDH,0DDH,0BDH;
键码定义DB0EBH,0DBH,0BBH,0E7HDB0D7H,0B7H,07EH,07DHDB07BH,077H,0BEH,0EEHGETKEY:;
读键子程序MOVR6,#10ACALLDELAYMOVP1,#0FHMOVA,P1CJNEA,0FH,K12LJMPMLOOPK12: MOVB,AMOVP1,#0EFHMOVA,P1CJ 。

【特选材料|基于51单片机的计算器设计程序代码(汇编)[特选材料]】11、NEA,#0EFH,K13MOVP1,#0DFHMOVA,P1CJNEA,#0DFH,K13MOVP1,#0BFHMOVA,P1CJNEA,#0BFH,K13MOVP1,#07FHMOVA,P1CJNEA,#07FH,K13LJMPMLOOPK13: ANL A,#0F0HORLA,BMOVB,AMOVR1,#16MOVR2,#0MOVDPTR,#KEYTABLEK14:MOVA,R2MOVCA,A+DPTRCJNEA,B,K16MOVP1,#0FHK15:MOVA,P1CJNEA,#0FH,K15MOVR6,#10ACALLDELAYMOVA,R2RETK16:INCR2DJNZR1,K14AJMPMLOOPDELAY:MOVR7,#80;
延时子程序DLOOP:DJNZR7,DLOOPDJNZR6,DLOOPRETEND7材料a 。


    来源:(未知)

    【学习资料】网址:/a/2021/0320/0021734620.html

    标题:特选材料|基于51单片机的计算器设计程序代码(汇编)[特选材料]


    上一篇:201|201x-201x学年高中物理2.4匀变速直线运动的速度与位移的关系新人教版必修1

    下一篇:201x-201x学年高中物理|201x-201x学年高中物理3.2磁感应强度新人教版选修