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

  • #16
    Nguyên văn bởi FXR Xem bài viết
    ý 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.
    ko biết bác đọc code ASM hiểu ko chứ thay vì khi có timer tràn thì vào giải mã,thì ở đây ta dùng ngắt ngoài.Còn C e chịu.
    ĐT: 0972 20 58 68
    Gmail:

    Comment


    • #17
      Cái này mình chưa rõ cái thuật toán kiếm tra địa chỉ nó như thế nào nữa. bác nào biết chỉ dẫn giúp em với.

      Comment


      • #18
        Nguyên văn bởi FXR Xem bài viết
        Cái này mình chưa rõ cái thuật toán kiếm tra địa chỉ nó như thế nào nữa. bác nào biết chỉ dẫn giúp em với.
        Đọc kỹ datasheet của PT2272 bản V3.6 có nói rõ rồi !
        Module RF chuyên dụng điều khiển, truyền dữ liệu, thiết kế đề tài, dự án điện tử - chuyển giao công nghệ... ĐT: 0904964977 - email: dientuqueduong@yahoo.com

        Comment


        • #19
          Đọc kĩ datasheet của pt2260 http://www.spelektroniikka.fi/kuvat/PT2260.pdf,phần code bit có nói rất chi tiết

          Comment


          • #20
            cac bac oi sao em dịch fi hex báo lỗi 40 reset vay?

            Comment


            • #21
              cho em hỏi chút nữa câu hỏi hơi ngu 1 tý. Em đọc được 1 số forum thấy tính cái chu kỳ anpha=R/12 nhưng trong datasheet nó lại ghiClick image for larger version

Name:	2013-08-10_102630.png
Views:	1
Size:	9.5 KB
ID:	1383304
              Bác nào làm rồi cho em hỏi cái thằng chu kỳ anpha ấy công thức nó như thế nào ạ.

              Comment


              • #22
                Nguyên văn bởi dangdung Xem bài viết
                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
                Bạn cho mình xin cái sơ đồ với cái thuật toán luôn với. mail của mình: minhquang09c4a@gmail.com

                Comment


                • #23
                  Nguyên văn bởi dangdung Xem bài viết
                  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
                  anh có code C không ạ
                  anh chia sẻ với mọi người dc không
                  em cảm ơn !

                  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