《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 提高PIC16C711單片機片內A/D分辨率的方法
提高PIC16C711單片機片內A/D分辨率的方法
摘要: 介紹一種將PIC16C711片內8位A/D提高到11位的方法。此方法電路簡單,速度快,可提高單片機應用系統的性能價格比,具有一定的推廣價值。
Abstract:
Key words :

  目前,單片機中嵌入的A/D一般為8位到10位,難以滿足信號處理應用中高分辨率的要求;而外接高分辨率的A/D將使成本明顯提高,因為A/D轉換器的價格將隨其位數的增加而成倍增加。本文介紹一種提高PIC16C711單片機片內A/D分辨率的方法,將PIC16C711片內的8位A/D提高到11位。這種方法在PIC系列的其他單片機也適用。

  美國Microchip公司推出的8位單片機PIC16C711是一種性能價格比很高的單片機。它價格低、封裝小、采用CMOS工藝,具有OTP型,開發起來很方便。它內含4路8位高速A/D,將它擴展到11位后,可以大大提高單片機應用系統的性能價格比。

  一、硬件電路

  實現擴展的原理圖如圖1所示。8個等值的精密電阻R將0~5V基準電壓分割成8檔,每檔范圍為0.625V。8個抽頭分別接CD4051八選一模擬開關的8個輸入端,通道選擇控制端C,B,A分別由PIC16C711單片機的RB2,RB1,RB0控制。IC2和IC3為高輸入阻抗運放,IC2構成跟隨器,IC3構成精密差分放大器。

實現擴展的原理圖

  二、工作原理

  實現11位A/D轉換由PIC16C711

 

做2次8位A/D轉換完成。PIC16C711有4個模擬量輸入通道RA0~RA3,這些模擬量輸入通道復用1個采樣保持器進入到A/D轉換器。參考電壓Vref可以來自外部也可以來自內部VDD,A/D轉換器屬于逐次逼近式,轉換結果(8位)存入ADRES寄存器。在A/D轉換前必然選擇適當的通道,設置足夠的采樣時間。用戶可以通過設置A/D控制寄存器ADCON0和ADCON1來控制其轉換過程,同時A/D轉換的狀態也會在ADCON0中體現出來。

 

  先將待轉換的電壓Vi送到PIC16C711的RA0通道做一次A/D轉換。根據轉換所得的數字量由軟件算出Vi在8檔中位置,用Vi減去Vi所在檔的起始電壓。將所得差值放大8位,使之變為0~5V電壓信號,再送給PIC16C711的RA1通道做1次A/D轉換,所得數字量是11位AD轉換的低8位,而檔位CBA就是高3位,從而實現11位A/D轉換。

  舉例說明如下:假設輸入電壓Vi為3V,程序控制PIC16C711的RA0通道先進行第1次A/D轉換,所得結果是153,即3/5×255=153,對應8位數字量為10011001。將低5位屏蔽,得10000000,循環右移5次,得00000100,此時低3位對應的就是Vi=3V電壓時的檔位,即第4檔,CBA=100,程序將該檔位由RB2,RB1,RB0輸出,作為8選一模擬開關的通道選擇,使CD4051輸出2.5V,即5/8×4=2.5V。該電壓經IC2運放跟隨,再經IC3進行差分放大。設計時調整R11,R12,R13和R14的阻值,使放大倍數為8位,則得放大器IC3輸出Vo=8(Vi-2.5)=8(3-2.5)=4.0V。選擇RA1通道進行第2次A/D轉換,結果為11001100,這就是11位A/D轉換結果的低8位。檔位100為11位A/D轉換的高3位,合起來就是11位A/D轉換的結果10011001100。

  三、程序

  以下是使用PIC16C711指令系統完成11位A/D轉換的程序段。

  BSF STATUS,RP0;選頁面1

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

  MOVWF ADCON1 ;內部參考電壓

  BCF STATUS,RP0 ;選頁面0

  MOVLW 11000001B ;選RA0通道和內部時鐘

  MOVWF ADCON0

  MOVLW .125 ;延時125μs,等待輸入

  CALL WAIT ;穩定

  BSF ADCON0,GO ;啟動A/D

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

  GOTO LOOP

  MOVF ADRES,W ;取轉換結果

  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 ;延時60μs

  CALL WAIT

  BSF ADCON0,GO ;啟動A/D

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

  GOTO LOOP1

  MOVF ADRES,W ;A/D轉換結果存D0

  MOVWF D0

  WAIT MOVWF TEMP;延時子程序

 

  NEXT DECFSZ TEMP,1

  GOTO NEXT

  RETURN

  用這種方法實現的11位A/D轉換速度快PIC16C711基本上都是單周期指令,在4MHz振蕩頻率下指令周期1μs,進行1次A/D轉換最短時間20μs;2次A/D轉換40μs;2個運放變換時間20μs×2=40μs。總的轉換時間為百μs級。

  本文介紹的方法電路簡單,速度快,調試方便,已用于我們研制的單片機電阻爐溫自動控制系統中,取得了預期的效果。對于其他帶8位、10位A/D的單片機稍加改動均可使用,具有推廣價值。

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 国产精品亚洲精品青青青| 日本人视频-jlzzjlzzjlzz| 午夜成人理论福利片| 巨胸喷奶水www永久免费| 性高湖久久久久久久久aaaaa| 亚洲国产成人久久77| 精品人妻少妇一区二区三区| 国产欧美日韩精品a在线观看| chinesektv直男少爷| 日本午夜精品一区二区三区电影| 亚洲熟妇色自偷自拍另类| 老师邪恶影院a啦啦啦影院| 国产精品igao视频网| 一区二区手机视频| 日本猛少妇色xxxxx猛交| 亚洲国产美女精品久久久久| 精品人妻中文字幕有码在线| 国产强伦姧在线观看无码| 97人妻人人揉人人躁人人| 成人动漫3d在线观看| 久久综合九色综合97手机观看| 热99re久久精品天堂vr| 国产xx在线观看| 亚裔玉videoshd和黑人| 天天av天天翘天天综合网| 中文字幕高清免费不卡视频| 李老汉在船上大战雨婷| 亚洲精品乱码久久久久久蜜桃图片 | 欧美在线一卡二卡一卡3卡4卡5| 免费网站看av片| 菠萝菠萝蜜视频在线| 国产漂亮白嫩的美女| 91青青国产在线观看免费| 成人免费视频观看无遮挡| 久久国产精品免费一区| 欧美乱子伦videos| 亚洲精品欧美精品日韩精品| 精品国产亚洲AV麻豆| 国产中文字幕免费观看| 国产视频你懂的| 国产精品成熟老女人视频|