Code:
PROCESSOR PIC16F877A
INCLUDE <P16F877A.INC>
__CONFIG _XT_OSC & _WDT_OFF & _LVP_OFF & _CP_OFF
;*************************************************************
;CHUONG TRINH THU NGHIEM DUNG ADC CUA PIC 16F877A
;*************************************************************
;NGUOI THUC HIEN: TALLHT
;*************************************************************
;*************************************************************
COUNT EQU 0X20 ;BIEN DELAY
COUNT1 EQU 0X21
;************************************************************
MAIN
BANKSEL TRISB
CLRF TRISB ;PORTB XUAT LED
MOVLW 0XFF
MOVWF TRISA ;PORT A LA INPUT
LOOP
BANKSEL ADCON1
MOVLW 0X00 ;NGO VAO ANALOG,Fosc/2
MOVWF ADCON1
BANKSEL ADCON0
MOVLW 0X01 ;CHON RA0 LAM NGO VAO,ADON=1,BAT ADC
MOVWF ADCON0
CALL DELAY ;CHO 1 KHOANG THOI GIAN TRUOC KHI BAT DAU
BSF ADCON0,GO ;SET BIT "GO",BAT DAU CONVERT
;***************************************
;KIEM TRA KET QUA
BTFSC ADCON0,GO ;KIEM TRA BIT "DONE" CUA ADCON0
GOTO $-1 ;NEU BANG 1 THI CHO TIEP TUC
MOVF ADRES,W ;LAY KẾT QUẢ VÀO W
MOVWF PORTB ;XUAT RA PORTB
GOTO LOOP
;*******************************************************
DELAY
MOVLW D'10'
MOVWF COUNT
BACK
MOVLW D'4'
MOVWF COUNT1
DECFSZ COUNT1,F
GOTO $-1
DECFSZ COUNT,F
GOTO BACK
RETURN
END