久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3926|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

單片機(jī)計算機(jī)仿真+匯編語言程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
簡單計算機(jī)仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


單片機(jī)匯編語言源程序如下:
  1. DBUF        EQU            30H
  2. TEMP          EQU            40H
  3. YJ             EQU                50H                                ;結(jié)果存放
  4. YJ1            EQU                51H                                ;中間結(jié)果存放
  5. GONG          EQU                52H                           ;功能鍵存放
  6. DIN            BIT                0B0H                          ;P3.0
  7. CLK           BIT            0B1H                          ;P3.1
  8.                 ORG           00H
  9. START:        MOV           R3,#0                     ;初始化顯示為空
  10.                 MOV           GONG,#0
  11.                 MOV           30H,#10H
  12.                 MOV           31H,#10H
  13.                 MOV           32H,#10H
  14.                 MOV           33H,#10H
  15.                 MOV           34H,#10H
  16. MLOOP:        CALL           DISP                      ;PAN調(diào)顯示子程序
  17. WAIT:        CALL           TESTKEY                   ;判斷有無按鍵
  18.                 JZ      WAIT                  
  19.                 CALL    GETKEY              ;讀鍵
  20.                 INC     R3                        ;按鍵個數(shù)
  21.                 CJNE    A,#0,NEXT1              ;判斷是否數(shù)字鍵
  22.                 LJMP    E1                         ;轉(zhuǎn)數(shù)字鍵處理
  23. NEXT1:        CJNE    A,#1,NEXT2
  24.                 LJMP    E1
  25. NEXT2:        CJNE    A,#2,NEXT3
  26.                 LJMP    E1
  27. NEXT3:        CJNE    A,#3,NEXT4
  28.                 LJMP    E1
  29. NEXT4:        CJNE    A,#4,NEXT5
  30.                 LJMP    E1
  31. NEXT5:        CJNE    A,#5,NEXT6
  32.                 LJMP    E1
  33. NEXT6:        CJNE    A,#6,NEXT7
  34.                 LJMP    E1
  35. NEXT7:        CJNE    A,#7,NEXT8
  36.                 LJMP    E1
  37. NEXT8:        CJNE    A,#8,NEXT9
  38.                 LJMP    E1
  39. NEXT9:        CJNE    A,#9,NEXT10
  40.                 LJMP    E1
  41. NEXT10:        CJNE           A,#10,NEXT11        ;判斷是否功能鍵
  42.                 LJMP    E2                        ;轉(zhuǎn)功能鍵處理
  43. NEXT11:        CJNE           A,#11,NEXT12
  44.                 LJMP    E2
  45. NEXT12:        CJNE           A,#12, NEXT13
  46.                 LJMP           E2
  47. NEXT13:        CJNE           A,#13,NEXT14
  48.                 LJMP           E2
  49. NEXT14:        CJNE           A,#14,NEXT15
  50.                 LJMP           E2
  51. NEXT15:        LJMP           E3                         ;判斷是否清除鍵
  52. E1:                CJNE           R3,#1,N1                   ;判斷第幾次按鍵
  53.                 LJMP    E11                        ;為第一個數(shù)字
  54. N1:                CJNE           R3,#2,N2
  55.                 LJMP    E12                       ;為第二個數(shù)字
  56. N2:                CJNE    R3,#3,N3
  57.                 LJMP    E13                       ;為第三個數(shù)字
  58. N3:                LJMP    E3                        ;第四個數(shù)字轉(zhuǎn)溢出
  59. E11:        MOV            R4,A                       ;輸入值暫存R4
  60.                 MOV           34H,A                     ;輸入值送顯示緩存
  61.                 MOV           33H,#10H
  62.                 MOV           32H,#10H
  63.                 LJMP          MLOOP                     ;等待再次輸入
  64. E12:        MOV           R7,A                      ;個位數(shù)暫存R7
  65.                 MOV           B,#10
  66.                 MOV           A,R4
  67.                 MUL           AB                                         ;十位數(shù)
  68.                 ADD                A,R7
  69.                 MOV           R4,A                    ;輸入值存R4
  70.                 MOV           32H,#10H                       ;輸入值送顯示緩存
  71.                 MOV           33H,34H
  72.                 MOV           34H,R7
  73.                 LJMP           MLOOP
  74. E13:        MOV          R7,A
  75.                 MOV           B,#10
  76.                 MOV           A,R4
  77.                 MUL           AB
  78.                 JB             OV,E3                          ;輸入溢出
  79.                 ADD           A,R7
  80.                 JB             CY,E3                   ;輸入溢出
  81.                 MOV           R4,A
  82.                 MOV           32H,33H                                ;輸入值送顯示緩存
  83.                 MOV           33H,34H
  84.                 MOV           34H,R7
  85.                 LJMP           MLOOP
  86. E3:                MOV           R3,#0                   ;按鍵次數(shù)清零
  87.                 MOV           R4,#0                    ;輸入值清零
  88.                 MOV           YJ,#0                    ;計算結(jié)果清零
  89.                 MOV           GONG,#0                  ;功能鍵設(shè)為零
  90.                 MOV           30H,#10H                   ;顯示清空
  91.                 MOV           31H,#10H
  92.                 MOV           32H,#10H
  93.                 MOV           33H,#10H
  94.                 MOV          34H,#10H
  95.                 LJMP           MLOOP
  96. E2:                MOV           34H,#10H
  97.                 MOV           33H,#10H
  98.                 MOV           32H,#10H
  99.                 MOV           R0,GONG                   ;與上次功能鍵交換
  100.                 MOV           GONG,A
  101.                 MOV           A,R0
  102.                 CJNE           A,#10,N21                 ;判斷功能鍵
  103.                 LJMP           JIA                       ;“+”
  104. N21:        CJNE           A,#11,N22
  105.                 LJMP           JIAN                     ;“-”
  106. N22:        CJNE          A,#12,N23
  107.                 LJMP          CHENG                    ;“*”
  108. N23:        CJNE          A,#13,N24
  109.                 LJMP           CHU                      ;“/”
  110. N24:        CJNE           A,#0,N25
  111.                 LJMP           FIRST                    ;首次按功能鍵
  112. N25:        LJMP           DEN                            ;“=”
  113. N4:                LJMP           E3
  114. FIRST:        MOV            YJ,R4                    ;輸入值送結(jié)果
  115.                 MOV           R3,#0                    ;按鍵次數(shù)清零
  116.                 LJMP           DISP1                   ;結(jié)果處理
  117. JIA:        MOV            A,YJ                                ;上次結(jié)果送累加器
  118.                 ADD            A,R4                                ;上次結(jié)果加輸入值
  119.                 JB             CY,N4                                ;溢出
  120.                 MOV           YJ,A                                ;存本次結(jié)果
  121.                 MOV           R3,#0                                ;按鍵次數(shù)清零
  122.                 LJMP           DISP1
  123. JIAN:        MOV            A,YJ
  124.                 SUBB           A,R4                                ;上次結(jié)果減輸入值
  125.                 JB             CY,N4                                ;負(fù)數(shù)溢出
  126.                 MOV           YJ,A
  127.                 MOV           R3,#0
  128.                 LJMP           DISP1
  129. CHENG:        MOV           A,YJ
  130.                 MOV           B,A
  131.                 MOV           A,R4
  132.                 MUL           AB                                        ;上次結(jié)果乘輸入值
  133.                 JB             OV,N4                                ;溢出
  134.                 MOV           YJ,A                                       
  135.                 LJMP           DISP1
  136. CHU:        MOV           A,R4
  137.                 MOV           B,A
  138.                 MOV           A,YJ
  139.                 DIV            AB                                        ;上次結(jié)果除輸入值
  140.                 MOV           YJ,A
  141.                 MOV           R3,#0
  142.                 LJMP           DISP1
  143. DEN:        MOV           R3,#0
  144.                 LJMP           DISP1
  145. DISP1:        MOV                B,#10
  146.                 MOV                A,YJ                                ;結(jié)果送累加器
  147.                 DIV                AB                                        ;結(jié)果除10
  148.                 MOV                YJ1,A                                ;暫存“商”
  149.                 MOV                A,B                                        ;取個位數(shù)
  150.                 MOV                34H,A                                ;個位數(shù)送顯示緩存
  151.                 MOV                A,YJ1
  152.                 JZ                DISP11                                ;結(jié)果是否為一位數(shù)
  153.                 MOV                B,#10
  154.                 MOV                A,YJ1
  155.                 DIV                AB
  156.                 MOV                YJ1,A
  157.                 MOV                A,B
  158.                 MOV                33H,A                                ;十位送顯示緩存
  159.                 MOV                A,YJ1
  160.                 JZ                DISP11                                ;結(jié)果是否為二位數(shù)
  161.                 MOV                32H,A                                ;百位數(shù)送顯示緩存
  162. DISP11:        LJMP        MLOOP
  163. DISP:        MOV                R0,#DBUF                        ;顯示子程序
  164.                 MOV                R1,#TEMP+4
  165.                 MOV                R2,#5
  166. DP10:        MOV                DPTR,#SEGTAB
  167.                 MOV                A,@R0
  168.                 MOVC        A,@A+DPTR
  169.                 MOV                @R1,A
  170.                 INC                R0
  171.                 DEC                R1
  172.                 DJNZ        R2,DP10
  173.                 MOV                R0,#TEMP
  174.                 MOV                R1,#5
  175. DP12:        MOV                R2,#8
  176.                 MOV                A,@R0
  177. DP13:        RLC                A
  178.                 MOV                DIN,C
  179.                 CLR                CLK
  180.                 SETB        CLK
  181.                 DJNZ        R2,DP13
  182.                 INC                R0
  183.                 DJNZ        R1,DP12
  184.                 RET
  185. SEGTAB:        DB                3FH,06H,5BH,4FH,66H,6DH        ;段碼定義
  186.                 DB                7DH,07H,7FH,6FH,77H,7CH
  187.                 DB                39H,5EH,79H,71H,00H,40H
  188. TESTKEY:        
  189.                 MOV                P1,#0FH                                ;讀入鍵狀態(tài)
  190.                 MOV                A,P1                                       
  191.                 CPL                A
  192.                 ANL                A,#0FH                                ;高四位不用
  193.                 RET
  194. KEYTABLE:                                                               
  195.                 DB                0DEH,0EDH,0DDH,0BDH        ;鍵碼定義
  196.                 DB                0EBH,0DBH,0BBH,0E7H
  197.                 DB                0D7H,0B7H,07EH,07DH
  198.                 DB                07BH,077H,0BEH,0EEH
  199. GETKEY:                                                                ;讀鍵子程序
  200.                 MOV                R6,#10
  201.                 ACALL        DELAY
  202.                 MOV                P1,#0FH
  203.                 MOV                A,P1
  204.                 CJNE        A,0FH,K12
  205.                 LJMP        MLOOP
  206. K12:        MOV                B,A
  207.                 MOV                P1,#0EFH
  208.                 MOV                A,P1
  209.                 CJNE        A,#0EFH,K13
  210.                 MOV                P1,#0DFH
  211.                 MOV                A,P1
  212.                 CJNE        A,#0DFH,K13
  213.                 MOV                P1,#0BFH
  214.                 MOV                A,P1
  215.                 CJNE        A,#0BFH,K13
  216.                 MOV                P1,#07FH
  217. ……………………

  218. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
計算機(jī).rar (40.08 KB, 下載次數(shù): 32)


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:568447 發(fā)表于 2019-6-20 23:46 | 只看該作者
對于小白來說有一點(diǎn)難
回復(fù)

使用道具 舉報

板凳
ID:659838 發(fā)表于 2019-12-9 18:35 來自手機(jī) | 只看該作者
謝謝大佬分享
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 国产中文在线 | 91久久精品国产91久久性色tv | 欧美成年网站 | 欧美xxxⅹ性欧美大片 | 亚洲成人综合网站 | 四虎网站在线观看 | 97人人超碰 | 亚洲免费在线观看av | 久久er99热精品一区二区 | 日韩在线视频播放 | 久久精品 | 国产欧美精品在线 | 成人一区二区在线 | 久草视频在线播放 | 高清久久| 日韩a在线 | 亚洲一区二区免费看 | 亚洲品质自拍视频 | 日韩在线不卡 | 久久国产精品偷 | 四虎影视免费在线 | 夫妻午夜影院 | 日韩毛片网 | 日韩一区二区三区精品 | 亚洲国产精品激情在线观看 | 亚洲a毛片 | 欧美激情国产精品 | 国产一级久久久久 | 国产欧美精品一区二区三区 | 日本久草 | 欧美a在线 | 亚洲午夜精品久久久久久app | 久久久久亚洲av毛片大全 | 日韩欧美三级电影在线观看 | 精品国产一区一区二区三亚瑟 | 日韩淫片免费看 | 综合精品久久久 | 欧美一区二区三区在线观看 | 国产精品99久久久久久久久久久久 | 中文字幕日韩一区 | 在线观看视频一区二区三区 |