十年專注單片機方案開發的方案公司英銳恩,分享PIC 單片機AD轉換最簡測壓0-5V程序。英銳恩現提供服務產品涉及主控芯片:8位單片機、16位單片機、32位單片機及各類運算放大器等。
;此程序是最簡單的 AD轉換 演示例程
;轉換結果從C口輸出 非常直觀
;轉換的值ADRESH在0V是0發光管全滅, 5V時全亮
;==============================================
include
ORG 0X00
NOP
START
BCF STATUS,RP0
CLRF PORTC
MOVLW B'01000001' ;D7 D6=01 AD轉換時鐘頻率= FOSC/8
MOVWF ADCON0 ;D5 D4 D3=000 AD轉換模擬通道選擇RA0/AN0
;D2=0 AD已完成或未進行AD D0=0關閉ADC
BSF STATUS,RP0
MOVLW B'10000111' ;D7=1取消上拉,D6=0 INT下降沿觸發,
MOVWF OPTION_REG ;D5=0 TOCK1使用內部時鐘 D4=0 TOCK1 上升沿增量
;D3=0用于TMR0 D2 D1 D0=1 TMR0 1:256分頻
CLRF TRISC
MOVLW B'00001110' ;D3 D2 D1 D0 1110選擇RA0為模擬口。
MOVWF ADCON1 ;D7=0左對齊 ADRESL的低六位讀作0
BCF STATUS,RP0
MAIN
BTFSS INTCON,T0IF ;等待TMR0 定時溢出中斷
GOTO MAIN
BCF INTCON,T0IF ;清TMR0 定時溢出標志
BSF ADCON0,GO ;開啟A/D
WAIT
BTFSS PIR1,ADIF ;等待A/D完成
GOTO WAIT
MOVF ADRES,W ;A/D值從PORTC口輸出顯示
MOVWF PORTC
GOTO MAIN
END