Trích:
Nguyên văn bởi thanh_nam1977
Chương trình sau, viết nhằm xuất led ở port A ,theo dự kiến thì 4 led RA0,RA1, RA2,RA31 sáng, các led còn lại sẽ tắt.Nhưng thực tế chỉ có led RA6 sang
|
Chắc có gì lẫn lộn, PORTA của 877A chỉ có 6 chân, từ A0-A5
Trích:
Code:
processor 16f877a
include <p16f877a.inc>
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_OFF & _HS_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF
; khai báo “configuration bit”
ERRORLEVEL -302
ORG 0 ;
GOTO MAIN
ORG 5
MAIN BCF STATUS,RP0
BCF STATUS,RP1
CLRF PORTA
BSF STATUS,RP0
MOVLW 0xFF
MOVWF TRISA
BANKSEL PORTA
MOVLW 0X0F
MOVWF PORTA
END ;
|
Đoạn code của bạn gán TRISA = 0xff, tức là tất cả các chân trên PORTA là input, thì làm sao LED sáng được!
PORTA của PIC đồng thời là các chân analog input của ADC, mặc định khi khởi động các chân này là analog, bạn muốn xuất tín hiệu digital phải tắt chức năng analog này đi trong thanh ghi ADCON1
Ngoài ra chân RA4 khi output là OpenDrain khác với các chân IO còn lại!