機(jī)電之家資源網(wǎng)
單片機(jī)首頁|單片機(jī)基礎(chǔ)|單片機(jī)應(yīng)用|單片機(jī)開發(fā)|單片機(jī)文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發(fā)
培訓(xùn)信息
贊助商
em78p458ad的使用說明
em78p458ad的使用說明
 更新時(shí)間:2009-7-20 15:42:07  點(diǎn)擊數(shù):0
【字體: 字體顏色

一:458ad的介紹和功能
            1.458有8路(p60-p67)8bit精度的ad,其中p60,p63可以由ad內(nèi)部的放大,達(dá)到12bit的精度。
            當(dāng)待測電流較小,可以通過ad的精度調(diào)整來提高精度。
            用到p60,p63且用到ad內(nèi)部的放大器時(shí),測試結(jié)果以實(shí)測為準(zhǔn)。
            2.ad采樣的完成可以用中斷也可以用查詢
            3.code
            option的WDT使能,458的AD中斷打開,通過相關(guān)設(shè)置,當(dāng)Em78p458在睡眠狀態(tài)時(shí),458的AD轉(zhuǎn)換還可以由WDT的clock進(jìn)行,轉(zhuǎn)換完成后,ic可以被喚醒
            二:458的ad轉(zhuǎn)換
            2.1 458的ad轉(zhuǎn)換的說明。
            通過相關(guān)設(shè)置,458的ad能夠轉(zhuǎn)換完成:
            458的ad轉(zhuǎn)換可以用查詢也可以用中斷
            2.2 458的ad轉(zhuǎn)換用到的相關(guān)特殊寄存器:
            ADCON(R9),AD-CMP-CON(IOCA0),GCON(IOC90),IMR(IOCF0)

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            ADCON - - IOCS ADRUN ADPD ADIS2 ADIS1 ADIS0

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            AD-CMP-CON VREFS CE COE IMS2 IMS1 IMS0 CKR1W CKR0

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            GCON OP2E OP1E G22 G21 G20 G12 G11 G10

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            IOCF0 - CMPIE PWM2IE PWM1E ADIE EXIE ICIE TCIE

            2.3 458的ad轉(zhuǎn)換的設(shè)置步驟和舉例(相關(guān)定義見庫文件em78458.inc)。
            2.3.1 用中斷完成458的ad轉(zhuǎn)換。
            下面的程式,用p60實(shí)現(xiàn)ad轉(zhuǎn)換,用到ad的內(nèi)部2倍放大。
            STEPS:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進(jìn)行設(shè)置
            2.設(shè)置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數(shù)據(jù),選擇OP放大及倍數(shù)
            4.定義AD轉(zhuǎn)換的時(shí)鐘速率
            5.對寄存器ADCON的ADPD置1
            6.AD中斷使能,中斷標(biāo)志位清0
            7.用中斷完成AD轉(zhuǎn)換,下指令ENI然后設(shè)置寄存器ADCON的ADRUN為1;如果要用查詢,設(shè)置寄存器ADCON的ADRUN為1后,檢測該位:該位為1,繼續(xù)查詢;該位為0,一次AD轉(zhuǎn)換完成。
            S_A==0X10
            S_S==0X11
            CNT1==0X12
                    INCLUDE "D:\HEADFILE\EM78458\EM78458.INC"

                    ORG     0X000
                    JMP     INITIAL

                    ORG     0X008
                    MOV     S_A,A
                    SWAP    S_A
                    SWAPA   STATUS
                    MOV     S_S,A

                    MOV     A,ISR
                    AND     A,@11110111B
                    MOV     ISR,A

                    MOV     A,ADDATA
                    MOV     CNT1,A
                    BS      ADCON,ADRUN     ;START TO RUN THE ADC

                    SWAPA   S_S
                    MOV     STATUS,A
                    SWAPA   S_A
                    RETI

            INITIAL:
                    BC      ADCON,IOCS
                    MOV     A,@0XFF
                    IOW     PORT6

                    MOV     A,@00000100B    ;IMS2,IMS1,IMS0==001,CKR1,CKR0==00
                    IOW     AN_CMP_CON

                    MOV     A,@0X00         ;ADIS2,ADID1,ADID0==000
                    MOV     ADCON,A

                    MOV     A,@01000001B    ;ENABLE OP1E
                    IOW     GCON
                    BS      ADCON,ADPA      ;A/D START SAMPLING

                    MOV     A,@00001000B    ;ENABLE AD INTERRUPT
                    IOW     IMR
                    BC      ISR,ADIF

                    ENI                     ;ENABLE THE INTERRUPT FUCTION
                    BS      ADCON,ADRUN     ;START TO RUN THE ADC
                    NOP
                    NOP
                    NOP
                    JMP     $-3

            2.3.2 用查詢完成458的ad轉(zhuǎn)換。
            下面的程式,用p60實(shí)現(xiàn)ad轉(zhuǎn)換,用到ad的內(nèi)部2倍放大。
            STEPS:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進(jìn)行設(shè)置
            2.設(shè)置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數(shù)據(jù),選擇OP放大及倍數(shù)
            4.定義AD轉(zhuǎn)換的時(shí)鐘速率
            5.對寄存器ADCON的ADPD置1
            6.AD中斷不使能
            7.用查詢完成ad轉(zhuǎn)換,設(shè)置寄存器ADCON的ADRUN為1后,檢測該位:該位為1,繼續(xù)查詢;該位為0,一次AD轉(zhuǎn)換完成。
            CNT1==0X12
                    INCLUDE "D:\HEADFILE\EM78458\EM78458.INC"

                    ORG     0X000
                    JMP     INITIAL

                    ORG     0X050

            INITIAL:
                    BC      ADCON,IOCS
                    MOV     A,@0XFF
                    IOW     PORT6

                    MOV     A,@00000100B    ;IMS2,IMS1,IMS0==001,CKR1,CKR0==00
                    IOW     AN_CMP_CON

                    MOV     A,@0X00         ;ADIS2,ADID1,ADID0==000
                    MOV     ADCON,A

                    MOV     A,@01000001B    ;ENABLE OP1E
                    IOW     GCON
                    BS      ADCON,ADPA      ;A/D START SAMPLING

                    MOV     A,@00001000B    ;ENABLE AD INTERRUPT
                    IOW     IMR
                    BC      ISR,ADIF

                    DISI
                    BS      ADCON,ADRUN     ;START TO RUN THE ADC

            POLLING:
                    JBC     ADCON,ADRUN     ;USE DEMANDING
                    JMP     POLLING
                    NOP
                    MOV     A,ADDATA
                    MOV     CNT1,A

                    NOP
                    NOP
                    JMP     POLLING

            三.458ad的校驗(yàn)
            3.1當(dāng)測試要求較高時(shí),可以進(jìn)行AD的校驗(yàn)(如模擬電壓較小,用到OP放大)
            3.2 AD校驗(yàn)用到的相關(guān)特殊寄存器
            ADCON(R9),AD-CMP-CON(IOCA0),GCON(IOC90),IOCA1

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            ADCON - - IOCS ADRUN ADPD ADIS2 ADIS1 ADIS0

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            AD-CMP-CON VREFS CE COE IMS2 IMS1 IMS0 CKR1W CKR0

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            GCON OP2E OP1E G22 G21 G20 G12 G11 G10

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            IOCA1 CALI2 SIGN2 VOF2(2) VOF2(1) VOF2(0) - PWM2(9) PWM2(8)

            3.3 AD校驗(yàn)的步驟說明和范例程式(相關(guān)定義見庫文件em78458.inc)。
            如下的范例程式,p60作為AD輸入口,P60用到OP放大
            ;steps:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進(jìn)行設(shè)置
            2.設(shè)置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數(shù)據(jù),選擇OP放大及倍數(shù)
            4.定義AD轉(zhuǎn)換的時(shí)鐘速率
            5.對寄存器ADCON的ADPD置1
            6.使能校驗(yàn)功能
            7.對寄存器ADCON的ADRUN置1
            8.轉(zhuǎn)換完成,檢查得到的ADDATA值:如果為0,修改校驗(yàn)系數(shù),如果不為0,校驗(yàn)結(jié)束。
            9.不使能校驗(yàn)功能
                    INCLUDE <78458.INC>

                    ORG     0X000
                    JMP     INITIAL
                    ORG     0X020
            INITIAL:
                    BC      ADCON,IOCS
                    MOV     A,@0XFF
                    IOW     PORT6

                    MOV     A,@00000100B    ;IMS2,IMS1,IMS0==001,CKR1,CKR0==00
                    IOW     AN_CMP_CON

                    MOV     A,@0X00         ;ADIS2,ADID1,ADID0==000
                    MOV     ADCON,A

                    MOV     A,@01000101B    ;ENABLE OP1E
                    IOW     GCON
                    BS      ADCON,ADPA      ;A/D START SAMPLING

                    BS      ADCON,IOCS
                    MOV     A,@0X80
                    MOV     TEMP,A
                    IOW     IOC71           ;ENABLE CALIBRATION
                    BC      ADCON,IOCS

            RE_SAMPLE:
                    BS      ADCON,ADRUN     ;START TO RUN THE ADC
                    JBC     ADCON,ADRUN
                    JMP     $-1
                    MOV     A,ADDATA
                    JBS     STATUS,Z
                    JMP     NON_ZERO        ;UNTIL ADDATA!=0X00

                    BS      ADCON,IOCS
                    MOV     A,@00001000B    ;CALIBRATION
                    ADD     TEMP,A
                    MOV     A,TEMP
                    IOW     IOC71

                    BC      ADCON,IOCS
                    JMP     RE_SAMPLE

            NON_ZER
                    BS      ADCON,IOCS
                    BC      TEMP,7          ;DISABLE CALIBRATION
                    MOV     A,TEMP
                    IOW     IOC71           ;STORE CALIBRATION DATA
                    BC      ADCON,IOCS
                    NOP
                    NOP
                    JMP     $


            四.458ad的喚醒ic
            4.1 458的AD在睡眠時(shí)也可以用WDT的clock運(yùn)行(WDT要使能),如果AD中斷使能,AD轉(zhuǎn)換完成后能喚醒IC
            4.2 AD喚醒ic用到的相關(guān)特殊寄存器
            ADCON(R9),AD-CMP-CON(IOCA0),GCON(IOC90),IMR(IOCF0)

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            ADCON - - IOCS ADRUN ADPD ADIS2 ADIS1 ADIS0

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            AD-CMP-CON VREFS CE COE IMS2 IMS1 IMS0 CKR1W CKR0

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            GCON OP2E OP1E G22 G21 G20 G12 G11 G10

            Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0
            IOCF0 - CMPIE PWM2IE PWM1E ADIE EXIE ICIE TCIE

            4.3 AD校驗(yàn)的步驟說明和范例程式(相關(guān)定義見庫文件em78458.inc)。
            4.3.1AD轉(zhuǎn)換完成,喚醒IC后,程式繼續(xù)往下執(zhí)行
            如下的范例程式,p60作為AD輸入口,用來喚醒ic
            ;steps:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進(jìn)行設(shè)置
            2.設(shè)置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數(shù)據(jù),選擇OP放大及倍數(shù)
            4.定義AD轉(zhuǎn)換的時(shí)鐘速率
            5.對寄存器ADCON的ADPD置1
            6.使能AD中斷
            7.WDT使能,PRESCALER TO WDT(比值設(shè)置大于1:2)
            8.DISI(喚醒后,程式繼續(xù)執(zhí)行)
            9.對寄存器ADCON的ADRUN置1
            10.下SLEEP指令。
            CNT1==0X12
                    INCLUDE "D:\HEADFILE\EM78458\EM78458.INC"

                    ORG     0X000
                    JMP     INITIAL

                    ORG     0X050
            INITIAL:
                    BC      ADCON,IOCS
                    MOV     A,@0XFF
                    IOW     PORT6

                    MOV     A,@0X0F
                    CONTW

                    MOV     A,@0X80
                    IOW     IOCE0

                    MOV     A,@00000111B    ;IMS2,IMS1,IMS0==001,CKR1,CKR0==11
                    IOW     IOCA0           ;AD_CMP_CON

                    MOV     A,@0X00         ;ADIS2,ADID1,ADID0==000
                    MOV     ADCON,A

                    MOV     A,@01000101B    ;ENABLE OP1E
                    IOW     GCON
                    BS      ADCON,ADPD      ;A/D START SAMPLING

                    MOV     A,@00001000B    ;ENABLE AD INTERRUPT
                    IOW     IMR
                    BC      ISR,ADIF

                    DISI                    ;DISABLE THE INTERRUPT FUCTION
                    BS      ADCON,ADRUN
                    SLEP
                    NOP
                    NOP

                    MOV     A,ADDATA
                    MOV     CNT1,A

                    BC      ADCON,IOCS
                    MOV     A,@00
                    IOW     IOCE0
                    JMP     $-1


            4.3.2AD轉(zhuǎn)換完成,喚醒IC后,程式繼續(xù)往下執(zhí)行
            如下的范例程式,p60作為AD輸入口,用來喚醒ic
            ;steps:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進(jìn)行設(shè)置
            2.設(shè)置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數(shù)據(jù),選擇OP放大及倍數(shù)
            4.定義AD轉(zhuǎn)換的時(shí)鐘速率
            5.對寄存器ADCON的ADPD置1
            6.使能AD中斷
            7.WDT使能,PRESCALER TO WDT(比值設(shè)置大于1:2)
            8.ENI(喚醒后,程式跳到中斷開始執(zhí)行)
            9.對寄存器ADCON的ADRUN置1
            10.下SLEEP指令。
            S_A==0X10
            S_S==0X11
            CNT1==0X12
                    INCLUDE "D:\HEADFILE\EM78458\EM78458.INC"

                    ORG     0X000
                    JMP     INITIAL

                    ORG     0X008
                    MOV     S_A,A
                    SWAP    S_A
                    SWAPA   STATUS
                    MOV     S_S,A

                    MOV     A,ISR
                    AND     A,@11110111B
                    MOV     ISR,A

                    MOV     A,ADDATA
                    MOV     CNT1,A

                    SWAPA   S_S
                    MOV     STATUS,A
                    SWAPA   S_A
                    RETI

            INITIAL:
                    BC      ADCON,IOCS
                    MOV     A,@0XFF
                    IOW     PORT6

                    MOV     A,@0X0F
                    CONTW

                    MOV     A,@0X80
                    IOW     IOCE0

                    MOV     A,@00000111B    ;IMS2,IMS1,IMS0==001,CKR1,CKR0==11
                    IOW     IOCA0           ;AD_CMP_CON

                    MOV     A,@0X00         ;ADIS2,ADID1,ADID0==000
                    MOV     ADCON,A

                    MOV     A,@01000101B    ;ENABLE OP1E
                    IOW     GCON
                    BS      ADCON,ADPD      ;A/D START SAMPLING

                    MOV     A,@00001000B    ;ENABLE AD INTERRUPT
                    IOW     IMR
                    BC      ISR,ADIF

                    ENI                     ;ENABLE THE INTERRUPT FUCTION
                    BS      ADCON,ADRUN
                    SLEP
                    NOP
                    NOP
                    BC      ADCON,IOCS
                    MOV     A,@00
                    IOW     IOCE0
                    JMP     $-1

  • 上一篇: em78p257比較器的使用說明
  • 下一篇: EM78P153 WDT wakeup的設(shè)定與使用
  • 發(fā)表評論   告訴好友   打印此文  收藏此頁  關(guān)閉窗口  返回頂部
    熱點(diǎn)文章
     
    推薦文章
     
    相關(guān)文章
    網(wǎng)友評論:(只顯示最新5條。)
    關(guān)于我們 | 聯(lián)系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機(jī)電之家 | 會員助手 | 免費(fèi)鏈接

    點(diǎn)擊這里給我發(fā)消息66821730(技術(shù)支持)點(diǎn)擊這里給我發(fā)消息66821730(廣告投放) 點(diǎn)擊這里給我發(fā)消息41031197(編輯) 點(diǎn)擊這里給我發(fā)消息58733127(審核)
    本站提供的機(jī)電設(shè)備,機(jī)電供求等信息由機(jī)電企業(yè)自行提供,該企業(yè)負(fù)責(zé)信息內(nèi)容的真實(shí)性、準(zhǔn)確性和合法性。
    機(jī)電之家對此不承擔(dān)任何保證責(zé)任,有侵犯您利益的地方請聯(lián)系機(jī)電之家,機(jī)電之家將及時(shí)作出處理。
    Copyright 2007 機(jī)電之家 Inc All Rights Reserved.機(jī)電之家-由機(jī)電一體化網(wǎng)更名-聲明
    電話:0571-87774297 傳真:0571-87774298
    杭州濱興科技有限公司提供技術(shù)支持

    主辦:杭州市高新區(qū)(濱江)機(jī)電一體化學(xué)會
    中國行業(yè)電子商務(wù)100強(qiáng)網(wǎng)站

    網(wǎng)站經(jīng)營許可證:浙B2-20080178-1