打印

STC单片机AD转换问题已解决,以下是整理出的AD程序

[复制链接]
5569|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
LYB911|  楼主 | 2010-8-3 16:56 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
AD转换部分调试成功,以下是AD部分程序,已验证过,绝对可用,同大家分享喽,也使大家少走点弯路,这可是我花费好几天调出来的哦
AD定义部分:
           ;--------------------------AD转换
     ADC_CONTR EQU  0BCH   ;A/D转换寄存器
     ADC_RES   EQU  0BDH   ;8位A/D转换结果寄存器
     P1ASF     EQU  9DH    ;P1口中的相应位作为模拟功能使用时的控制寄存器,如做A/D用,相应位要置1
        ADC_ON_P10 EQU 11100000B  ;P1.0作为ADC输入
     ADC_ON_P11 EQU 11100001B  ;P1.1作为ADC输入
     ADC_ON_P12 EQU 11100010B  ;P1.2作为ADC输入
     ADC_ON_P13 EQU 11100011B  ;P1.3作为ADC输入
     ADC_ON_P14 EQU 11100100B  ;P1.4作为ADC输入
     ADC_ON_P15 EQU 11100101B  ;P1.5作为ADC输入
     ADC_ON_P16 EQU 11100110B  ;P1.6作为ADC输入
     ADC_ON_P17 EQU 11100111B  ;P1.7作为ADC输入
;----------------------------------------------------
     ADC_RESULT     EQU 30H    ;通道A/D转换结果
;--------------------------

;-----------------------------------
;以下为p1.2口AD转换子程序,若需要其他口作为AD口,可相应的改
;-----------------------------------
AD12:
      MOV A,#00000100B             ;设置P1.2为模拟功能,
                                  ;此处可改为P1的另外7个口,要用哪一位就把那位改为1就OK了
    ORL P1ASF,A
      MOV ADC_CONTR,#ADC_ON_P12    ;设置通道P1.2做A/D转换,
                                                             ;此处可改为其他7个口
    LCALL DELAY200US
      LCALL GET_AD_RESULT
      MOV A,#11111011B                        ;设置P1.2为普通IO口
      ANL P1ASF,A                                   ;设置P1.2为普通IO口
                                         ;改其他口时,将相应位改为0即可
      RET
                                                            
;=========================================================
GET_AD_RESULT:                                             ;以下为固定子程序,不用改变
    PUSH ACC
    MOV ADC_RES,#00H
    ORL ADC_CONTR,#00001000B      ;开始A/D转换
    NOP
    NOP
    NOP
    NOP
WAIT_AD_FINISHE:
    MOV A,#00010000B           ;判断A/D转换是否完成
    ANL A,ADC_CONTR
    JZ WAIT_AD_FINISHE         ;A/D没有转换完成,等待
    ANL ADC_CONTR,#11100111B   ;清零ADC_FLAG,ADC_START位,停止A/D转换
    MOV A,ADC_RES
    MOV ADC_RESULT,A          ;保存A/D转换结果
    POP ACC
    RET
;===================================

相关帖子

沙发
autopccopy| | 2010-8-3 20:46 | 只看该作者
我不玩ASM的,我用STC12C5A60S2在原厂的PDF例程下上机成功:

请见发在手电网的:《[充电器] 玩STC单片机AD转换试验(C源码),将做充、放电器的脱机记录..》
http://www.shoudian.com/viewthread.php?tid=143761
:)

使用特权

评论回复
板凳
zjswuyunbo| | 2010-8-4 13:00 | 只看该作者
官方有例子的啊。。。。
我下来就直接能用的
呵呵

使用特权

评论回复
地板
gdlhh2008| | 2010-8-25 20:40 | 只看该作者
楼主不知道有没有关于多通道AD采样求平均值的资料?有的话,分享下啊,我的邮箱:786961163@qq.com
先谢过了~~~

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

67

帖子

1

粉丝