View Single Post
Old 18-03-2011, 12:44 AM   #14
Longfet53
Nhập môn đệ tử
 
Tham gia ngày: Feb 2011
Bài gửi: 9
:
Trích:
Nguyên văn bởi cancel View Post
tui đã test code này rồi. tui hơi bối rối chổ banksel. Mỗi lần tui viết lệnh cho một thanh ghi phải coi nó thuộc bank nào rất vất vả. Vậy xin hỏi có một nguyên tắc nào để xài cái lệnh banksel không?
;################################################# #########
TITLE "SU DUNG ADC"
PROCESSOR P16F877A
INCLUDE <P16F877A.INC>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _XT_OSC &_WRT_OFF & _LVP_OFF & _CPD_OFF
;#######################################
;dung Vdd lam Vref
;ket qua 10 bit xuat ra PORTB va
;2 bit cao la RC0, RC1
;lay mau o chan RA0
;khi qua trinh chuyen doi hoan tat thi co ngat duoc bat len
;va bit GO/DONE' duoc tu dong xoa ve 0
;cancel
;######################################
ORG 0x0000
goto MAIN
ORG 0x0004
goto IRS
ORG 0x0005
MAIN
;configure I/O ports
banksel TRISA ;bank1
movlw B'111111'
movwf TRISA
movlw 0x00
movwf TRISB
movlw 0x00
movwf TRISC
movlw TRISC
;configure A/D module

movlw B'10000000' ;luu ket qua ve ben phai hai thanh ghi ADRESH:ADRESL
;chon 8 kenh analog vdd lam Vref
movwf ADCON1
bsf PIE1,ADIE ;cho phep ngat AD; trong bank1

banksel ADCON0 ;bank0
movlw B'01000001' ;clock conversion=Fosc/8
;select AN0
;clear GO/DONE'
;turn on A/D

movwf ADCON0
;configure A/D interrup
;bcf PIR1,ADIF
bsf INTCON,PEIE
bsf INTCON,GIE
;bsf PIE1,ADIE PIE1 o bank1

;wait the required acquisition time; ko cho chuyen doi trong chuong trinh nay

;start convertion: set bit GO/DONE' & ep ngat AD

bsf ADCON0,GO
bsf PIR1,ADIF
;
goto $

IRS
btfss PIR1,ADIF
goto EXIT_ADC_INTERRUP
ADC_INTERRUP
; display the result

movfw ADRESH
movwf PORTC
banksel ADRESL ;bank1
movfw ADRESL
banksel PORTB ;bank0
movwf PORTB

;prepare for the next INTERRUP

bsf ADCON0,GO
bcf PIR1,ADIF
EXIT_ADC_INTERRUP

RETFIE
END
Mình không hiểu ở chỗ cái dòng
bsf ADCON0,GO
bsf PIR1,ADIF
bạn set ADIF dể làm gì? bạn giải thích chút được không.
Longfet53 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn