인체감지모듈 NT0072를 사용해서 온도제어장치를 제어하려고 하는데요,,,,, 어떻게 해야될지 막막해서 올립니다
현재 설정된 온도보다 높으면 팬가동 설정된 온도보다 내려가면 팬가동(니크롬선사용하여 온풍)은 성공적으로 구현하였습니다.
온도가 표시되고>인체감지on/off를 따져 팬가동>온도에따른 팬가동>인체감지 on/off
이런식으로 할려고하는데요 인체감지모듈을 사용해서 on/off를 어떤식으로 프로그래밍해야될까요...
밑의 소스는 온도표시와 온도에따른 팬구동입니다. 27도보다 높아지면 냉풍 25도보다 낮아지면 온풍입니다.
ORG 00H ;
START:
CLR P3.2 ;
MOV DPTR,#TABLE
MOV P1,#00000010B
MOV A,#0EEH ;
CALL CMD_WRITE
CALL DELAY
MOV P1,#00000010B
MOV A,#0AAH ;
CALL CMD_WRITE
MOV R0,#08H ;
MOV R2,#00H
R_DATA:
CLR P1.1 ;
MOV A,P1
SETB P1.1 ;
ANL A, #00000001B
ORL A,R2
RR A
MOV R2,A
DJNZ R0,R_DATA
CLR P1.1 ;
MOV A,P1
SETB P1.1
ANL A,#00000001B
MOV R3,A
CJNE R3,#00H,MINUS ;
SETB P3.0 ;
MOV A,R2
MOV B,#2
DIV AB
MOV R1,A
INC R1
CALL SEARCH
MOV P2,A ;
MOV R1,A
MOV P0,#00000000B
MOV R0,#00100111B
CLR C
SUBB A,R0
JC FANOFF
SETB P0.0
FANOFF:
MOV A,R1
CLR C
MOV R0, #00100101B
SUBB A,R0
JNC FANOFF1
SETB P0.1
MOV A,B
CJNE A,#00H,NOT_ZERO ;
CLR P3.1 ;
FANOFF1:
JMP START
MINUS:
CLR P3.0 ;
MOV A,R2
CPL A ;
INC A
MOV B,#2
DIV AB
MOV R1,A
INC R1
CALL SEARCH
MOV P2,A ;
MOV A,B
CJNE A,#00H,NOT_ZERO ;
CLR P3.1
JMP START
NOT_ZERO:
SETB P3.1 ;
JMP START
SEARCH: CLR A ;
MOVC A,@A+DPTR
INC DPTR
DJNZ R1,SEARCH
RET
CMD_WRITE: ;
MOV R0,#08H
SETB P1.2 ;
LOOP:
RRC A
MOV P1.0,C
CLR P1.1 ;
NOP
SETB P1.1 ;
NOP
DJNZ R0,LOOP
RET
DELAY:
MOV R7,#02H
DLY11: MOV R6,#00H
DLY12: MOV R5,#00H
DLY13: NOP
DJNZ R5,DLY13
DJNZ R6,DLY12
DJNZ R7,DLY11
RET
TABLE: ;
DB 00H,01H,02H,03H,04H,05H,06H,07H,08H,09H
DB 10H,11H,12H,13H,14H,15H,16H,17H,18H,19H
DB 20H,21H,22H,23H,24H,25H,26H,27H,28H,29H
DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
DB 40H,41H,42H,43H,44H,45H,46H,47H,48H,49H
DB 50H,51H,52H,53H,54H,55H,56H,57H,58H,59H
DB 60H,61H,62H,63H,64H,65H,66H,67H,68H,69H
DB 70H,71H,72H,73H,74H,75H,76H,77H,78H,79H
DB 80H,81H,82H,83H,84H,85H,86H,87H,88H,89H
DB 90H,91H,92H,93H,94H,95H,96H,97H,98H,99H
END
여지껏 답변이 없는 이유가 있군요. 개발환경이 없네요. 즉, 각각의 포트 레이아웃이 없어 황당하며, 어떤 프로세서를 사용했는지(CPU종류), 어떠한 컴파일러를 이용하는 건지?