sadsorry
19-03-2011, 04:55 PM
Chào các bác!
Hiện em bắt đầu tìm hiểu về PIC 16f877a. Đọc qua mấy bài của bác F với NTC thấy dễ hiểu nhưng em có 1 bài ( nó chuối ) mà làm mãi ko được nên đành nhờ mọi người.
Em có 1 con PIC, nút button nối qua PORTD, output xuất PORTB qua trở rồi led đơn. Khi chạy thì led nối với chân RB0 nó nháy liên tục. Em thử chống rung bằng delay 20ms rồi clear hết portB và D. Dưới đây là code , mong mọi người chỉ thêm
;----------------------------------------------------
;dieu khien bang cong tac
;-----------------------------------------------------
processor 16f877a
#include <p16f877a.inc>
;----------------------------------------------------
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC &_LVP_OFF &_CPD_OFF &_BODEN_OFF
count1 EQU 0x20
counta EQU 0x21
countb EQU 0x22
;----------------------------------------------------
org 0x0000
goto main
main
banksel TRISD
movlw 0xff
movwf TRISD
clrf TRISB
banksel PORTD
loop
movf PORTD,0
call delay
clrf PORTD
MOVWF PORTB
CALL delay
CLRF PORTB
goto loop
delay
movlw d'20'
movwf count1
d1
movlw d'199'
movwf counta
movlw d'1'
movwf countb
d2
decfsz counta,1
goto $+2
decfsz countb,1
goto d2
decfsz count1,1
goto d1
return
end
Hiện em bắt đầu tìm hiểu về PIC 16f877a. Đọc qua mấy bài của bác F với NTC thấy dễ hiểu nhưng em có 1 bài ( nó chuối ) mà làm mãi ko được nên đành nhờ mọi người.
Em có 1 con PIC, nút button nối qua PORTD, output xuất PORTB qua trở rồi led đơn. Khi chạy thì led nối với chân RB0 nó nháy liên tục. Em thử chống rung bằng delay 20ms rồi clear hết portB và D. Dưới đây là code , mong mọi người chỉ thêm
;----------------------------------------------------
;dieu khien bang cong tac
;-----------------------------------------------------
processor 16f877a
#include <p16f877a.inc>
;----------------------------------------------------
__CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF &_HS_OSC &_LVP_OFF &_CPD_OFF &_BODEN_OFF
count1 EQU 0x20
counta EQU 0x21
countb EQU 0x22
;----------------------------------------------------
org 0x0000
goto main
main
banksel TRISD
movlw 0xff
movwf TRISD
clrf TRISB
banksel PORTD
loop
movf PORTD,0
call delay
clrf PORTD
MOVWF PORTB
CALL delay
CLRF PORTB
goto loop
delay
movlw d'20'
movwf count1
d1
movlw d'199'
movwf counta
movlw d'1'
movwf countb
d2
decfsz counta,1
goto $+2
decfsz countb,1
goto d2
decfsz count1,1
goto d1
return
end