;Initilization $ NOMOD51 $ INCLUDE (REG515.inc) PUBLIC WAIT EXTRN DATA(TURN_1, TURN_180, KEYPAD_FLAG, DISPFLAG, CONTSIG1, CONTSIG2, COUNT, ADDSAVE1, ADDSAVE2, GO_MOVE_HIGH, GO_MOVE_LOW) EXTRN CODE(DISPLAY_LEFT, DISPLAY_RIGHT,DISPLAY_STATUS,DISPLAY_FORWARD,DISPLAY_BACKWARD, DLAYA, TURN_LEFT, TURN_RIGHT, FORWARD, BACKWARD,DLAYZ,ADCIN, LCDOUT, HEXTOA, RPMINCREASE1, RPMINCREASE2, RPMDECREASE1, RPMDECREASE2) ;EXTRN BIT() MAIN SEGMENT CODE RSEG MAIN USING 0 WAIT: LCALL DISPLAY_STATUS MOV A,KEYPAD_FLAG CJNE A,#0FFH,KEY0 LJMP WAIT KEY0: CJNE A,#0,KEY1 LJMP WAIT KEY1: CJNE A,#1,KEY2 MOV A,#0FFH MOV KEYPAD_FLAG,A CLR P4.0 SETB P4.0 MOV A,#0 MOV TURN_1,A MOV A,#2 MOV TURN_180,A LCALL TURN_LEFT LJMP WAIT KEY2: CJNE A,#2,KEY3 LJMP PROG_FORWARD KEY3: CJNE A,#3,KEY4 MOV A,#0FFH MOV KEYPAD_FLAG,A CLR P4.0 SETB P4.0 MOV A,#0 MOV TURN_1,A MOV A,#2 MOV TURN_180,A LCALL TURN_RIGHT LJMP WAIT KEY4: CJNE A,#4,KEY5 LJMP PROG_LEFT LJMP WAIT KEY5: CJNE A,#5,KEY6 LJMP WAIT KEY6: CJNE A,#6,KEY7 LJMP PROG_RIGHT LJMP WAIT KEY7: CJNE A,#7,KEY8 LJMP TEST1PROG KEY8: CJNE A,#8,KEY9 LJMP PROG_BACKWARD LJMP WAIT KEY9: CJNE A,#9,KEYA LJMP WAIT KEYA: CJNE A,#0AH,KEYB LJMP WAIT KEYB: CJNE A,#0BH,KEYC LJMP TEST2PROG KEYC: CJNE A,#0CH,KEYD LJMP WAIT KEYD: CJNE A,#0DH,KEYE LJMP WAIT KEYE: CJNE A,#0EH,KEYF LJMP WAIT KEYF: CJNE A,#0FH,NOKEY LJMP TEST1PROG NOKEY: LJMP WAIT PROG_FORWARD: LCALL DISPLAY_FORWARD LJMP WAIT PROG_BACKWARD: LCALL DISPLAY_BACKWARD LJMP WAIT PROG_RIGHT: LCALL DISPLAY_RIGHT LJMP WAIT PROG_LEFT: LCALL DISPLAY_LEFT LJMP WAIT TEST1PROG: MOV A,KEYPAD_FLAG CJNE A,#07,EXITT1 MOV A,#0FFH MOV KEYPAD_FLAG,A MOV A,#0 MOV GO_MOVE_HIGH,A MOV A,#50 MOV GO_MOVE_LOW,A LCALL FORWARD MOV A,#0 MOV TURN_180,A MOV A,#90 MOV TURN_1,A LCALL TURN_RIGHT MOV GO_MOVE_HIGH,A MOV A,#50 MOV GO_MOVE_LOW,A LCALL FORWARD MOV A,#0 MOV TURN_180,A MOV A,#90 MOV TURN_1,A LCALL TURN_RIGHT MOV GO_MOVE_HIGH,A MOV A,#50 MOV GO_MOVE_LOW,A LCALL FORWARD MOV A,#0 MOV TURN_180,A MOV A,#90 MOV TURN_1,A LCALL TURN_RIGHT MOV GO_MOVE_HIGH,A MOV A,#50 MOV GO_MOVE_LOW,A LCALL FORWARD MOV A,#0 MOV TURN_180,A MOV A,#90 MOV TURN_1,A LCALL TURN_RIGHT EXITT1: LJMP WAIT TEST2PROG: MOV A,KEYPAD_FLAG CJNE A,#0BH,EXITT1 MOV A,#0FFH MOV KEYPAD_FLAG,A MOV A,#0 MOV TURN_180,A MOV A,#90 MOV TURN_1,A CLR P4.0 LCALL DLAYZ SETB P4.0 LCALL TURN_LEFT EXITT2: LJMP WAIT END