Thông báo

Collapse
No announcement yet.

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

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • Ứ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:

    đầ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
    lần sau mình sẽ dưa sơ đồ và code của một ứng dung bằng relay

    chúc các bạn thành công
    Last edited by dangdung; 08-08-2008, 08:47.
    Điện thoại:
    email:

  • #2
    mình định làm một bộ thu phát vô tuyến quy mô nhỏ thôi (khoảng 20m thôi),định làm cái remote cho cái xe cùi bắp của mình, bạn cho mình xin tài liệu về cái này nha.

    Comment


    • #3
      Nguyên văn bởi anh_tran Xem bài viết
      mình định làm một bộ thu phát vô tuyến quy mô nhỏ thôi (khoảng 20m thôi),định làm cái remote cho cái xe cùi bắp của mình, bạn cho mình xin tài liệu về cái này nha.
      thiết bị remoter phát sử dụng IC PT2262 tài liệu thì bạn vao google tìm là có liền à
      còn cách sử dụng thi luồng này bàn rất nhiều
      http://dientuvietnam.net/forums/showthread.php?t=609

      đề tài này giúp ai thích điều khiển từ xa một cáh linh hoạt
      giả sừ bạn làm 100 bộ báo trộm như bạn nói mà phải đi sét code cho tùng cặp thì quả là mất thời gian nếu chúng ta copy được code thì sẽ dễ dàng hơn nhiều và tiện khi bảo hành và phát triển

      nếu bạn đam mê báo trộn để mình soạn lại sơ đồ và code của một mạch báo trộm
      đơn giản để các bạn thấy được ứng dụng của đề tài này


      chúc bạn thành công
      Last edited by dangdung; 09-08-2008, 21:38.
      Điện thoại:
      email:

      Comment


      • #4
        E đang đinh làm đề tài điều khiển từ xa bằng vô tuyến sd VXL (chỉ dùng vxl và modul thu phát sóng vô tuyến, ko dùng pt2262, pt2272) mà gặp một số rắc rối ko giải quyết dc mong các anh giúo đỡ cho! Cụ thể là như thế này:
        - Nếu như mạch phát nhấn nút A thì bên thu nhận và xuất ra là A tương ứng trạng thái này giữ nguyên nếu như bên phát ko phát đi tín hiệu là tắt A đi. Với yêu cầu đó thì e đã làm dc! nhưng với yêu cầu Khi nhấn va giữ nút A bên phát thì bên thu nhận và xuất ra A tương ứng, khi nhả nút A bên phát đi thì bên thu phải tắt A đi (có thể mở rộng thêm nhiều nút khác). Nếu sử dụng thêm pt2262 và pt2272 thi như thế nào? Mong các a giúp đỡ, nếu có code asembly thi càng tốt. Cảm ơn rất nhiều!!

        Comment


        • #5
          Ồ, hay đấy,
          Không biết độ xa khoảng bao nhiêu nhỉ?
          GTH sản xuất mạch in PCB 1 mặt:
          -phủ xanh: 40.000 đ/dm2
          -không phủ xanh: 30.000 đ/dm2
          -Cung cấp mực cảm quang để làm mạch in
          email:

          Comment


          • #6
            Nguyên văn bởi ariancdcdt06 Xem bài viết
            E đang đinh làm đề tài điều khiển từ xa bằng vô tuyến sd VXL (chỉ dùng vxl và modul thu phát sóng vô tuyến, ko dùng pt2262, pt2272) mà gặp một số rắc rối ko giải quyết dc mong các anh giúo đỡ cho! Cụ thể là như thế này:
            - Nếu như mạch phát nhấn nút A thì bên thu nhận và xuất ra là A tương ứng trạng thái này giữ nguyên nếu như bên phát ko phát đi tín hiệu là tắt A đi. Với yêu cầu đó thì e đã làm dc! nhưng với yêu cầu Khi nhấn va giữ nút A bên phát thì bên thu nhận và xuất ra A tương ứng, khi nhả nút A bên phát đi thì bên thu phải tắt A đi (có thể mở rộng thêm nhiều nút khác). Nếu sử dụng thêm pt2262 và pt2272 thi như thế nào? Mong các a giúp đỡ, nếu có code asembly thi càng tốt. Cảm ơn rất nhiều!!
            Bạn làm với VDK nào vậy? co thể chia sẽ được không? nếu có code c thì tốt quá
            Cuộc đời như bánh omi, không biết rồi sẽ về đâu?

            Comment


            • #7
              Mấy bác cho hỏi Data thu p3.7 mình gắn j vào đó nhỉ, mới nghiên cứu vụ này nên hơi lúa, mấy bác chỉ giúp
              thanks
              Mạch nạp Pickit 2 SE ---> 170k BH 1 năm
              Pic 18F2550 PDIP Thailand bao test 60K/1c


              Comment


              • #8
                bác có thể chỉ cho em biết giải thuật nó thế nào được không ạ.

                Comment


                • #9
                  theo ngu kiến của em data thu ở đây là ăngten

                  Comment


                  • #10
                    data thu là tín hiệu out từ mạch thu của modul 315mhz đấy,chứ anten ko thì sao thu nổi.

                    đề tài này hay nhưng ko biết chủ thớt còn theo dõi ko?
                    ĐT: 0972 20 58 68
                    Gmail:

                    Comment


                    • #11
                      thực sự theart này khá hay nhưng mà không phải dễ, em đang phải dùng 89 thay cho con pt2272. Nếu dùng vi điều khiển để thay pt2272 thì chốt lại con vi điều khiển làm được mỗi 1 việc là giải mã.

                      Comment


                      • #12
                        Nguyên văn bởi FXR Xem bài viết
                        thực sự theart này khá hay nhưng mà không phải dễ, em đang phải dùng 89 thay cho con pt2272. Nếu dùng vi điều khiển để thay pt2272 thì chốt lại con vi điều khiển làm được mỗi 1 việc là giải mã.
                        thế thì dùng con 2272 ko rẽ hơn à bạn,đưa vào chân ngắt đc ko,khi có ngắt mới xử lí giải mã,bạn dùng ngôn ngữ gì vậy.
                        ĐT: 0972 20 58 68
                        Gmail:

                        Comment


                        • #13
                          Nguyên văn bởi hoangnam555 Xem bài viết
                          thế thì dùng con 2272 ko rẽ hơn à bạn,đưa vào chân ngắt đc ko,khi có ngắt mới xử lí giải mã,bạn dùng ngôn ngữ gì vậy.
                          sử dụng ngôn ngữ C cho phổ thông bạn ạ. Nếu dùng vi điều khiển có sẵn bộ eeprom rồi thì nhẹ nhàng hơn do không phải sử dụng giao tiếp với ic eeprom.
                          Bạn hoangnam có thể chỉ dẫn cho mình 1 chút về lưu đồ giải thuật được không.

                          Comment


                          • #14
                            Nguyên văn bởi FXR Xem bài viết
                            sử dụng ngôn ngữ C cho phổ thông bạn ạ. Nếu dùng vi điều khiển có sẵn bộ eeprom rồi thì nhẹ nhàng hơn do không phải sử dụng giao tiếp với ic eeprom.
                            Bạn hoangnam có thể chỉ dẫn cho mình 1 chút về lưu đồ giải thuật được không.
                            e đã làm đâu,nhưng ko biết c,chỉ biết ASM.
                            về cách thì bác làm bình thường,đưa vào chân ngắt,khi có ngắt thì vào đọc data,sau đó xử lý data rồi thoát ngắt,chương trình sẽ xử lí các việc còn lại.
                            Phải chi bác chủ còn thảo luận tiếp thì hay,vì dùng ASM mà.
                            ĐT: 0972 20 58 68
                            Gmail:

                            Comment


                            • #15
                              Nguyên văn bởi hoangnam555 Xem bài viết
                              e đã làm đâu,nhưng ko biết c,chỉ biết ASM.
                              về cách thì bác làm bình thường,đưa vào chân ngắt,khi có ngắt thì vào đọc data,sau đó xử lý data rồi thoát ngắt,chương trình sẽ xử lí các việc còn lại.
                              Phải chi bác chủ còn thảo luận tiếp thì hay,vì dùng ASM mà.
                              ý mình là thuật toán bắt được xung chứa địa chỉ, dữ liệu và xung đồng bộ ấy. theo mình thấy ở đây không sử dụng ngắt ngoài mà sử dụng có mỗi ngắt timer.

                              Comment

                              Về tác giả

                              Collapse

                              dangdung Tìm hiểu thêm về dangdung

                              Bài viết mới nhất

                              Collapse

                              Đang tải...
                              X