好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

基于51单片机的计算器设计程序代码(汇编).doc

13页
  • 卖家[上传人]:M****1
  • 文档编号:475171839
  • 上传时间:2023-11-03
  • 文档格式:DOC
  • 文档大小:28KB
  • / 13 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • DBUFﻩEQU  30HTEMP EQU  ﻩ40HYJ   ﻩEQUﻩﻩ50H       ﻩﻩ;成果寄存YJ1  EQUﻩﻩ51H   ﻩ;中间成果寄存GONG ﻩEQUﻩﻩ52H       ;功能键寄存ﻩﻩORG ﻩ00HSTART: MOV R3,#0          ;初始化显示为空ﻩﻩMOV ﻩGONG,#0ﻩ MOV  ﻩ30H,#10Hﻩ MOV ﻩ31H,#10H ﻩMOV 32H,#10H MOV   33H,#10H ﻩMOV 34H,#10HMLOOP: CALL ﻩDISP        ﻩ;PAN调显示子程序WAIT: CALL TESTKEY       ;判断有无按键ﻩﻩJZ    WAIT     ﻩ CALL GETKEY          ;读键 INC   R3   ﻩ;按键个数 ﻩCJNE A,#0,NEXT1    ;判断与否数字键ﻩ LJMP E1       ﻩ;转数字键解决NEXT1:ﻩCJNE  A,#1,NEXT2 ﻩLJMP  E1NEXT2:ﻩCJNE  A,#2,NEXT3 LJMP  E1NEXT3:ﻩCJNE A,#3,NEXT4ﻩ LJMP    E1NEXT4:ﻩCJNE A,#4,NEXT5 ﻩLJMP E1NEXT5:ﻩCJNE   A,#5,NEXT6 ﻩLJMP E1NEXT6: CJNE A,#6,NEXT7 LJMP   E1NEXT7: CJNE A,#7,NEXT8ﻩ LJMP   E1NEXT8:ﻩCJNE  A,#8,NEXT9ﻩ LJMP E1NEXT9:ﻩCJNE A,#9,NEXT10 LJMP    E1NEXT10:ﻩCJNE   A,#10,NEXT11   ;判断与否功能键 ﻩLJMP    E2     ;转功能键解决NEXT11: CJNE   A,#11,NEXT12 ﻩLJMP   E2NEXT12: CJNE ﻩA,#12, NEXT13ﻩ LJMP ﻩE2NEXT13: CJNE ﻩA,#13,NEXT14 ﻩLJMP E2NEXT14: CJNE ﻩA,#14,NEXT15ﻩﻩLJMP   ﻩE2NEXT15:ﻩLJMP E3        ;判断与否清除键E1: CJNE   R3,#1,N1     ﻩ;判断第几次按键 ﻩLJMP    E11        ;为第一种数字N1: CJNE R3,#2,N2ﻩ LJMP    E12         ﻩ;为第二个数字N2:ﻩﻩCJNE   R3,#3,N3 ﻩ LJMP   E13    ;为第三个数字N3:ﻩ LJMP   E3     ﻩ;第四个数字转溢出E11:ﻩMOV   R4,A        ﻩ;输入值暂存R4 ﻩMOV 34H,A          ﻩ;输入值送显示缓存 MOV   ﻩ33H,#10HﻩﻩMOV  32H,#10Hﻩ LJMP  ﻩMLOOP     ﻩ;等待再次输入E12: ﻩMOV ﻩR7,A      ;个位数暂存R7 MOV ﻩB,#10 MOV A,R4 MUL   ﻩAB ﻩﻩ ;十位数 ﻩADDﻩﻩA,R7ﻩ MOV R4,A     ﻩ;输入值存R4 ﻩMOV 32H,#10H       ﻩﻩ;输入值送显示缓存 MOV  ﻩ33H,34H MOV   ﻩ34H,R7 LJMP ﻩMLOOPE13: MOV ﻩR7,Aﻩ MOV ﻩB,#10ﻩ MOV   A,R4ﻩﻩMUL  ﻩAB ﻩJB     OV,E3      ﻩ ;输入溢出 ADD A,R7ﻩﻩJB CY,E3     ﻩ;输入溢出ﻩ MOV ﻩR4,A MOV  ﻩ32H,33Hﻩ ﻩﻩ;输入值送显示缓存ﻩﻩMOV   33H,34HﻩﻩMOV  ﻩ34H,R7 ﻩLJMP   MLOOPE3:ﻩ MOV   R3,#0     ﻩ;按键次数清零 ﻩMOV  ﻩR4,#0       ﻩ;输入值清零ﻩ MOV   YJ,#0     ;计算成果清零ﻩﻩMOV   GONG,#0     ;功能键设为零 MOV   30H,#10H   ;显示清空 MOV ﻩ31H,#10HﻩﻩMOV   32H,#10H MOV ﻩ33H,#10H MOV  ﻩ34H,#10Hﻩ LJMP  MLOOPE2: ﻩMOV ﻩ34H,#10H MOV  ﻩ33H,#10Hﻩ MOV   32H,#10Hﻩ MOV ﻩR0,GONG          ﻩ;与上次功能键互换 MOV ﻩGONG,A MOV  A,R0ﻩ CJNE ﻩA,#10,N21      ﻩ;判断功能键 LJMP  ﻩJIA     ﻩ;"+"N21:  ﻩCJNE  A,#11,N22ﻩﻩLJMP ﻩJIAN    ;"-"N22:   CJNE ﻩA,#12,N23 LJMP  CHENG     ﻩ;"*"N23: CJNE   A,#13,N24 ﻩLJMP CHU        ;"/"N24:ﻩCJNE A,#0,N25ﻩ LJMP ﻩ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,YJﻩﻩSUBB  ﻩA,R4ﻩﻩ ﻩ;上次成果减输入值ﻩ JB ﻩCY,N4ﻩﻩ ﻩ;负数溢出 MOV   YJ,A MOV  R3,#0 ﻩLJMP  ﻩDISP1CHENG: MOV ﻩA,YJ MOV  ﻩB,A MOV ﻩA,R4ﻩ MUL   ABﻩﻩﻩ ;上次成果乘输入值 ﻩJB  OV,N4 ﻩ ﻩ;溢出ﻩ MOV ﻩYJ,A ﻩﻩﻩ LJMP  ﻩDISP1CHU:ﻩMOV ﻩA,R4 MOV   B,A MOV A,YJﻩ DIV ABﻩ ;上次成果除输入值ﻩ MOV YJ,A MOV   ﻩR3,#0 LJMP   ﻩDISP1DEN: MOV ﻩR3,#0ﻩﻩLJMP ﻩDISP1DISP1:ﻩMOVﻩﻩB,#10ﻩﻩMOV ﻩA,YJﻩﻩﻩ ;成果送累加器ﻩﻩDIV ABﻩﻩﻩ ;成果除10ﻩ MOVﻩ YJ1,A ;暂存"商"ﻩ MOVﻩﻩA,B ﻩ;取个位数ﻩ MOV ﻩ34H,A ﻩﻩ;个位数送显示缓存ﻩﻩMOVﻩﻩA,YJ1 JZ DISP11ﻩﻩﻩﻩ;成果与否为一位数 ﻩMOVﻩﻩB,#10ﻩﻩMOV ﻩA,YJ1ﻩ DIVﻩ ABﻩ MOVﻩﻩYJ1,A MOV ﻩA,BﻩﻩMOV 33H,A ﻩ ﻩ;十位送显示缓存 ﻩMOV ﻩA,YJ1ﻩ JZ ﻩDISP11 ;成果与否为二位数 MOVﻩ 32H,A ﻩ ;百位数送显示缓存DISP11: LJMP MLOOPDISP: MOV ﻩR0,#DBUFﻩ ﻩ;显示子程序 MOVﻩ R1,#TEMP+4 ﻩMOVﻩ R2,#5DP10: MOVﻩ DPTR,#SEGTAB MOVﻩ A,@R0 MOVC A,@A+DPTR ﻩMOV ﻩ@R1,A ﻩINCﻩ R0 DECﻩ R1 ﻩDJNZﻩR2,DP10ﻩﻩMOV R0,#TEMPDP12:ﻩMOV  A,@R0ﻩ MOV P0,A clr    P2.7ﻩﻩCALL D1MS ﻩsetb   P2.7ﻩﻩINC   R0ﻩﻩMOV A,@R0ﻩ MOV   P0,Aﻩﻩclr    P2.6 ﻩCALL   D1MS ﻩsetb    P2.6 ﻩINC    R0 MOV     A,@R0 MOV  P0,A ﻩclr  P2.5ﻩﻩCALL   D1MSﻩ setb P2.5 ﻩINC R0 ﻩMOV   A,@R0ﻩ MOV  P0,A ﻩclr  P2.4ﻩ CALL D1MS setb  P2.4ﻩﻩINC R0ﻩ MOV     A,@R0 ﻩMOV   P0,A clr  P2.3ﻩﻩCALL   D1MS setb   P2.3ﻩﻩRETD1MS: MOV   R7,#02HDMS:    MOV R6,#0FFH   DJNZ   R6,$ DJNZ R7,DMS ﻩﻩRETSEGTAB:ﻩDB 028H,7eH,0A2H,062H     DB 74H,  61H, 21H, 7aH   DB 20H, 60H, 88H,  83H   DB 0C6H, 0A1H, 86H,  8EH,0ffHTESTKEY:ACALL DISPﻩ ﻩMOV P1,#0FHﻩ ﻩ;读入键状态ﻩﻩMOVﻩﻩA,P1ﻩﻩ ﻩCPLﻩ A ANL ﻩA,#0FHﻩﻩ ﻩ;高四位不用ﻩﻩRETKEYTABLE:ﻩ ﻩ ﻩ ﻩﻩDB 0DEH,0EDH。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.