hướng dẫn lập trình trên chip 18f4550 , hướng dẫn lập trình đèn led các dạng bài tập từ cơ bản đến nâng cao có hướng dẫn code mẫu cực kì dễ hiểu, hướng dẫn lập trình trên chân RB,RD ....hướng dẫn lập trình giải mã các tín hiệu điều khiển từ xa như đèn giao thông, điều khiển tivi sony điều khiển ô tô xe máy cùng tất cả các tín hiệu có dùng mắt hồng ngoại ...etc
Trang 1L p trình chip 18f4550 ập trình chip 18f4550
L p trình đ c chân RB0 ng t ập trình đọc chân RB0 ngắt ọc chân RB0 ngắt ắt
config fosc=HSPLL_HS
config PLLDIV = 5
config CPUDIV = OSC4_PLL6
config PB
config BOR = OFF
config LIP = OFF
config WDT = OFF
include "18f4550.inc"
include
org 0
goto BATDAU
org 8
got xulingat
org 30
BATDAU
bcf OSCCON, 1
bcf OSCCON, 0;
movlw b'11010000'
movwf INTCON;
movlw b'00000000'
movwf INTCON2;
Trang 2bcf TRISB,0;
bcf TRISD, 2;
lap
goto lap
xulingat
btfss LATD,2
goto thietlap1
bcf LATD, 2
goto thoat
thietlap1
bsf LATD2
thoat
call delay1s
retfie
;=========
delay1s
MOVLW 0x15
MOVWF TMP2 MOVLW 0x0CB ;203 DEC MOVWF TMP2
MOVLW 0x0EC ;236 DEC MOVWF TMP1
MOVLW 0x85 ;133 DEC MOVWF TMP0
DECFSZ TMP0,F
Trang 3GOTO $-1
DECFSZ TMP1,F
GOTO $-3
DECFSZ TMP2,F
GOTO $-5
return
end
l p trình chip đ c d li u t c ng B ập trình đọc chân RB0 ngắt ọc chân RB0 ngắt ữ liệu từ cổng B ệu từ cổng B ừ cổng B ổng B
config BOR = off
config LVP = off
config WDI = off
config PBADEN = off
config FOSC = HSPLL_HS
config PLLDIV = 5
config CPUDIV = OSC4_PLL6
include "p18f4550"
org 0
goto batdau
org 30
;xay dung chuong trinh con
tre
bcf OSCCON ,1
Trang 4bcf OSCCON ,0
;cpu dao dong primiry
bcf INTCON 2,7
bcf TRISD ,7
bsf TRISB ,0
lap
btfsc POSTB, 0
bsf LATB, 7
call tre
bcf LATB, 7
call tre
goto lap
and
l p trình đi u khi n ti vi sony ập trình đọc chân RB0 ngắt ều khiển ti vi sony ển ti vi sony
config WDT = off ; tat dong ho watch dog
config bor = off ; khong reset khi nguon giam config FOSC = HSPLL_HS
config PLLDIV = 5 ; dau vao 20Mhz
config CPUDIV = OSC4_PLL6; toc do 96/6=16 config PBADEN = OFF ; chan PB0-PB4 la I/O digital config LVP = off ; tat che do nap dien ap thap include "P18F4550.INC"
biendem equ 0x20 ; bien dem
lenh equ 0x21 ; lenh
mathietbi equ 0x22 ; du lieu
Trang 5TMP1 equ 0x23
TMP0 equ 0x24
org 0
goto batdau
org 0x08
goto xulingat
org 30
batdau
bcf OSCCON,0,1
bcf OSCCON,1,1
BsF TRISB,0 ; chân PB0 là vào du lieu
movlw 0
movwf TRISD ;cong D ra du lieu
movlw 0
movwf INTCON2 ; bit7=0( kéo các chân cong B lên 1) bit6=0 (ngat INT0 boi suon am) movlw b'11010000' ; cho phép ngat INT0
movwf INTCON ;cho phép ngat INT0
movlw 255
movwf LATD
lapvotan
goto lapvotan
; -xulingat
movlw 3
Trang 6movwf biendem ; bien dem
wait
call delay750
BTFSC PORTB,0 ; bo qua lenh tiep theo neu PORTB0=0 goto thoat
decfsz biendem,1
goto wait
; xong bit dong bo
movlw 7
movwf biendem
lap7lan
doiduongl
BTFSS PORTB,0 ; bo qua lenh tiep theo neu PORTB0=1 goto doiduongl
doiaml
BTFSC PORTB,0
goto doiaml
call delay750
bcf STATUS,0 ; xoa co C ,co C la bit 0 cua STATUS BTFSS PORTB,0
bsf STATUS,0 ; thiet lap co C=1 neu PORTB0=1
RRCF lenh,1 ; dich phai dua co C vao lenh
decfsz biendem,1
goto lap7lan
Trang 7bcf STATUS,0
RRCF lenh,1
; lay xong ma lenh
movlw 5
movwf biendem
lap5lan
doiduongdtb
BTFSS PORTB,0 ; bo qua lenh tiep theo neu PORTB0=1 goto doiduongdtb
doiamdtb
BTFSC PORTB,0
goto doiamdtb
call delay750
bcf STATUS,0 ; xoa co C ,co C la bit 0 cua STATUS BTFSS PORTB,0
bsf STATUS,0 ; thiet lap co C=1 neu PORTB0=1
RRCF mathietbi,1 ; dich phai dua co C vao lenh
decfsz biendem,1
goto lap5lan
BCF STATUS,0
RRCF mathietbi,1
BCF STATUS,0
RRCF mathietbi,1
BCF STATUS,0
RRCF mathietbi,1
Trang 8; lay xong du lieu
call dieukhien
thoat
bcf INTCON ,1 ; xoa co ngat
RETFIE
; -delay750 ; tre 800 micro giay tu Fcpu=16Mhz <=>2996+4 T MOVLW 0x04 ;4 DEC
MOVWF TMP1
MOVLW 0x0E3 ;227 DEC
MOVWF TMP0
lap DECFSZ TMP0,F
GOTO lap
DECFSZ TMP1,F
GOTO lap
return
dieukhien
movlw 1
CPFSEQ mathietbi
goto ketthuc
call hienthi
ketthuc
return
Trang 9hienthi ;dung cho bai tiep theo cac bai tuong tu movlw 20
cpfseq lenh
goto ketthucht
call phudinhrd2
ketthucht
return
;=========================
phudinhrd2
btfss LATD,2
GOTO LEN1
BCF LATD,2
GOTO THOATPD
LEN1
BSF LATD,2
THOATPD
movlw 255
movwf biendem
laptre
CALL delay750 ; goi tre
decfsz biendem,1
goto laptre
return
Trang 10l p trình đi u khi n ti vi sony bottons ập trình đọc chân RB0 ngắt ều khiển ti vi sony ển ti vi sony
config WDT = off ; tat dong ho watch dog
config bor = off ; khong reset khi nguon giam config FOSC = HSPLL_HS
config PLLDIV = 5 ; dau vao 20Mhz
config CPUDIV = OSC4_PLL6; toc do 96/6=16
config PBADEN = OFF ; chan PB0-PB4 la I/O digital config LVP = off ; tat che do nap dien ap thap
include "P18F4550.INC"
biendem equ 0x20 ; bien dem
lenh equ 0x21 ; lenh
mathietbi equ 0x22 ; du lieu
TMP1 equ 0x23
TMP0 equ 0x24
org 0
goto batdau
org 0x08
goto xulingat
org 30
batdau
bcf OSCCON,0,1
bcf OSCCON,1,1
BsF TRISB,0 ; chân PB0 là vào du lieu
Trang 11movlw 0
movwf TRISD ;cong D ra du lieu
movlw 0
movwf INTCON2 ; bit7=0( kéo các chân cong B lên 1) bit6=0 (ngat INT0 boi suon am) movlw b'11010000' ; cho phép ngat INT0
movwf INTCON ;cho phép ngat INT0
movlw 255
movwf LATD
lapvotan
goto lapvotan
; -xulingat
movlw 3
movwf biendem ; bien dem
wait
call delay240
BTFSC PORTB,0 ; bo qua lenh tiep theo neu PORTB0=0
goto thoat
decfsz biendem,1
goto wait
; xong bit dong bo
movlw 7
movwf biendem
lap7lan
Trang 12doiduongl
BTFSS PORTB,0 ; bo qua lenh tiep theo neu PORTB0=1 goto doiduongl
doiaml
BTFSC PORTB,0
goto doiaml
call delay240
bcf STATUS,0 ; xoa co C ,co C la bit 0 cua STATUS BTFSS PORTB,0
bsf STATUS,0 ; thiet lap co C=1 neu PORTB0=1
RRCF lenh,1 ; dich phai dua co C vao lenh
decfsz biendem,1
goto lap7lan
bcf STATUS,0
RRCF lenh,1
; lay xong ma lenh
movlw 5
movwf biendem
lap5lan
doiduongdtb
BTFSS PORTB,0 ; bo qua lenh tiep theo neu PORTB0=1 goto doiduongdtb
doiamdtb
BTFSC PORTB,0
goto doiamdtb
Trang 13call delay240
bcf STATUS,0 ; xoa co C ,co C la bit 0 cua STATUS
BTFSS PORTB,0
bsf STATUS,0 ; thiet lap co C=1 neu PORTB0=1
RRCF mathietbi,1 ; dich phai dua co C vao lenh
decfsz biendem,1
goto lap5lan
BCF STATUS,0
RRCF mathietbi,1
BCF STATUS,0
RRCF mathietbi,1
BCF STATUS,0
RRCF mathietbi,1
; lay xong du lieu
call dieukhien
thoat
call tre
bcf INTCON ,1 ; xoa co ngat
RETFIE
; -delay240 ; tre 800 micro giay tu Fcpu=16Mhz <=>2996+4 T MOVLW 0x04 ;4 DEC
MOVWF TMP1
MOVLW 0x0E3 ;227 DEC
Trang 14MOVWF TMP0
lap DECFSZ TMP0,F
GOTO lap
DECFSZ TMP1,F
GOTO lap
return
dieukhien
movlw 1
CPFSEQ mathietbi
goto ketthuc
call hienthi
ketthuc
return
;======================
hienthi
movlw 21 ; 21 la gia tri phim power cpfseq lenh
goto sosanh_mute
call xuli_power
goto ketthucht
sosanh_mute
movlw 20 ; 20 la gia tri phim Mute
Trang 15cpfseq lenh
goto sosanh_input
call xuli_mute
goto ketthucht
sosanh_input
movlw 37 ; 37 la gia tri phim Input cpfseq lenh
goto ketthucht
call xuli_input
ketthucht
return
;========================== xuli_power
BCF TRISD,7 ; chan RD7 huong ra du lieu btfss LATD,7
GOTO LEN1_RD7
BCF LATD,7
GOTO THOATPD7
LEN1_RD7
BSF LATD,7
THOATPD7
return
;=========================
xuli_mute
BCF TRISD,7 ; chan RD7 huong ra du lieu
Trang 16bcf LATD,7
return
;========================== xuli_input
BCF TRISD,7 ; chan RD7 huong ra du lieu bsf LATD,7
return
;========================== phudinhrd2
btfss LATD,2
GOTO LEN1
BCF LATD,2
GOTO THOATPD
LEN1
BSF LATD,2
THOATPD
return
;=========================== tre
movlw 255
movwf biendem
laptre
CALL delay240
CALL delay240
CALL delay240
Trang 17CALL delay240 CALL delay240 decfsz biendem,1 goto laptre return
end
17