;Initilization $ NOMOD51 $ INCLUDE (REG515.inc) PUBLIC RPMINCREASE1, RPMINCREASE2 EXTRN DATA(CONTSIG1, CONTSIG2, COUNT, ADDSAVE1, ADDSAVE2) EXTRN CODE(WAIT, ADCIN, LCDOUT, HEXTOA) ;EXTRN BIT() RPMINC SEGMENT CODE RSEG RPMINC USING 0 ;*******************MOTOR1******************************************** RPMINCREASE1: ;RPMINCREASE FUNCTION CHECKS TO SEE IF THE ; PWM COMPLEMENT POINT IS IN THE SPECIFIED ; BOUND OF 63535-65535. IT THEN SUBTRACTS ; 1 FROM SAVED VALUES OF TL0SAVE & TH0SAVE ; THUS INCREASING THE PWM DUTY CYCLE DEADSPACECHECK1: MOV A,#255 SUBB A,CCH1 JNC NODEADSPACE1 MOV A,#255 MOV CCH1,A NODEADSPACE1: CLR C MOV A,CCH1 SUBB A,#0F9H ;CHECK CCH1 BOUND JZ RPMINCREASEUPPER1 ;IF OUT OF BOUND, CHECK TL0SAVE LJMP NOBOUNDINC1 ;NOT OUT OF BOUND SO EXIT RPMINCREASEUPPER1: CLR C MOV A,CCL1 ;CHECK CCL1 BOUND SUBB A,#40 JNC NOBOUNDINC1 ;IF OUT OF BOUND EXIT RET NOBOUNDINC1: ;IF IN BOUNDS, ADD 1 TO TL0SAVE CLR C MOV A,CONTSIG1 ;SAVE VALUE FROM AD FUNCTION SUBB A,ADDSAVE1 ;TEST TO SEE IF MEASURED VALUE SUBB A,#40 JNC ADD20_1 CLR C MOV A,CONTSIG1 ;SAVE VALUE FROM AD FUNCTION SUBB A,ADDSAVE1 ;TEST TO SEE IF MEASURED VALUE SUBB A,#20 JNC ADD3_1 CLR C MOV A,CONTSIG1 ;SAVE VALUE FROM AD FUNCTION SUBB A,ADDSAVE1 ;TEST TO SEE IF MEASURED VALUE SUBB A,#2 JNC ADD1_1 RET ADD1_1: ;increment PWM complement point by 1 CLR C MOV A,CCL1 SUBB A,#5 MOV CCL1,A MOV A,CCH1 SUBB A,#0 MOV CCH1,A RET ADD20_1: ;increment PWM complement point by 20 MOV A,CCH1 SUBB A,#0F9H ;CHECK CCH1 BOUND JZ ADD3_1 MOV A,CCL1 SUBB A,#50 MOV CCL1,A MOV A,CCH1 SUBB A,#0 MOV CCH1,A RET ADD3_1: ;increment PWM complement point by 3; CLR C MOV A,CCL1 SUBB A,#10 MOV CCL1,A MOV A,CCH1 SUBB A,#0 MOV CCH1,A RET FULLPOWER1: MOV A,#0F9H MOV CCH1,A MOV A,#00 MOV CCL1,A RET ;*******************MOTOR2********************************************* RPMINCREASE2: ;RPMINCREASE FUNCTION CHECKS TO SEE IF THE ; PWM COMPLEMENT POINT IS IN THE SPECIFIED ; BOUND OF 63535-65535. IT THEN SUBTRACTS ; 1 FROM SAVED VALUES OF TL0SAVE & TH0SAVE ; THUS INCREASING THE PWM DUTY CYCLE DEADSPACECHECK2: MOV A,#255 SUBB A,CCH2 JNC NODEADSPACE2 MOV A,#255 MOV CCH2,A NODEADSPACE2: CLR C MOV A,CCH2 SUBB A,#0F9H ;CHECK CCH1 BOUND JZ RPMINCREASEUPPER2 ;IF OUT OF BOUND, CHECK TL0SAVE LJMP NOBOUNDINC2 ;NOT OUT OF BOUND SO EXIT RPMINCREASEUPPER2: CLR C MOV A,CCL2 ;CHECK CCL1 BOUND SUBB A,#40 JC EXIT2_2 ;IF OUT OF BOUND EXIT NOBOUNDINC2: ;IF IN BOUNDS, ADD 1 TO TL0SAVE CLR C MOV A,CONTSIG2 ;SAVE VALUE FROM AD FUNCTION SUBB A,ADDSAVE2 ;TEST TO SEE IF MEASURED VALUE SUBB A,#40 JNC ADD20_2 CLR C MOV A,CONTSIG2 ;SAVE VALUE FROM AD FUNCTION SUBB A,ADDSAVE2 ;TEST TO SEE IF MEASURED VALUE SUBB A,#20 JNC ADD3_2 CLR C MOV A,CONTSIG2 ;SAVE VALUE FROM AD FUNCTION SUBB A,ADDSAVE2 ;TEST TO SEE IF MEASURED VALUE SUBB A,#2 JNC ADD1_2 RET EXIT2_2: RET ;EXIT FUNCTION ADD1_2: ;increment PWM complement point by 1 CLR C MOV A,CCL2 SUBB A,#5 MOV CCL2,A MOV A,CCH2 SUBB A,#0 MOV CCH2,A RET ADD20_2: ;increment PWM complement point by 20 CLR C MOV A,CCH2 SUBB A,#0F9H ;CHECK CCH2 BOUND JZ ADD3_2 MOV A,CCL2 SUBB A,#50 MOV CCL2,A MOV A,CCH2 SUBB A,#0 MOV CCH2,A RET ADD3_2: ;increment PWM complement point by 3; CLR C MOV A,CCL2 SUBB A,#10 MOV CCL2,A MOV A,CCH2 SUBB A,#0 MOV CCH2,A RET FULLPOWER2: MOV A,#0F9H MOV CCH2,A MOV A,#00 MOV CCL2,A RET END