新聞中心

EEPW首頁(yè) > 模擬技術(shù) > 設(shè)計(jì)應(yīng)用 > 將PIC16C711片內(nèi)8位A/D提高到11位的方法

將PIC16C711片內(nèi)8位A/D提高到11位的方法

作者: 時(shí)間:2009-08-07 來源:網(wǎng)絡(luò) 收藏
三、程序

本文引用地址:http://m.butianyuan.cn/article/188763.htm

  以下是使用16指令系統(tǒng)完成11位A/D轉(zhuǎn)換的程序段。

  BSF STATUS,RP0;選頁(yè)面1

  MOVLW 00000010B ;RA0、RA1為模擬通道

  MOVWF ADCON1 ;內(nèi)部參考電壓

  BCF STATUS,RP0 ;選頁(yè)面0

  MOVLW 11000001B ;選RA0通道和內(nèi)部時(shí)鐘

  MOVWF ADCON0

  MOVLW .125 ;延時(shí)125μs,等待輸入

  CALL WAIT ;穩(wěn)定

  BSF ADCON0,GO ;啟動(dòng)A/D

  LOOP BTFSC ADCON0,GO ;判斷A/D完成否

  GOTO LOOP

  MOVF ADRES,W ;取轉(zhuǎn)換結(jié)果

  ANDLW 0E0 ;屏蔽低5位

  MOVWF D1 ;存入D1

  BCF STATUS,C

  RRF D1,1 ;右移5次

  RRF D1,1

  RRF D1,1

  RRF D1,1

  RRF D1,1

  MOVF D1,W

  MOVWF PORTB ;檔位輸出

  MOVLW 11001001B ;選RA1通道

  MOVWF ADCON0

  MOVLW .60 ;延時(shí)60μs

  CALL WAIT

  BSF ADCON0,GO ;啟動(dòng)A/D

  LOOP1 BTFSC ADCON0,GO ;判斷A/D完成否

  GOTO LOOP1

  MOVF ADRES,W ;A/D轉(zhuǎn)換結(jié)果存D0

  MOVWF D0

  WAIT MOVWF TEMP ;延時(shí)子程序

  NEXT DECFSZ TEMP,1

  GOTO NEXT

  RETURN

  用這種方法實(shí)現(xiàn)的11位A/D轉(zhuǎn)換速度快16基本上都是單周期指令,在4MHz振蕩頻率下指令周期1μs,進(jìn)行1次A/D轉(zhuǎn)換最短時(shí)間20μs;2次A/D轉(zhuǎn)換40μs;2個(gè)運(yùn)放變換時(shí)間20μs×2=40μs??偟霓D(zhuǎn)換時(shí)間為百μs級(jí)。

  本文介紹的方法電路簡(jiǎn)單,速度快,調(diào)試方便,已用于我們研制的單片機(jī)電阻爐溫自動(dòng)控制系統(tǒng)中,取得了預(yù)期的效果。對(duì)于其他帶8位、10位A/D的單片機(jī)稍加改動(dòng)均可使用,具有推廣價(jià)值。


上一頁(yè) 1 2 下一頁(yè)

關(guān)鍵詞: C711 PIC 16C 711

評(píng)論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉