这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 综合技术 » 基础知识 » em78p458,ad 各位做过的帮忙看看,是em78p458做的ad转换程序,

共2条 1/1 1 跳转至

em78p458,ad 各位做过的帮忙看看,是em78p458做的ad转换程序,有问题

院士
2006-09-17 18:14:16     打赏
em78p458,ad 各位做过的帮忙看看,是em78p458做的ad转换程序,有问题



关键词: em78p458     各位     做过     帮忙     看看     做的         

院士
2006-12-22 22:43:00     打赏
2楼
问 AD中断后读出的值不对,第一次做AD也不知道是哪地方错了,还请帮忙指正,恕在下实在愚钝,折磨我两天了


    R_F      EQU    0XF    ;;中断状态寄存器
    C_INT    EQU    0XF    ;;中断控制寄存器
    ADDATA   EQU    0XA    ;;ADC结果
    ADCONR   EQU    0X9    ;;ADCON寄存器
    ADCONC   EQU    0XA    ;;AD_CMPCON寄存器
    GCON     EQU    0X9    ;;GCON寄存器
    ADRUN    EQU    4      ;;启动位
    ADPD     EQU    3      ;;ADC功耗模式位    
         XSAD      EQU     0X10

         ORG      0X0
         JMP      main
         ORG      0X08
INT_AD:
    MOV    A_BUF,A
    SWAP    A_BUF
    SWAPA    R3
    MOV    S_BUF,A        ;;COPY DATA
    
    MOV    A,ADDATA
    MOV    XSAD,A             ;;把AD的值读到XSAD内存
    
INT_ADEN:    
    SWAPA    S_BUF
    MOV      R3,A
    SWAPA    A_BUF
    BC       R_F,3    ;AD转换结束标志,清除,准备下次转换
    BS       ADCONR,ADRUN
    RETI            ;;ADEND    

main:
       ;;初始化程序

INITIAL:
    MOV    A,@0B00001001    ;;;开TIME OR A/D 中断
    IOW    C_INT            ;;A/D 中断  0xf=c_int
    NOP
    
    MOV    a,@06
    CONTW        ;;预分频器设置为128比1

    MOV    A,@0B00000000
    IOW    ADCONC              ;;;参考电压为VDD
    NOP
EN_ADC:
    MOV    A,@0B00011111
    IOW    P6            ;;P6 OF INPUT
    
    MOV    A,@0B01000111
    IOW    GCON            ;;GCON=0P1=32 GCON=0X9

    BS     ADCONR,ADPD    ;;ADC低功耗模式关
    ENI        ;;;;开启中断总开关    
    BS    ADCONR,ADRUN    ;;启动AD
ADLOOP:
    JBC    ADCONR,ADRUN
    JMP    ADLOOP
         ;;以下是其它程序 1: 先弄明白以下   你首先要告诉别人,你用哪个引脚做ad转换呀。外部怎么接的呀?人家才肯帮你的嘛
   ad转换的脚首先要设为模拟脚,然后ad转换的脚要设为输入,
   然后选择相应的通道,在R9中...
   就可以了。

共2条 1/1 1 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]