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