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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4244|回復: 3
收起左側

51單片機匯編源程序包 帶詳細注釋

[復制鏈接]
ID:140725 發表于 2016-10-20 19:12 | 顯示全部樓層 |閱讀模式
0.png
51單片機常用的匯編程序,每個程序都帶詳細的注釋
所有資料下載:
51單片機匯編源程序包 帶詳細注釋.rar (222.66 KB, 下載次數: 46)

實例1:
  1. ;************************;
  2. ;八路模擬數據采集顯示電路;
  3. ;     2001.10.08編      ;
  4. ;************************;
  5. ;
  6. ;70H-77H存放采樣值,78H-7BH存放顯示數據,依次為個位、十位、百位、通道標志
  7. ;
  8. ;*************************************
  9. ;*                                   *
  10. ;*      主程序和中斷程序入口         *
  11. ;*                                   *
  12. ;*************************************
  13. ORG     0000H    ;程序執行開始地址
  14. LJMP    START    ;跳至START執行
  15. ORG     0003H    ;外中斷0中斷入口地址
  16. RETI             ;中斷返回(不開中斷)
  17. ORG     000BH    ;定時器T0中斷入口地址
  18. RETI             ;中斷返回(不開中斷)
  19. ORG     0013H    ;外中斷1中斷入口地址
  20. RETI             ;中斷返回(不開中斷)
  21. ORG     001BH    ;定時器T1中斷入口地址
  22. RETI             ;中斷返回(不開中斷)
  23. ORG     0023H    ;串行口中斷入口地址
  24. RETI             ;中斷返回(不開中斷)
  25. ORG     002BH    ;定時器T2中斷入口地址
  26. RETI             ;中斷返回(不開中斷)
  27. ;
  28. ;*************************************
  29. ;*                                   *
  30. ;*       初始化程序中的各變量        *
  31. ;*                                   *
  32. ;*************************************
  33. CLEARMEMIO:     CLR     A           ;
  34.                 MOV     P2,A        ;P2口置0
  35.                 MOV     R0,#70H     ;內存循環清0(70H-7BH)
  36.                 MOV     R2,#0CH     ;
  37. LOOPMEM:        MOV     @R0,A       ;
  38.                 INC     R0          ;
  39.                 DJNZ    R2,LOOPMEM  ;
  40.                 MOV     A,#0FFH     ;
  41.                 MOV     P0,A            ;P0、P1、P3端口置1
  42.                 MOV     P1,A            ;
  43.                 MOV     P3,A            ;
  44.                 RET                     ;子程序返回
  45. ;
  46. ;*************************************
  47. ;*                                   *
  48. ;*            主 程 序                 *
  49. ;*                                   *
  50. ;*************************************
  51. START:          LCALL   CLEARMEMIO      ;初始化
  52. MAIN:           LCALL   DISPLAY         ;顯示數據一次
  53.                 LCALL   TEST            ;測量一次
  54.                 AJMP        MAIN            ;返回MAIN循環
  55.                 NOP                        ;PC值出錯處理
  56.                 NOP                     ;空操作
  57.                 NOP                     ;空操作
  58.                 LJMP        START           ;重新復位起動
  59. ;
  60. DISPLAY:        MOV     R3,#08H         ;8路信號循環顯示控制
  61.                 MOV     R0,#70H         ;顯示數據初址(70H-77H)
  62.                 MOV     7BH,#00H        ;顯示通道路數(0-7)
  63. DISLOOP1:       MOV     A,@R0           ;顯示數據轉為三位十進制BCD碼存入
  64.                 MOV     B,#100          ;7AH、79H、78H顯示單元內
  65.                 DIV     AB              ;顯示數據除100
  66.                 MOV     7AH,A           ;商入7AH
  67.                 MOV     A,#10           ;A放入數10
  68.                 XCH     A,B             ;余數與數10交換
  69.                 DIV     AB              ;余數除10
  70.                 MOV     79H,A           ;商入79H
  71.                 MOV     78H,B           ;余數入78H
  72.                 MOV     R2,#0FFH       ;每路顯示時間控制 4MS*255
  73. DISLOOP2:       LCALL   DISP           ;調四位LED顯示程序
  74.                 DJNZ    R2,DISLOOP2    ;每路顯示時間控制
  75.                 INC     R0             ;顯示下一路
  76.                 INC     7BH            ;通道顯示數值加1
  77.                 DJNZ    R3,DISLOOP1    ;8路顯示未完轉DISLOOP1再循環
  78.                 RET                    ;8路顯示完子程序結束
  79. ;
  80. ; LED共陽顯示子程序,顯示內容在78H-7BH,數據在P1輸出,列掃描在P3.0-P3.3口
  81. DISP:           MOV     R1,#78H       ;賦顯示數據單元首址
  82.                 MOV     R5,#0FEH      ;掃描字
  83. PLAY:           MOV     P1,#0FFH                ;關顯示
  84.                 MOV     A,R5                    ;取掃描字
  85.                 ANL     P3,A              ;開顯示
  86.                 MOV    A,@R1              ;取顯示數據
  87.                 MOV    DPTR,#TAB          ;取段碼表首址
  88.                 MOVC   A,@A+DPTR          ;查顯示數據對應段碼
  89.                 MOV    P1,A                ;段碼放入P1口
  90.                 LCALL  DL1MS              ;顯示1MS
  91.                 INC    R1                 ;指向下一地址
  92.                 MOV    A,P3               ;取P3口掃描字
  93.                 JNB    ACC.3,ENDOUT       ;四位顯示完轉ENDOUT結束
  94.                 RL     A                  ;掃描字循環左移
  95.                 MOV    R5,A               ;掃描字放入R5暫存
  96.                 MOV    P3,#0FFH           ;顯示暫停
  97.                 AJMP   PLAY               ;轉PLAY循環
  98. ENDOUT:         MOV    P3,#0FFH           ;顯示結束,端口置1
  99.                 MOV    P1,#0FFH           ;
  100.                 RET                       ;子程序返回
  101. ;
  102. ;LED數碼顯示管用共陽段碼表,分別對應0-9,最后一個是"熄滅符"
  103. TAB:            DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0FFH
  104. ;
  105. ; 1MS延時子程序,LED顯示用
  106. DL1MS:          MOV         R6,#14H      ;
  107. DL1:            MOV         R7,#19H
  108. DL2:            DJNZ     R7,DL2
  109.                 DJNZ     R6,DL1
  110.                 RET
  111. ;
  112. ;模數轉換測量子程序
  113. TEST:           CLR     A          ;清累加器A
  114.                 MOV     P2,A       ;清P2口
  115.                 MOV     R0,#70H    ;轉換值存放首址
  116.                 MOV     R7,#08H    ;轉換8次控制
  117.                 LCALL  TESTART     ;啟動測試
  118. WAIT:           JB     P3.7,MOVD   ;等A/D轉換結束信號后轉MOVD
  119.                 AJMP   WAIT        ;P3.7為0等待
  120. ;
  121. TESTART:        SETB    P2.3       ;鎖存測試通道地址
  122.                 NOP                ; 延時2微秒
  123.                 NOP                ;
  124.                 CLR     P2.3       ;測試通道地址鎖存完畢
  125.                 SETB    P2.4      ; 啟動測試,發開始脈沖
  126.                 NOP               ; 延時2微秒
  127.                 NOP                                 ;
  128.                 CLR     P2.4                        ; 發啟動脈沖完畢
  129.                 NOP                       ;延時4微秒
  130.                 NOP                       ;
  131.                 NOP                       ;
  132.                 NOP                       ;
  133.                 RET                       ;子程序調用結束
  134. ;
  135. ; 取A/D轉換數據至70H-77H內存單元
  136. MOVD:           SETB    P2.5              ;8090輸出允許
  137.                 MOV     A,P0              ;將A/D轉換值移入A
  138.                 MOV     @R0,A             ;放入內存單元
  139.                 CLR     P2.5              ;關閉8090輸出
  140.                 INC     R0                ;內存地址加1
  141.                 MOV     A,P2              ;通道地址移入A
  142.                 INC     A                 ;通道地址加1
  143.                 MOV     P2,A              ; 通道地址送8090
  144.                 CLR        C                 ;清進位標志
  145.                 CJNE    A,#08H,TESTCON    ; 通道地址不等于8轉TESTCONT再測試
  146.                 JC      TESTCON           ; 通道地址小于8轉TESTCONT再測試
  147.                 CLR     A                 ; 大于或等于8,A/D轉換結束,恢復端口
  148.                 MOV     P2,A              ; P2口置0
  149.                 MOV     A,#0FFH           ;
  150.                 MOV     P0,A              ; P0口置1
  151.                 MOV     P1,A              ; P1口置1
  152.                 MOV     P3,A              ; P3口置1
  153.                 RET                       ; 取A/D轉換數據結束
  154. TESTCON:        LCALL   TESTART           ; 再發測試啟動脈沖
  155.                 LJMP    WAIT              ; 跳至WAIT等待A/D轉換結束信號
  156. ;
  157.                 END                       ; 程序結束
復制代碼




回復

使用道具 舉報

ID:55584 發表于 2016-10-24 08:13 | 顯示全部樓層
謝謝分享,下載學習
回復

使用道具 舉報

ID:398632 發表于 2018-9-16 13:47 | 顯示全部樓層
謝謝分享。學習一下。
回復

使用道具 舉報

ID:398692 發表于 2018-9-16 16:35 | 顯示全部樓層
謝謝分享,學習一下
回復

使用道具 舉報

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

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲一区二区精品视频 | 日韩一区二区av | 国产黄色精品 | 欧美一级毛片在线播放 | 亚洲 欧美 激情 另类 校园 | 国内精品99 | 天天久久| 日韩免费一区二区 | 国产小u女发育末成年 | 亚洲综合色 | a国产一区二区免费入口 | 国产成人精品免高潮在线观看 | 97伦理电影 | 亚洲欧美激情四射 | 亚洲一区二区三区视频 | 成人不卡| 久草青青 | 国产精品亚洲第一区在线暖暖韩国 | 视频三区 | 国产成人a亚洲精品 | 中文字幕亚洲视频 | 国产一级电影在线 | 超级碰在线 | 中文字幕1区 | 国产精品毛片久久久久久久 | 精品视频99 | 久久久久99 | 99riav国产一区二区三区 | 国产一级免费视频 | 久久久久久色 | 福利精品| 国产女人第一次做爰毛片 | 国内精品99 | 国产一区二区黑人欧美xxxx | 国产精品一区二区久久精品爱微奶 | 久久久久午夜 | 久久手机在线视频 | 日韩三级免费网站 | 精品欧美一区二区中文字幕视频 | 色先锋影音 | 狠狠的干|