找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3339|回复: 0
打印 上一主题 下一主题
收起左侧

计算器单片机课设汇编语言程序+仿真 超过255清零

[复制链接]
跳转到指定楼层
楼主
计算器单片机课设仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)

单片机汇编语言源程序如下:
  1. YJ             EQU                50H                                ;结果存放
  2. YJ1            EQU                51H                                ;中间结果存放
  3. GONG          EQU                52H                           ;功能键存放

  4.                 ORG           00H
  5. START:        MOV           R3,#0                     ;初始化显示为空
  6.                 MOV           GONG,#0               
  7.                 MOV           38H,#00H
  8.                 MOV           37H,#00H
  9.                 MOV           36H,#00H
  10.                 MOV           35H,#00H
  11.                 MOV           34H,#00H
  12.                 MOV           33H,#00H
  13.                 MOV           32H,#00H                        
  14.                 MOV           31H,#00H

  15. MLOOP:        CALL           DISP                      ;调显示子程序
  16. WAIT:        CALL           TESTKEY                   ;判断有无按键
  17.                 JZ      WAIT                  
  18.                 CALL    GETKEY              ;读键
  19.                 INC     R3                        ;按键个数
  20.                 CJNE    A,#0,NEXT1              ;判断是否数字键
  21.                 LJMP    E1                         ;转数字键处理
  22. NEXT1:        CJNE    A,#1,NEXT2
  23.                 LJMP    E1
  24. NEXT2:        CJNE    A,#2,NEXT3
  25.                 LJMP    E1
  26. NEXT3:        CJNE    A,#3,NEXT4
  27.                 LJMP    E1
  28. NEXT4:        CJNE    A,#4,NEXT5
  29.                 LJMP    E1
  30. NEXT5:        CJNE    A,#5,NEXT6
  31.                 LJMP    E1
  32. NEXT6:        CJNE    A,#6,NEXT7
  33.                 LJMP    E1
  34. NEXT7:        CJNE    A,#7,NEXT8
  35.                 LJMP    E1
  36. NEXT8:        CJNE    A,#8,NEXT9
  37.                 LJMP    E1
  38. NEXT9:        CJNE    A,#9,NEXT10
  39.                 LJMP    E1
  40. NEXT10:        CJNE           A,#10,NEXT11        ;判断是否功能键
  41.                 LJMP    E2                        ;转功能键处理
  42. NEXT11:        CJNE           A,#11,NEXT12
  43.                 LJMP    E2
  44. NEXT12:        CJNE           A,#12, NEXT13
  45.                 LJMP           E2
  46. NEXT13:        CJNE           A,#13,NEXT14
  47.                 LJMP           E2
  48. NEXT14:        CJNE           A,#14,NEXT15
  49.                 LJMP           E2
  50. NEXT15:        LJMP           E3                         ;判断是否清除键
  51. E1:                CJNE           R3,#1,N1                   ;判断第几次按键
  52.                 LJMP    E11                        ;为第一个数字
  53. N1:                CJNE           R3,#2,N2
  54.                 LJMP    E12                       ;为第二个数字
  55. N2:                CJNE    R3,#3,N3
  56.                 LJMP    E13                       ;为第三个数字
  57. N3:                LJMP    E3                        ;第四个数字转溢出
  58. E11:        MOV            R4,A                       ;输入值暂存R4
  59.                 MOV           38H,A                     ;输入值送显示缓存
  60.                 MOV           37H,#00H
  61.                 MOV           36H,#00H
  62.                 MOV           35H,#00H
  63.                 MOV           34H,#00H
  64.                 MOV           33H,#00H
  65.                 MOV           32H,#00H
  66.                 MOV           31H,#00H

  67.                 LJMP          MLOOP                     ;等待再次输入
  68. E12:          MOV           R7,A                      ;个位数暂存R7
  69.                 MOV           B,#10
  70.                 MOV           A,R4
  71.                 MUL           AB                                         ;十位数
  72.                 ADD                A,R7
  73.                 MOV           R4,A                    ;输入值存R4
  74.                 MOV           31H,#00H
  75.                 MOV           32H,#00H
  76.                 MOV           33H,#00H
  77.                 MOV           34H,#00H
  78.                 MOV           35H,#00H
  79.                 MOV           36H,#00H                       ;输入值送显示缓存
  80.                 MOV           37H,38H
  81.                 MOV           38H,R7

  82.                 LJMP           MLOOP
  83. E13:        MOV          R7,A
  84.                 MOV           B,#10
  85.                 MOV           A,R4
  86.                 MUL           AB
  87.                 JB             OV,E3                          ;输入溢出
  88.                 ADD           A,R7
  89.                 JB             CY,E3                   ;输入溢出
  90.                 MOV           R4,A
  91.                 MOV           36H,37H                                ;输入值送显示缓存
  92.                 MOV           37H,38H
  93.                 MOV           38H,R7
  94.                 LJMP           MLOOP
  95. E3:                MOV           R3,#0                   ;按键次数清零
  96.                 MOV           R4,#0                    ;输入值清零
  97.                 MOV           YJ,#0                    ;计算结果清零
  98.                 MOV           GONG,#0                  ;功能键设为零            
  99.                 MOV           31H,#00H
  100.                 MOV           32H,#00H
  101.                 MOV           33H,#00H
  102.                 MOV           34H,#00H
  103.                 MOV           35H,#00H
  104.                 MOV           36H,#00H                       ;输入值送显示缓存
  105.                

  106. …………限于本文篇幅 余下代码请从51黑下载附件…………
  107.                
复制代码

所有资料51hei提供下载:
计算器--单片机课设.rar (16.79 KB, 下载次数: 44)


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表