Ứng dụng 89 về điều khiển bằng vô tuyến với PT2262 việc sử dụng PT2262 và PT2272 để điểu khiển từ xa đã quá thông dụng với các bạn lập trình VDK ở luồng này mình đưa ra một ý tưởng là th
Trang 1Ứng dụng 89 về điều khiển bằng vô tuyến với PT2262
việc sử dụng PT2262 và PT2272 để điểu khiển từ xa đã quá thông
dụng với các bạn lập trình VDK
ở luồng này mình đưa ra một ý tưởng là thực hiện 89 thay cho PT2272
và có thể set được địa chỉ của PT2262
đề bài:
giả sử thiết bị bị điều khiển bị mất remoter bây giờ cần thay remote
khác
các bạn chì cần nhấn một nút set trên thiết bị bị điều khiển rồi copy đia chỉ của remoter mới thế là xong lúc này remoter mới lại điều khiển
bình thường
thay vì bạn phải xem địa chỉ của thiết bị bị điều khiền rồi sau đó set địa chỉ remote phát giống như vậy
trong lồng này mình sử dụng bộ thu phát vô tuyến
các bạn cũng có thể sử dụng bộ thu phát hồng ngoại
bộ thu phát này các bạn nếu ở THHCM thì tiệm bà Châu hoặc Ngọc chợ
Trang 2Nhựt Tảo có bán
còn đây là sơ đồ và code text:
sơ đồ lý thuyết:
Ảnh đã được thu nhỏ Bấm vào đây để xem hình cỡ đầy đủ Hình gốc cỡ 730x342 và dung lượng 30KB
đầu tiên thi chương trình chưa có địa chỉ của remoter
bạn phải copy địa chỉ của remoter bằng cách nhấn đè phím set
lúc này thì 4 đèn sẽ chóp liên tục bạn bấm đè một nút bất kỳ trên remoter
lúc này chương trinh sẽ dò địa chỉ của remoter và RC
khi dò được thì chương trình sẽ tự động lưu vào 24C08
và 4 đèn sẽ ngưng chớp báo cho biết đã copy xong
lần sau thì không cần copy nữa
lúc này bạn có thể text data của remoter bằng cách nhấn phím
remoter
4 đèn LED sẽ thể hiện data cho từng phím
code có kèm theo chú thích nếu các bạn không hiểu chỗ mình sẽ giải thích cho
Code:
den_4 bit p1.3
den_3 bit p1.2
den_2 bit p1.1
Trang 3den_1 bit p1.0
data_thu bit p3.7
phim_set bit p3.2
data_ROM bit p1.5
clock_ROM bit p1.4
co_dong_bo bit 20h.0
co_chop_led bit 22h.1
dia_chi_ROM equ 24h
dia_chi_IC equ 23h
co_ghi_doc_ROM bit 23h.0
time_delay equ 30h
cot_1 equ 31h
cot_2 equ 32h
dia_chi_song_mang1 equ 4eh
data_song_mang1 equ 43h
dia_chi_song_mang2 equ 44h
data_song_mang2 equ 45h
time_cai_cot equ 46h
cot_cai_1 equ 49h
cot_cai_2 equ 4ah
; -
reset:
mov tmod,#11h ;time 0 16 bit, time 1 8 bit mov th0,#high(-50000)
mov tl0,#low(-50000)
Trang 4clr co_chop_led
lcall doc_cot ;lay dia chi cua thiet bi
mov ie,#10000010b ;khoi dong cac ngat
main:
jb phim_set,not_cai_dia_chi ;neu nhan phim set
setb co_chop_led ;bao dang cai remoter
mov time_delay,#1 ;duoc thay the cho dien tro RC
cua PT2272
jmp cai_dia_chi
; -
not_cai_dia_chi:
lcall doc_song_mang
jnb co_dong_bo,main
mov a,dia_chi_song_mang1
cjne a,cot_1,main
mov a,dia_chi_song_mang2
cjne a,cot_2,main
mov dia_chi_song_mang1,#0ffh ;xoa bo dem dia
chi
mov dia_chi_song_mang2,#0 ;xoa bo dem dia
chi
mov a,data_song_mang1
xuong thap
orl a,#0f0h ;tre 4 bit cao
;==========================================================
=======
;**********************************************************
********************
;==========================================================
=======
cai_dia_chi:
jb phim_set,thoat_cai_dia_chi ;neu nha phim set
djnz r2,tiep_cai_dia_chi ;so lan text RC
inc time_delay ;thay doi RC
Trang 5mov r2,#5 ;5 lan text RC
mov r1,#10 ;so lan trung dia chi
tiep_cai_dia_chi:
lcall text_xung_dong_bo
jnb co_dong_bo,cai_dia_chi ;neu bi sai bit dong bo
do_cot:
clr co_dong_bo
lap_thu_dia_chi:
lcall do_bit_cai ;do xung
lcall doi_bit ;doi xung ra bit
jnb co_dong_bo,lap_thu_dia_chi
cjne r0,#4,cai_dia_chi ;khong phai ma
cjne r1,#10,khac_10 ;chua du 10 lan giong nhau
mov cot_cai_1,dia_chi_song_mang1 ;lay dia chi moi mov cot_cai_2,dia_chi_song_mang2
khac_10:
mov a,dia_chi_song_mang1
cjne a,cot_cai_1,cai_dia_chi
mov a,dia_chi_song_mang2
cjne a,cot_cai_2,cai_dia_chi ;bi sai dia chi djnz r1,do_cot ;neu dung giam di 1
cong
jnb phim_set,$ ;tro nha phim set
thoat_cai_dia_chi:
clr co_chop_led
jmp not_cai_dia_chi
; -
luu_cot:
mov dia_chi_IC,#0a0h
mov dia_chi_ROM,#0
lcall goi_dia_chi
mov a,dia_chi_song_mang1
lcall ghi_byte
Trang 6mov a,dia_chi_song_mang2
lcall ghi_byte
mov a,time_delay
lcall ghi_byte
ret
; -
doc_cot:
mov dia_chi_IC,#0a0h
mov dia_chi_ROM,#0
lcall goi_dia_chi
setb co_ghi_doc_ROM ;lenh doc RAM noi tiep mov a,dia_chi_IC
lcall ghi_byte
lcall doc_byte
mov dia_chi_song_mang1,a
lcall doc_byte
mov dia_chi_song_mang2,a
lcall doc_byte
mov time_delay,a
ret
;=================================================
;*****************************************************
;=================================================
time0:
mov th0,#high(-50000)
mov tl0,#low(-50000)
jnb co_chop_led,thoat_time_0
Trang 7cpl den_1
thoat_time_0:
reti
;=================================================
;*****************************************************
;=================================================
doc_song_mang:
lcall text_xung_dong_bo
jnb co_dong_bo,thoat_doc_song_mang
clr co_dong_bo
lap_thu_song_mang:
jb co_dong_bo,loi_doc_song_mang
lcall doi_bit
djnz r3,lap_thu_song_mang
lcall text_xung_dong_bo
thoat_doc_song_mang:
ret
loi_doc_song_mang:
clr co_dong_bo
ret
; -
text_xung_dong_bo:
clr co_dong_bo
lcall do_bit_cai
cjne a,#01h,thoat_text_dong_bo ; neu khong phai la song mang
text_dong_bo:
mov b,time_delay
tro_text_dong_bo:
jb data_thu,thoat_text_dong_bo
djnz b,tro_text_dong_bo
djnz r0,text_dong_bo
setb co_dong_bo
Trang 8thoat_text_dong_bo:
ret
; - do_bit_cai:
jnb data_thu,$
do_xung_dong_bo:
lcall delay_34us
djnz 2dh,do_xung_dong_bo
mov c,data_thu
djnz 2eh,do_xung_dong_bo
ret
; -
do_bit:
jnb data_thu,$
lap_do_bit:
lcall delay_34us
djnz b,lap_do_bit
jnb data_thu,xung_khong
jmp tiep_do_bit
xung_khong:
tiep_do_bit:
tiep_do_bit1:
mov 2ah,time_delay
djnz 2ah,text_do_bit1
djnz b,text_do_bit1
setb co_dong_bo
jmp thoat_do_bit
text_do_bit1:
jnb data_thu,tiep_do_bit1
lap_do_bit1:
lcall delay_34us
djnz b,lap_do_bit1
jnb data_thu,xungkhong
Trang 9add a,#70h
jmp thoat_do_bit
xungkhong:
thoat_do_bit:
ret
; -
doi_bit:
cjne a,#11h,bit_1 ;neu la bit 1
mov a,data_song_mang1
mov data_song_mang1,a
mov a,data_song_mang2
mov data_song_mang2,a
bit_1:
cjne a,#77h,bit_f
mov a,data_song_mang1
mov data_song_mang1,a
mov a,data_song_mang2
mov data_song_mang2,a
bit_f:
cjne a,#71h,bit_dong_bo
mov a,data_song_mang1
mov data_song_mang1,a
mov a,data_song_mang2
mov data_song_mang2,a
du_byte:
djnz r0,thoat_doi_bit
Trang 10mov dia_chi_song_mang1,data_song_mang1
mov dia_chi_song_mang2,data_song_mang2
mov data_song_mang1,#0
thoat_doi_bit:
ret
bit_dong_bo:
setb co_dong_bo
ret
; -
delay_34us:
mov 2ah,time_delay
ret
;""""""""""""""""""""""""""""""""""""""""""""""""""""" start:
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ret
;""""""""""""""""""""""""""""""""""""""""""""""""""""""" stop:
nop
nop
Trang 11nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ret
;""""""""""""""""""""""""""""""""""""""""""""""""""""" ghi_byte:
ghi:
mov data_ROM, c
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
djnz b, ghi
nop
nop
nop
nop
setb clock_ROM
nop
Trang 12nop
nop
nop
nop
nop
nop
nop
nop
nop
ret
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""" doc_byte:
nop
nop
doc:
nop
nop
nop
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
mov c,data_ROM
nop
nop
djnz b, doc
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""" ACK:
nop
nop
nop
nop
Trang 13nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""" NAK:
nop
nop
nop
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
ret
;******************************
reset_ROM:
lap_reset_ROM:
setb clock_ROM
nop
nop
Trang 14nop
nop
nop
nop
nop
nop
djnz b,lap_reset_ROM
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""
lap_delay_giua_khi_ghi:
djnz r4,lap_delay_giua_khi_ghi
ret
;%%%%%%%%%%%%%%%%%%%%%%%%%%
goi_dia_chi:
lcall reset_ROM
lcall delay_giua_khi_ghi
clr co_ghi_doc_ROM ;lenh ghi RAM noi tiep
mov a,dia_chi_IC
lcall ghi_byte
mov a,dia_chi_ROM ;dia chi vung nho
lcall ghi_byte
ret
;******************************************************
;=================================================
;******************************************************
end