;Initilization $ NOMOD51 $ INCLUDE (REG515.inc) PUBLIC TMR0_SRV EXTRN DATA(DISPFLAG, CONTSIG1, CONTSIG2, COUNT, ADDSAVE1, ADDSAVE2) EXTRN CODE(ADCIN, RPMINCREASE1, RPMINCREASE2, RPMDECREASE1, RPMDECREASE2) ;EXTRN BIT() TIMER SEGMENT CODE RSEG TIMER USING 0 TMR0_SRV: CPL P1.5 ;10 Hz OUTPUT TO CPLD (REFRESH HOLD SIGNAL) PUSH ACC PUSH B MOV A,R0 PUSH ACC MOV A,R1 PUSH ACC MOV A,R2 PUSH ACC MOV TL0,#00 MOV TH0,#15 ;50 mS INTERRUPT TIMER SETTING SETB TR0 GETAD: CLR C LCALL ADCIN ;GET AD VALUES FOR MOTOR 1 AND 2 MOV A,COUNT ;TEST FOR DISPLAY UPDATE COUNT SUBB A,#1 MOV COUNT,A ;COUNT FOR DISPLAY UPDATE JNZ GETAD1 MOV A,#1 MOV DISPFLAG,A GETAD1: CLR C MOV A,ADDSAVE1 SUBB A,CONTSIG1 ;TEST TO SEE IF MEASURED VALUE JC RPMINCREASEFUNCTION1 ;IS GREATER OR LESS THAN THE LJMP RPMDECREASEFUNCTION1 ;SPECIFIED CONTROL VALUE. GETAD2: CLR C MOV A,ADDSAVE2 SUBB A,CONTSIG2 ;TEST TO SEE IF MEASURED VALUE JC RPMINCREASEFUNCTION2 ; IS GREATER OR LESS THAN THE LJMP RPMDECREASEFUNCTION2 ; SPECIFIED CONTROL VALUE. RPMINCREASEFUNCTION1: LCALL RPMINCREASE1 LJMP GETAD2 RPMDECREASEFUNCTION1: LCALL RPMDECREASE1 LJMP GETAD2 RPMINCREASEFUNCTION2: LCALL RPMINCREASE2 POP ACC MOV R2,A POP ACC MOV R1,A POP ACC MOV R0,A POP B POP ACC CLR P1.4 CLR C RETI RPMDECREASEFUNCTION2: LCALL RPMDECREASE2 POP ACC MOV R2,A POP ACC MOV R1,A POP ACC MOV R0,A POP B POP ACC CLR C RETI END