Eee 4705 Report
Eee 4705 Report
START_COUNT:
EXIT_EMERGENCY_MSG: SJMP
MOV DPTR,#MSG2 EXIT_EMERGENCY_MSG
CLR A
MOV A, #01 ;clear LCD ;--------------------------------------------
ACALL COMNWRT ;call SUBROUTINES--------------------------------
command subroutine ------------------------;
LCD_COUNT_MSG: CLR A COMNWRT: LCALL READY ;send
MOVC A,@A+DPTR command to LCD
JZ EXIT_COUNT_MSG MOV P1, A ;copy reg A to port 1
LCALL DATAWRT CLR RS ;RS=0 for command
LCALL DELAY CLR RW ;R/W=0 for write
INC DPTR SETB E ;E-1 for high pulse
SJMP ACALL DELAY ;give LCD some time
LCD_COUNT_MSG CLR E ;E=0 for H-to-L pulse
RET
EXIT_COUNT_MSG:
DATAWRT: LCALL READY ;write data
CLR LED_PORT to LCD
SETB BUZZ MOV P1, A ;copy reg A to port1
SJMP EXIT_COUNT_MSG SETB RS ;RS=1 for data
CLR RW ;R/W=0 for write
;-------------------------------------------- SETB E ;E=1 for high pulse
;ACALL DELAY ;give LCD SETB P0.3
some time CLR P0.5
CLR E ;E=0 for H-to-L pulse MOV A,R2
RET MOVC A,@A+DPTR
MOV SEG7_OUTPUT,A
READY: SETB P1.7 ACALL DELAY1
CLR RS ACALL DELAY
SETB RW
WAIT: CLR E
LCALL DELAY SETB P0.5
SETB E SETB P0.3
JB P1.7, WAIT CLR P0.4
RET MOV A,R3
MOVC A,@A+DPTR
DELAY: SETB PSW.3 MOV SEG7_OUTPUT,A
SETB PSW.4 ACALL DELAY1
MOV R3, #30 ;50 or higher for fast ACALL DELAY
CPUs
H1: MOV R4, #255 ;R4=255 SETB P0.4
H2: DJNZ R4, H2 ;stay untill R4 SETB P0.5
becomes 0 CLR P0.3
DJNZ R3, H1 MOV A,R4
CLR PSW.3 MOVC A,@A+DPTR
CLR PSW.4 MOV SEG7_OUTPUT,A
RET ACALL DELAY1
ACALL DELAY
;CREATING 1ms DELAY:
DELAY1: SETB PSW.3 DJNZ R6,LOOP
SETB PSW.4
MOV R3, #4 RET
H3: MOV R4, #132
H4: DJNZ R4, H4 ;stay untill R4 CHECK_20_MSG:
becomes 0 CLR C
DJNZ R3, H3 CJNE
CLR PSW.3 R5,#20,RAND_MSG_CHECK
CLR PSW.4 MOV R6,MSG_CNT
RET INC R6
SJMP PRINT_MSG
SEG7_DISP_FUNC:
MOV R6,#20 RAND_MSG_CHECK:
LOOP: JC LESS_20
MOV R5,#0
MOV SJMP FINISH
DPTR,#DIGIT_DRIVE_PATTERN
SETB P0.4
LESS_20: SJMP FINISH FINISH:
MOV MSG_CNT,R6
RET
;------------------------------------------------
PRINT_MSG: LOOK UP
TABLE-------------------------------------------
CJNE R6,#01,NEXT_ONE -------;
SJMP PRINT_1 ;ASCII LOOK-UP TABLE FOR EACH
ROW
KCODE0: DB '6','7','8','9' ;ROW 0
NEXT_ONE: KCODE1: DB '2','3','4','5' ;ROW 1
KCODE2: DB 'C','S','0','1' ;ROW 2
PRINT_1:
DIGIT_DRIVE_PATTERN: DB 3FH,
MOV R5,#0 06H,5BH, 4FH, 66H, 6DH, 7DH, 07H,
MOV DPTR,#MSG5 7FH, 6FH
CLR A
MOV A, #01 ;clear LCD MSG1: DB 'INPUT TIME: ',0
ACALL COMNWRT ;call FACT: DB 'GREATER THAN 60s',0
command subroutine MSG5: DB 'HUMANS EAT',0
PMSG5: CLR A MSG2: DB 'DONE-COOKING!!',0
MOVC A,@A+DPTR MSG3: DB 'LESS THAN 60s',0
JZ EXIT_PMSG5 MSG4: DB 'EMERGENCY STOP!',0
LCALL DATAWRT END
LCALL DELAY
INC DPTR
SJMP PMSG5