có vấn đề muốn thắc mắc muốn hỏi các bác, ai giúp mình với, mình mô tả bệnh của nó nhé. mình kết nối chân data của nó trực tiếp vào chân p3.2 của 89c2051 có trở 10k treo lên Vcc, chân 2 nối Gnd, chân 3 lên Vcc. mình lập trình theo kiểu này
mục đích để giải mã các loại điều khiển, tức là chỉ cần có sóng hồng ngoại của điều khiển là nó nhận tín hiệu sau đó cho trễ 1s rồi đảo trạng thái 1 led. Nhưng vấn đề không hiểu sao mình cắm trên test board thì tín hiệu trên led cứ sau 1 s lại đảo mà chưa có sóng. khi không kết nối chân p3.2 thì không sao. mình nghĩ con mắt nhận bị hỏng nhưng thay con khác vẫn vậy, mình đo thì chân data của mắt nhận là 2.2v mà không biết khắc phục lỗi này như thế nào. các bạn ai gặp trường hợp này rồi khắc phục giúp mình với.
Code:
#include <sfr51.inc> org 00h ljmp main org 40h main: lcall delay setb p3.2 setb p3.3 setb p1.0 setb p3.7 lcall delay lengo1: jnb p3.3,lengo_1 jb p3.2,lengo1 lcall lap lengo_1: lcall delay clr p3.7 setb p1.0 lengo2: jnb p3.3,lengo_2 jb p3.2,lengo2 lcall lap lengo_2: lcall delay setb p3.7 clr p1.0 lcall delay lengo3: jnb p3.3,lengo_3 jb p3.2,lengo3 lcall lap lengo_3: lcall delay clr p3.7 clr p1.0 lcall delay lengo4: jnb p3.3,lengo_4 jb p3.2,lengo4 lcall lap lengo_4: ljmp main lap: mov r0,#5 lap_1: jnb p3.2,$ jb p3.2,$ djnz r0,lap_1 ret delay: mov r1,#5 loop1: mov r2,#100 loop2: mov r3,#100 loop3: nop nop nop nop nop nop nop nop djnz r3,loop3 djnz r2,loop2 djnz r1,loop1 ret end
Comment