Ứ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ợ
Nhự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
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
;
org 0000h
ljmp reset
org 000bh
ljmp time0
org 0030h
reset:
mov dia_chi_song_mang2,#0 ;xoa bo dem dia
chi
mov a,data_song_mang1
swap a ;quay 4 bit data cao
xuong thap
orl a,#0f0h ;tre 4 bit cao
mov p1,a ;hien thi data
jmp main
;==========================================================
=======
;**********************************************************
********************
;==========================================================
=======
cai_dia_chi:
setb ie.7
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
mov 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
clr ie.7
do_cot:
clr co_dong_bo
mov r0,#8
lap_thu_dia_chi:
mov a,dia_chi_song_mang1
lcall ghi_byte
mov a,dia_chi_song_mang2
lcall ghi_byte
mov a,time_delay
lcall ghi_byte
lcall stop
setb ie.7
ret
;
doc_cot:
clr ie.7
mov dia_chi_IC,#0a0h
mov dia_chi_ROM,#0
lcall goi_dia_chi
lcall start
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 ACK
lcall doc_byte
mov dia_chi_song_mang2,a
lcall ACK
lcall doc_byte
mov time_delay,a
mov r3,#12
clr co_dong_bo
lap_thu_song_mang:
jb co_dong_bo,loi_doc_song_mang
lcall do_bit
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
mov r0,#23
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
thoat_text_dong_bo:
ret
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
mov b,#5
lap_do_bit1:
lcall delay_34us
djnz b,lap_do_bit1
jnb data_thu,xungkhong
add a,#70h
jb data_thu,$
jmp thoat_do_bit
xungkhong:
add a,#10h
thoat_do_bit:
ret
;
doi_bit:
cjne a,#11h,bit_1 ;neu la bit 1
mov a,data_song_mang1
clr c
rrc a
mov data_song_mang1,a
mov a,data_song_mang2
clr c
rrc a
mov data_song_mang2,a
bit_dong_bo:
setb co_dong_bo
ret
;
delay_34us:
mov 2ah,time_delay
djnz 2ah,$
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""
start:
setb data_ROM
nop
nop
setb clock_ROM
nop
nop
clr data_ROM
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
clr clock_ROM
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
clr clock_ROM
djnz b, ghi
setb data_ROM
nop
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
clr clock_ROM
nop
nop
clr data_ROM
nop
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
clr clock_ROM
nop
nop
ret
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
NAK:
nop
nop
setb data_ROM
nop
nop
nop
nop
setb clock_ROM
nop
nop
djnz r3,$
djnz r4,lap_delay_giua_khi_ghi
ret
;%%%%%%%%%%%%%%%%%%%%%%%%%%
goi_dia_chi:
lcall reset_ROM
lcall delay_giua_khi_ghi
lcall start
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