PIC16F873的A/D轉換程序
;用于PIC16F873的A/D測試程序,實(shí)現如下功能:
;(1)應用RA0/AN0作為此A/D轉換輸入信道;
;(2)參考電壓源VREF選擇內部VDD和VSS;
;(3)A/D轉換時(shí)鐘源選用4MHz振蕩器;
;(4)八位數據精度,并將AD結果寫(xiě)入C口。
;8L8ADSY.ASM A/D轉換
list p=16f873
INCLUDE "P16F873.INC"
ORG 0x000
MAIN
NOP
BANKSEL ADCON1 ;選擇RAM數據存儲器體1,等價(jià)于BSF STATUS,RP0
MOVLW B00000000 ;選定RA5/AN4為模擬輸入,結果格式為左對齊
MOVWF ADCON1 ;參考電壓源VREF選擇內部VDD和VSS
CLRF TRISC ;設C口為輸出
BANKSEL ADCON0 ;選擇RAM數據存儲器體0,等于BCF STATUS,RP0
MOVLW B01100001 ;設置時(shí)鐘源8Tosc,使能ADC,AN0信道被選中
MOVWF ADCON0
CLRF PORTC ;對C口清0
AtoD
NOP ;為了保證采樣時(shí)間,通常,應該插入20us以上的
NOP ;時(shí)間延遲或者安排一段有相當長(cháng)度的應用程序。
BSF ADCON0,GO ;GO位置1,開(kāi)始A/D轉換
ADWAIT
BTFSC ADCON0,GO ;在A(yíng)/D轉換完成后,GO位將被清0
GOTO ADWAIT ;如果沒(méi)有轉換完畢,則返回繼續檢測
MOVF ADRESH,W ;如果轉換完畢,把A/D結果讀入W中
MOVWF PORTC ;將AD結果寫(xiě)入C口
GOTO AtoD ;循環(huán)進(jìn)行A/D轉換
END
評論