做它的目的是提示廁所內有人 不用走近后才被里面的人提示 其他人在遠處看到裝在外面的燈亮了就知道里面有人 紅外接收頭遮擋后重新接收到38khz信號會有一個低脈沖 通過判斷兩個接收頭遮擋的先后順序判斷進出 按鍵可以切換進出判斷
缺點是發射的38khz信號里不含有加密數據 接收端沒有解碼判斷 容易受到太陽光干擾造成進出不亮不滅
進去時蜂鳴器響一聲 出來響兩聲 如果受到太陽光干擾就沿著進或出的方向靠近接收端揮手就能開燈或關燈 燈開啟后延時七八分鐘自動熄滅
制作出來的實物圖如下:
51hei截圖20200506151758.jpg (53.72 KB, 下載次數: 37)
下載附件
2020-5-6 15:46 上傳
電路原理圖如下:
51hei截圖20200506151610.jpg (94.71 KB, 下載次數: 51)
下載附件
2020-5-6 15:46 上傳
51hei截圖20200506151747.jpg (104.75 KB, 下載次數: 38)
下載附件
2020-5-6 15:46 上傳
51hei截圖20200506151639.jpg (73.91 KB, 下載次數: 51)
下載附件
2020-5-6 15:46 上傳
單片機源程序如下:
發射38khz方波
;12MHZ
ORG 0000H
SJMP STA
ORG 000BH
LJMP T0ISR
ORG 0030H
STA:
; MOV TMOD,#02H ;AT89C2051 12MHZ
; MOV TL0,#0B2H;#064H ;
; MOV TH0,#0FFH;#0FFH ;
; SETB TR0
; SETB ET0
; SETB EA
; SJMP $
MOV TMOD,#00010010B ;STC15F104W 12MHZ
MOV TH0,#0F4H
MOV TL0,#0F4H
SETB ET1
SETB ET0
SETB EA
SETB TR1
SETB TR0
SJMP $
T0ISR:
CPL P3.4
CPL P3.5
RETI
END
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
接收
;12MHZ
SETB P3.3;IN1 紅外接收頭輸入端
SETB P3.4;IN2 紅外接收頭輸入端
SETB P3.5;LED 遮擋、延時指示
CLR P3.1;OUT 輸出控制電器
SETB P3.0;蜂鳴器
SETB P3.2;切換 A<=>B
X EQU 04H;切換標志位
SETB X
LCALL DELAY;
LCALL DELAY;
CLR P3.0;蜂鳴器
MOV 60H,#00
MOV 61H,#00
MOV 62H,#00
MOV 63H,#00 ;自動熄滅延時
MAIN1: MOV 66H,#00
MOV 67H,#00
MOV 68H,#00
SETB P3.5;LED 遮擋、延時指示
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
LCALL DELAY;
MAIN0: JNB P3.4,KK111; IN1; 關燈
JNB P3.3,KK222; IN2 開燈
JNB P3.2,QIEHUAN;切換 A<=>B
DJNZ 62H,MAIN0
DJNZ 61H,MAIN0
DJNZ 60H,MAIN0
DJNZ 63H,MAI ;自動熄滅延時
CLR P3.1; OUT 輸出關閉
MAIN: JNB P3.4,KK111; IN1; 關燈
JNB P3.3,KK222; IN2 開燈
JNB P3.2,QIEHUAN;切換 A<=>B
LJMP MAIN;
MAI: MOV 60H,#240
MOV 61H,#240
MOV 62H,#240
LJMP MAIN0;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
QIEHUAN:LCALL DELAY;
LCALL DELAY;
JNB P3.2,MAIN;
CPL X;
SETB P3.0;蜂鳴器
JNB P3.2,$
LCALL DELAY;
CLR P3.0;蜂鳴器
LJMP MAIN1
////////////////////////////////////
KK111: MOV 66H,#50
MOV 67H,#240
MOV 68H,#240
CLR P3.5;LED 遮擋、延時指示
RLA: JB P3.3,RLL; IN2
JNB X,QH1;切換 A<=>B
QH2: CLR P3.1; OUT 輸出關閉
SETB P3.0;蜂鳴器
LCALL DELAY;
CLR P3.0;蜂鳴器
LCALL DELAY;
SETB P3.0;蜂鳴器
LCALL DELAY;
CLR P3.0;蜂鳴器
LJMP MAIN1;
////////////////////////////////////////////
RLL: DJNZ 68H,RLA
DJNZ 67H,RLA
DJNZ 66H,RLA
LJMP MAIN1;
////////////////////////////////////
KK222: MOV 66H,#50
MOV 67H,#240
MOV 68H,#240
CLR P3.5; LED 遮擋、延時指示
RRA: JB P3.4,RRR; IN1
JNB X,QH2;切換 A<=>B
QH1: SETB P3.1; OUT 輸出開啟
SETB P3.0;蜂鳴器
LCALL DELAY;
CLR P3.0;蜂鳴器
MOV 60H,#240
MOV 61H,#240
MOV 62H,#240
MOV 63H,#20
LJMP MAIN1;
///////////////////////////////////////
RRR: DJNZ 68H,RRA
DJNZ 67H,RRA
DJNZ 66H,RRA
LJMP MAIN1;
////////////////////////////////////////
;秒延時子程序
DELAY: MOV R4,#5;10
MOV R5,#248;248
MOV R6,#248;
D10: DJNZ R6,D10;
DJNZ R5,D10;$
DJNZ R4,D10
RET
END;
|