Trả lời
Bài này khá đơn giản. Mình viết bằng ngôn ngữ ASSEMBLY, mình thực hành trên BOARD PICDEM 2+ 2006 (microchip) . Bạn có thể mô phỏng bằng PROTEUS để thấy trực quan hơn.
Cần chú ý các thanh ghi của mình, mình chọn nút nhấn RA4, LED đơn gắn ở chân RB0 (chip P18f4520), delay 1s , led sáng 1s rồi sẽ tắt.
p=18f4520
#include p18f4520.inc
udata
a res 1
b res 1
c res 1
d res 1
org 0000h
goto start
start
call init
dem10
call an10
decfsz a
goto dem10
bsf PORTB,0
call delay1s
bcf PORTB,0
return
an10
btfsc PORTA,4 ;kiem tra bam nut
goto an10
tha10
btfss PORTA,4
goto tha10
return
delay1s
movlw .4
movwf b
delay1s_1
movlw .250
movwf c
delay
call delayX
decfsz c
goto delay
decfsz b
goto delay1s_1
return
delayX
nop
decfsz d
goto delayX
return
init
movlw .10
movwf a
;chon portb lam port xuat
clrf PORTB
bcf TRISB,0
;chon porta lam input
clrf PORTA
bsf TRISA,4
bsf PORTA,4
return
end
Mong bạn cho ý kiến thêm. Chúc vui.
|