找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機(jī)驅(qū)動ADC0809匯編語言源碼

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:423499 發(fā)表于 2018-11-9 12:02 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
ADC0809實(shí)驗(yàn)參考程序:
1.  主程序
  1. ORG        0000H
  2.                 AJMP        MAIN
  3.                 ORG        000BH
  4.                 AJMP        T0SUB
  5.                 ORG        0030H
  6. MAIN:        MOV        SP, #5FH;設(shè)置堆棧
  7.                 CLR                A
  8.                 MOV        30H, A;顯示緩沖區(qū)清零,30H單元存放電壓的個位BCD碼
  9.                 MOV        31H, A
  10.                 MOV        32H, A
  11.                 MOV        33H, A;31H單元存放電壓的小數(shù)點(diǎn)后第三位BCD碼
  12.                 MOV        34H, A
  13.                 MOV        40H, A;讀取的電壓值單元清零,40H單元存放電壓的高兩位BCD碼
  14.                 MOV        41H, A;41H單元存放電壓的低兩位        BCD碼
  15.                 MOV        R2, A;轉(zhuǎn)換結(jié)果單元清零
  16.                 MOV        TMOD, #01H;設(shè)置定時(shí)器T0每50ms中斷一次
  17.                 MOV        TH0, #4CH
  18.                 MOV        TL0, #00H
  19.                 SETB        ET0
  20.                 SETB        EA
  21.                 SETB        TR0
  22.                 MOV        P2, #0F0H; 關(guān)顯示器并使ADC0809未選
  23. LOOP:        MOV        A, R2;根據(jù)轉(zhuǎn)換結(jié)果查表得到對應(yīng)的電壓值
  24.                 MOV        R3, #00H;R3R4存放2xR2
  25.                 CLR                C
  26.                 RLC                A
  27.                 MOV        R4, A
  28.                 MOV        A, R3
  29.                 RLC                A
  30.                 MOV        R3, A
  31.                 MOV         DPTR,#VTAB;指向電壓表首地址
  32.                 MOV        A, R4
  33.                 ADD        A, DPL
  34.                 MOV        DPL, A
  35.                 MOV        A, R3
  36.                 ADDC        A, DPH
  37.                 MOV        DPH, A
  38.                 CLR                A
  39.                 MOVC        A, @A+DPTR
  40.                 MOV        R0, #40H
  41.                 MOV        @R0, A
  42.                 INC                DPTR;讀取電壓值的第二個字節(jié)
  43.                         CLR                A
  44.                         MOVC        A, @A+DPTR
  45.                         INC                R0
  46.                         MOV        @R0, A
  47.                         ACALL        DISPLAY;調(diào)用顯示子程序
  48.                         ACALL        DELAY1ms;調(diào)用延時(shí)子程序
  49.                         SJMP        LOOP
  50. 顯示子程序:
  51. DISPLAY:        MOV        R1, #30H;拆分BCD碼
  52.                         MOV        R0, #40H;指向讀取的電壓值的單元
  53.                         MOV        A, @R0
  54.                         ANL        A, #0F0H
  55.                         SWAP        A
  56.                         MOV        @R1, A
  57.                         INC                R1
  58.                         MOV        A, @R0
  59.                         ANL        A, #0FH
  60.                         MOV        @R1, A
  61.                         INC                R0;拆分第二個字節(jié)的BCD碼
  62.                         INC                R1
  63.                         MOV        A, @R0
  64.                         ANL        A, #0F0H
  65.                         SWAP        A
  66.                         MOV        @R1, A
  67.                         INC                R1
  68.                         MOV        A, @R0
  69.                         ANL        A, #0FH
  70.                         MOV        @R1, A
  71.                         MOV        P2, #0F0H;關(guān)顯示器,P2口的低四位控制四位數(shù)碼管的顯示位置
  72.                         MOV        DPTR, #SEGTAB;指向段碼表
  73.                         MOV        R1, #30H
  74.                         MOV        A, @R1
  75.                         MOVC        A, @A+DPTR
  76.                         MOV        P1, A;顯示個位電壓值
  77.                         ANL        P1,#7FH;點(diǎn)亮小數(shù)點(diǎn)
  78.                         MOV        P2, #0F1H;P2.0置位,顯示個位數(shù)碼
  79.                         ACALL        DELAY1ms;延時(shí)1ms
  80.                         MOV        P2, #0F0H;關(guān)閉顯示器
  81.                         INC                R1
  82.                         MOV        A, @R1;顯示小數(shù)點(diǎn)后第一位電壓值
  83.                         MOVC        A, @A+DPTR
  84.                         MOV        P1, A
  85.                         MOV        P2, #0F2H
  86.                         ACALL        DELAY1ms
  87.                         MOV        P2, #0F0H
  88.                         INC                R1;顯示小數(shù)點(diǎn)后第二位電壓值
  89.                         MOV        A, @R1
  90.                         MOVC        A, @A+DPTR
  91.                         MOV        P1, A
  92.                         MOV        P2, #0F4H
  93.                         ACALL        DELAY1ms
  94.                         MOV        P2, #0F0H
  95.                         INC                R1;顯示小數(shù)點(diǎn)后第三位電壓值
  96.                         MOV        A, @R1
  97.                         MOVC        A, @A+DPTR
  98.                         MOV        P1, A
  99.                         MOV        P2, #0F8H
  100.                         ACALL        DELAY1ms
  101.                         MOV        P2, #0F0H;關(guān)顯示器
  102.                         RET
  103. 1ms延時(shí)子程序:
  104. DELAY1ms:        MOV        R5, #02H
  105. L1:                        MOV        R6, #0F0H
  106.                         DJNZ        R6, $
  107.                         DJNZ        R5, L1
  108.                         RET
  109. 定時(shí)采樣中斷服務(wù)子程序:
  110. T0SUB:                PUSH        ACC;保護(hù)現(xiàn)場
  111.                         PUSH        00H
  112.                         MOV        TH0, #4CH;恢復(fù)初值50ms
  113.                         MOV        TL0, #00H
  114.                         CLR                P2.7;啟動ADC0809的0通道轉(zhuǎn)換(A15)
  115.                         MOV        R0, #0F0H
  116.                         MOVX        @R0, A
  117.                         NOP
  118.                         NOP
  119.                         NOP
  120.                         NOP
  121.                         JNB   P3.0, $;轉(zhuǎn)換結(jié)束嗎?
  122.                         MOVX        A, @R0;讀取轉(zhuǎn)換結(jié)果
  123.                         MOV        R2, A
  124.                         SETB        P2.7;ADC0809退出選中
  125.                         POP                00H;恢復(fù)現(xiàn)場
  126.                         POP                ACC
  127.                         RETI
  128. SEGTAB:        DB  0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H;段碼表
  129. VTAB:                DB  00H,00H,00H,20H,00H,39H,00H,59H;電壓值表格
  130.                         DB  00H,78H,00H,98H,01H,12H,01H,38H
  131.                         DB  01H,56H,01H,76H,01H,95H,02H,15H
  132.                         DB  02H,34H,02H,54H,02H,80H,03H,00H
  133.                         DB  03H,20H,03H,40H,03H,60H,03H,80H
  134.                         DB  03H,91H,04H,10H,04H,30H,04H,49H
  135.                         DB  04H,69H,04H,88H,05H,08H,05H,27H
  136.                         DB  05H,47H,05H,66H,05H,86H,06H,05H
  137.                         DB  06H,25H,06H,45H,06H,64H,06H,84H
  138.                         DB  07H,03H,07H,23H,07H,42H,07H,62H
  139.                         DB  07H,81H,08H,01H,08H,20H,08H,40H
  140.                         DB  08H,59H,08H,79H,08H,98H,09H,18H
  141.                         DB  09H,38H,09H,57H,09H,77H,09H,96H
  142.                         DB  10H,16H,10H,35H,10H,55H,10H,74H
  143.                         DB  10H,94H,11H,13H,11H,33H,11H,52H
  144.                         DB  11H,72H,11H,91H,12H,11H,12H,30H
  145.                         DB  12H,50H,12H,70H,12H,89H,13H,09H
  146.                         DB  13H,28H,13H,48H,13H,67H,13H,87H
  147.                         DB  14H,06H,14H,26H,14H,45H,14H,65H
  148.                         DB  14H,84H,15H,04H,15H,23H,15H,43H
  149.                         DB  15H,63H,15H,82H,16H,02H,16H,21H
  150.                         DB  16H,41H,16H,60H,16H,80H,16H,99H
  151.                         DB  17H,19H,17H,38H,17H,58H,17H,77H
  152.                         DB  17H,97H,18H,16H,18H,36H,18H,55H
  153.                         DB  18H,75H,18H,95H,19H,14H,19H,34H
  154.                         DB  19H,53H,19H,73H,19H,92H,20H,12H
  155.                         DB  20H,31H,20H,51H,20H,70H,20H,90H
  156.                         DB  21H,09H,21H,29H,21H,48H,21H,68H
  157.                         DB  21H,88H,22H,07H,22H,27H,22H,46H
  158.                         DB  22H,66H,22H,85H,23H,05H,23H,24H
  159.                         DB  23H,44H,23H,63H,23H,83H,24H,02H
  160.                         DB  24H,22H,24H,41H,24H,61H,24H,80H
  161.                         DB  25H,00H,25H,19H,25H,39H,25H,59H
  162.                         DB  25H,78H,25H,98H,26H,17H,26H,37H
  163.                         DB  26H,56H,26H,76H,26H,95H,27H,15H
  164.                         DB  27H,34H,27H,54H,27H,73H,27H,93H
  165.                         DB  28H,13H,28H,32H,28H,52H,28H,71H
  166.                         DB  28H,91H,29H,10H,29H,30H,29H,49H
  167.                         DB  29H,69H,29H,88H,30H,08H,30H,27H
  168.                         DB  30H,47H,30H,66H,30H,86H,31H,05H
  169.                         DB  31H,25H,31H,45H,31H,64H,31H,83H
  170.                         DB  32H,03H,32H,23H,32H,42H,32H,62H
  171.                         DB  32H,81H,33H,01H,33H,20H,33H,40H
  172.                         DB  33H,59H,33H,79H,33H,98H,34H,18H
  173.                         DB  34H,38H,34H,57H,34H,77H,34H,96H
  174.                         DB  35H,16H,35H,35H,35H,55H,35H,75H
  175.                         DB  35H,94H,36H,13H,36H,33H,36H,52H
  176.                         DB  36H,72H,36H,91H,37H,11H,37H,30H
  177.                         DB  37H,50H,37H,70H,37H,89H,38H,09H
  178.                         DB  38H,28H,38H,48H,38H,67H,38H,88H
  179.                         DB  39H,06H,39H,26H,39H,45H,39H,65H
  180.                         DB  39H,84H,40H,04H,40H,23H,40H,43H
  181.                         DB  40H,63H,40H,82H,41H,02H,41H,21H
  182.                         DB  41H,41H,41H,60H,41H,80H,41H,99H
  183.                         DB  42H,19H,42H,38H,42H,58H,42H,77H
  184.                         DB  42H,97H,43H,16H,43H,36H,43H,55H
  185.                         DB  43H,75H,43H,95H,44H,14H,44H,34H
  186.                         DB  44H,53H,44H,73H,44H,92H,45H,12H
  187.                         DB  45H,31H,45H,51H,45H,70H,45H,89H
  188.                         DB  46H,09H,46H,29H,46H,48H,46H,68H
  189.                         DB  46H,88H,47H,07H,47H,27H,47H,46H
  190.                         DB  47H,66H,47H,85H,48H,05H,48H,24H
  191.                         DB  48H,44H,48H,63H,48H,83H,49H,02H
  192.                         DB  49H,22H,49H,41H,49H,61H,49H,80H
  193.                         END
復(fù)制代碼






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

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2018-11-9 15:27 | 只看該作者
補(bǔ)全原理圖或者詳細(xì)說明一下電路連接即可獲得100+黑幣
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表