Tải bản đầy đủ (.pdf) (14 trang)

Tài liệu Ứng dụng 89 về điều khiển bằng vô tuyến với PT2262 pdf

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (227.15 KB, 14 trang )

Ứ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



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
den_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

;
org 0000h
ljmp reset
org 000bh
ljmp time0
org 0030h
reset:

mov tmod,#11h ;time 0 16 bit, time 1 8 bit
mov th0,#high(-50000)
mov tl0,#low(-50000)

mov r7,#20 ;0,5s
setb tr0

clr 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
mov p1,#0f0h
setb co_chop_led ;bao dang cai remoter
mov time_delay,#1 ;duoc thay the cho dien tro RC
cua PT2272
mov r2,#5
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
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:

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
lcall luu_cot
mov p1,#0f0h ;bao set thanh
cong
jnb phim_set,$ ;tro nha phim set
setb ie.7
thoat_cai_dia_chi:
clr co_chop_led
mov p1,#0ffh
jmp not_cai_dia_chi
;

luu_cot:
clr ie.7
mov dia_chi_IC,#0a0h
mov dia_chi_ROM,#0
lcall goi_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

lcall NAK
lcall stop
setb ie.7
ret

;=================================================
;*****************************************************
;=================================================
time0:

mov th0,#high(-50000)
mov tl0,#low(-50000)
djnz r7,thoat_time_0
mov r7,#20 ;0,5s
jnb co_chop_led,thoat_time_0
cpl den_1
cpl den_2
cpl den_3
cpl den_4
thoat_time_0:
reti

;=================================================
;*****************************************************
;=================================================
doc_song_mang:
lcall text_xung_dong_bo
jnb co_dong_bo,thoat_doc_song_mang
clr ie.7
mov r0,#8

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

;
do_bit_cai:
mov 2eh,#8
mov 2dh,#1
jnb data_thu,$
do_xung_dong_bo:
lcall delay_34us
djnz 2dh,do_xung_dong_bo
mov 2dh,#2
mov c,data_thu
rrc a
djnz 2eh,do_xung_dong_bo
ret
;
do_bit:
jnb data_thu,$
mov b,#5
lap_do_bit:
lcall delay_34us
djnz b,lap_do_bit
jnb data_thu,xung_khong
mov a,#07h
jb data_thu,$
jmp tiep_do_bit
xung_khong:
mov a,#01h
tiep_do_bit:
mov b,#2
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
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

jmp du_byte
bit_1:
cjne a,#77h,bit_f
mov a,data_song_mang1
setb c
rrc a
mov data_song_mang1,a
mov a,data_song_mang2
setb c
rrc a
mov data_song_mang2,a
jmp du_byte
bit_f:
cjne a,#71h,bit_dong_bo
mov a,data_song_mang1
clr c
rrc a
mov data_song_mang1,a
mov a,data_song_mang2
setb c
rrc a
mov data_song_mang2,a
du_byte:
djnz r0,thoat_doi_bit
mov dia_chi_song_mang1,data_song_mang1
mov dia_chi_song_mang2,data_song_mang2
mov data_song_mang1,#0
mov r0,#8
thoat_doi_bit:
ret

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
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""
stop:
clr data_ROM
nop
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
nop
nop
nop
nop
nop
nop
setb data_ROM
nop
nop
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""
ghi_byte:
mov b,#8
ghi:
rlc a
mov data_ROM, c

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

ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""""
doc_byte:
nop
nop
setb data_ROM
mov b,#8
doc:
nop
nop
nop
nop
nop
nop
setb clock_ROM
nop
nop
nop
nop
mov c,data_ROM
rlc a
clr clock_ROM
nop
nop
djnz b, doc
ret
;""""""""""""""""""""""""""""""""""""""""""""""""""""""""
ACK:
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

nop
nop
clr clock_ROM
nop
nop
nop
nop
ret
;******************************
reset_ROM:
mov b,#9
setb data_ROM
lap_reset_ROM:
setb clock_ROM
nop
nop
nop
nop
clr clock_ROM
nop
nop
nop
nop
djnz b,lap_reset_ROM
ret
;"""""""""""""""""""""""""""""""""""""""""""""""""""""""
delay_giua_khi_ghi: ;5 ms
mov r3,#0ffh
mov r4,#20
lap_delay_giua_khi_ghi:

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

×