找回密码
 立即注册

QQ登录

只需一步,快速开始

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

单片机驱动ADC0809汇编语言源码

[复制链接]
跳转到指定楼层
楼主
ID:423499 发表于 2018-11-9 12:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
ADC0809实验参考程序:
1.  主程序
  1. ORG        0000H
  2.                 AJMP        MAIN
  3.                 ORG        000BH
  4.                 AJMP        T0SUB
  5.                 ORG        0030H
  6. MAIN:        MOV        SP, #5FH;设置堆栈
  7.                 CLR                A
  8.                 MOV        30H, A;显示缓冲区清零,30H单元存放电压的个位BCD码
  9.                 MOV        31H, A
  10.                 MOV        32H, A
  11.                 MOV        33H, A;31H单元存放电压的小数点后第三位BCD码
  12.                 MOV        34H, A
  13.                 MOV        40H, A;读取的电压值单元清零,40H单元存放电压的高两位BCD码
  14.                 MOV        41H, A;41H单元存放电压的低两位        BCD码
  15.                 MOV        R2, A;转换结果单元清零
  16.                 MOV        TMOD, #01H;设置定时器T0每50ms中断一次
  17.                 MOV        TH0, #4CH
  18.                 MOV        TL0, #00H
  19.                 SETB        ET0
  20.                 SETB        EA
  21.                 SETB        TR0
  22.                 MOV        P2, #0F0H; 关显示器并使ADC0809未选
  23. LOOP:        MOV        A, R2;根据转换结果查表得到对应的电压值
  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;读取电压值的第二个字节
  43.                         CLR                A
  44.                         MOVC        A, @A+DPTR
  45.                         INC                R0
  46.                         MOV        @R0, A
  47.                         ACALL        DISPLAY;调用显示子程序
  48.                         ACALL        DELAY1ms;调用延时子程序
  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;拆分第二个字节的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;关显示器,P2口的低四位控制四位数码管的显示位置
  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;点亮小数点
  78.                         MOV        P2, #0F1H;P2.0置位,显示个位数码
  79.                         ACALL        DELAY1ms;延时1ms
  80.                         MOV        P2, #0F0H;关闭显示器
  81.                         INC                R1
  82.                         MOV        A, @R1;显示小数点后第一位电压值
  83.                         MOVC        A, @A+DPTR
  84.                         MOV        P1, A
  85.                         MOV        P2, #0F2H
  86.                         ACALL        DELAY1ms
  87.                         MOV        P2, #0F0H
  88.                         INC                R1;显示小数点后第二位电压值
  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;显示小数点后第三位电压值
  96.                         MOV        A, @R1
  97.                         MOVC        A, @A+DPTR
  98.                         MOV        P1, A
  99.                         MOV        P2, #0F8H
  100.                         ACALL        DELAY1ms
  101.                         MOV        P2, #0F0H;关显示器
  102.                         RET
  103. 1ms延时子程序:
  104. DELAY1ms:        MOV        R5, #02H
  105. L1:                        MOV        R6, #0F0H
  106.                         DJNZ        R6, $
  107.                         DJNZ        R5, L1
  108.                         RET
  109. 定时采样中断服务子程序:
  110. T0SUB:                PUSH        ACC;保护现场
  111.                         PUSH        00H
  112.                         MOV        TH0, #4CH;恢复初值50ms
  113.                         MOV        TL0, #00H
  114.                         CLR                P2.7;启动ADC0809的0通道转换(A15)
  115.                         MOV        R0, #0F0H
  116.                         MOVX        @R0, A
  117.                         NOP
  118.                         NOP
  119.                         NOP
  120.                         NOP
  121.                         JNB   P3.0, $;转换结束吗?
  122.                         MOVX        A, @R0;读取转换结果
  123.                         MOV        R2, A
  124.                         SETB        P2.7;ADC0809退出选中
  125.                         POP                00H;恢复现场
  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
复制代码






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

使用道具 举报

沙发
ID:1 发表于 2018-11-9 15:27 | 只看该作者
补全原理图或者详细说明一下电路连接即可获得100+黑币
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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