;Initilization $ NOMOD51 $ INCLUDE (REG515.inc) ;********************************************* EXTRN CODE (DLAYA,TMR0_SRV, LCDINIT, KBDINIT, WAIT, KEYPAD) STARD EQU 8000h PUBLIC DISPFLAG, CONTSIG1TMP,CONTSIG2TMP,CONTSIG1, CONTSIG2, COUNT, ADDSAVE1, ADDSAVE2 PUBLIC GO_MOVE_HIGH, GO_MOVE_LOW, MOVE_HIGH_MEASURE,MOVE_LOW_MEASURE PUBLIC TURN_1, TURN_180, TURN_1_MEASURE, TURN_180_MEASURE, KEYPAD_FLAG, KEYCOUNT, CHECK180 ;********************************************* IRAM SEGMENT DATA ;SEGMENT FOR DATA RAM RSEG IRAM CONTSIG1: DS 1 CONTSIG2: DS 1 CONTSIG1TMP: DS 1 CONTSIG2TMP: DS 1 COUNT: DS 1 DISPFLAG: DS 1 ADDSAVE1: DS 1 ADDSAVE2: DS 1 GO_MOVE_HIGH: DS 1 GO_MOVE_LOW: DS 1 MOVE_HIGH_MEASURE: DS 1 MOVE_LOW_MEASURE: DS 1 TURN_1: DS 1 TURN_180: DS 1 TURN_1_MEASURE: DS 1 TURN_180_MEASURE: DS 1 KEYPAD_FLAG: DS 1 KEYCOUNT: DS 1 CHECK180: DS 1 ;********************************************* ;INTERRUPT JUMP LOCATIONS CSEG AT STARD ;JUMP TO MAIN LOOP LJMP INITFUNCTION ;JUMP TO MAIN LOOP CSEG AT STARD+0BH LJMP TMR0_SRV CSEG AT STARD+13H LJMP KEYPAD ;********************************************* STARTUP SEGMENT CODE RSEG STARTUP USING 0 INITFUNCTION: CLR P1.1 ;STOP VEHICLE FROM MOVING ON STARTUP CLR P1.2 MOV SP,#70H CLR P5.1 ;CLR P5.0 ;SET MEMORY LCALL LCDINIT ;INITIALIZE DISPLAY LCALL KBDINIT ;INITIALIZE KEYPAD SETFLAGS: MOV A,#0 MOV DISPFLAG,A MOV A,#5 MOV COUNT,A MOV A,#0 MOV CONTSIG1,A MOV CONTSIG2,A TIMER0SETUP: MOV A,TMOD ANL A,#0F0H ADD A,#01H ;TIMER 0 MODE 1 MOV TMOD,A MOV TL0,#00 MOV TH0,#240 SETB TR0 SETB EAL SETB ET0 TIMER2INIT: mov T2CON,#11h mov CCEN,#10101000b mov CRCH,#0F9h ;SET PWM PERIOD mov CRCL,#000h mov CCH1,#0FEh ;TIMER CHANNEL 1 PWM1/MOTOR1 mov CCL1,#0CDh mov CCH2,#0FEh ;TIMER CHANNEL 2 PWM2/MOTOR2 mov CCL2,#0CDh mov CCH3,#0FEh ;TIMER CHANNEL 3 PWM3/BRAKE mov CCL3,#0CDh CLEAR_CPLD: CLR P4.0 ;CLEAR CPLD LCALL DLAYA LCALL DLAYA SETB P4.0 LJMP WAIT END