男女午夜激情_www.天堂av.com_亚洲综合小说区_亚洲欧美自拍视频_成年精品_久久www免费人成—看片_激情综合五月天_久久高潮视频_最新国产成人ab网站_国产精品卡一

機電之家資源網
單片機首頁|單片機基礎|單片機應用|單片機開發|單片機文案|軟件資料下載|音響制作|電路圖下載 |嵌入式開發
培訓信息
贊助商
em78p458ad的使用說明
em78p458ad的使用說明
 更新時間:2009-7-20 15:42:07  點擊數:0
【字體: 字體顏色

一:458ad的介紹和功能
            1.458有8路(p60-p67)8bit精度的ad,其中p60,p63可以由ad內部的放大,達到12bit的精度。
            當待測電流較小,可以通過ad的精度調整來提高精度。
            用到p60,p63且用到ad內部的放大器時,測試結果以實測為準。
            2.ad采樣的完成可以用中斷也可以用查詢
            3.code
            option的WDT使能,458的AD中斷打開,通過相關設置,當Em78p458在睡眠狀態時,458的AD轉換還可以由WDT的clock進行,轉換完成后,ic可以被喚醒
            二:458的ad轉換
            2.1 458的ad轉換的說明。
            通過相關設置,458的ad能夠轉換完成:
            458的ad轉換可以用查詢也可以用中斷
            2.2 458的ad轉換用到的相關特殊寄存器:
            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轉換的設置步驟和舉例(相關定義見庫文件em78458.inc)。
            2.3.1 用中斷完成458的ad轉換。
            下面的程式,用p60實現ad轉換,用到ad的內部2倍放大。
            STEPS:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進行設置
            2.設置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數據,選擇OP放大及倍數
            4.定義AD轉換的時鐘速率
            5.對寄存器ADCON的ADPD置1
            6.AD中斷使能,中斷標志位清0
            7.用中斷完成AD轉換,下指令ENI然后設置寄存器ADCON的ADRUN為1;如果要用查詢,設置寄存器ADCON的ADRUN為1后,檢測該位:該位為1,繼續查詢;該位為0,一次AD轉換完成。
            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轉換。
            下面的程式,用p60實現ad轉換,用到ad的內部2倍放大。
            STEPS:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進行設置
            2.設置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數據,選擇OP放大及倍數
            4.定義AD轉換的時鐘速率
            5.對寄存器ADCON的ADPD置1
            6.AD中斷不使能
            7.用查詢完成ad轉換,設置寄存器ADCON的ADRUN為1后,檢測該位:該位為1,繼續查詢;該位為0,一次AD轉換完成。
            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的校驗
            3.1當測試要求較高時,可以進行AD的校驗(如模擬電壓較小,用到OP放大)
            3.2 AD校驗用到的相關特殊寄存器
            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校驗的步驟說明和范例程式(相關定義見庫文件em78458.inc)。
            如下的范例程式,p60作為AD輸入口,P60用到OP放大
            ;steps:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進行設置
            2.設置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數據,選擇OP放大及倍數
            4.定義AD轉換的時鐘速率
            5.對寄存器ADCON的ADPD置1
            6.使能校驗功能
            7.對寄存器ADCON的ADRUN置1
            8.轉換完成,檢查得到的ADDATA值:如果為0,修改校驗系數,如果不為0,校驗結束。
            9.不使能校驗功能
                    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在睡眠時也可以用WDT的clock運行(WDT要使能),如果AD中斷使能,AD轉換完成后能喚醒IC
            4.2 AD喚醒ic用到的相關特殊寄存器
            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校驗的步驟說明和范例程式(相關定義見庫文件em78458.inc)。
            4.3.1AD轉換完成,喚醒IC后,程式繼續往下執行
            如下的范例程式,p60作為AD輸入口,用來喚醒ic
            ;steps:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進行設置
            2.設置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數據,選擇OP放大及倍數
            4.定義AD轉換的時鐘速率
            5.對寄存器ADCON的ADPD置1
            6.使能AD中斷
            7.WDT使能,PRESCALER TO WDT(比值設置大于1:2)
            8.DISI(喚醒后,程式繼續執行)
            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轉換完成,喚醒IC后,程式繼續往下執行
            如下的范例程式,p60作為AD輸入口,用來喚醒ic
            ;steps:
            1.對寄存器AD-CMP-CON的IMS2:IMS0進行設置
            2.設置寄存器ADCON的ADIS2:ADIS0,選擇AD輸入通道
            3 對寄存器GCON寫入數據,選擇OP放大及倍數
            4.定義AD轉換的時鐘速率
            5.對寄存器ADCON的ADPD置1
            6.使能AD中斷
            7.WDT使能,PRESCALER TO WDT(比值設置大于1:2)
            8.ENI(喚醒后,程式跳到中斷開始執行)
            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的設定與使用
  • 發表評論   告訴好友   打印此文  收藏此頁  關閉窗口  返回頂部
    熱點文章
     
    推薦文章
     
    相關文章
    網友評論:(只顯示最新5條。)
    關于我們 | 聯系我們 | 廣告合作 | 付款方式 | 使用幫助 | 機電之家 | 會員助手 | 免費鏈接

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

    主辦:杭州市高新區(濱江)機電一體化學會
    中國行業電子商務100強網站

    網站經營許可證:浙B2-20080178-1
    主站蜘蛛池模板: 灌南县| 历史| 建宁县| 日土县| 宕昌县| 台北县| 祁阳县| 历史| 菏泽市| 遂昌县| 绥江县| 治多县| 海兴县| 石城县| 甘谷县| 永定县| 博白县| 宣恩县| 英德市| 西贡区| 南皮县| 仙桃市| 武汉市| 沭阳县| 右玉县| 厦门市| 沙雅县| 花莲县| 鄂伦春自治旗| 隆回县| 清丰县| 合山市| 汉中市| 山阳县| 岐山县| 商南县| 南城县| 文昌市| 万山特区| 扬中市| 滦南县|