Define ADC_BITS 10 Define ADC_CLOCK 3 Define ADC_SAMPLEUS 50 TRISA = %00000011 ADCON1 = %11000010 TRISB = $00 TRISC = $0F Segments Var PORTB Digits Var PORTC advv VAR WORD adva VAR WORD indic VAR WORD n Var Byte x Var Byte i Var Byte vid Var Byte Bk2 Var Byte Bk3 var byte Bk4 var byte Bk5 var byte Bk6 var byte BN Var Byte B0 Var Bit count_remain VAR BYTE count_per_c VAR BYTE maximum var word minimum var word rc0 var portc.0 rc1 var portc.1 pause 150 lop: if advv*4=0 then gosub test3 if advv*4 >0 then gosub test2 if advv*4 >=maximum then gosub test1 GoSub key: Branchl BN, [volt, maxx, minn] GoTo lop volt: ADCIN 0, advv advv = ((advv + 1) */ 500) >> 2 indic = advv * 4 GoTo loop1 loop1: GoSub display GoTo lop '******************************************************************** display: For i = 0 To 3 n = indic Dig i GoSub display1 Pause 1 x = i + 4 ; if x = 7 then Segments = vid if x = 5 then PORTB.7 = 0 Digits = Dcd x Next i Return '******************************************************************** display1: Digits = $00 Lookup n, [$C0, $F9, $A4, $B0, $99, $92, $82, $F8, $80, $90, $BF, $FF ], Segments ' ??????? 0 1 2 3 4 5 6 7 8 9 - off Return '******************************************************************** maxx: 'vid = $dc indic = maximum Bk3 = 0 Button rc0, 0, 255, 30, Bk3, 0, k11 maximum = maximum + 1 if maximum=2001 then maximum=2000 k11: Bk4 = 0 Button rc1, 0, 255, 30, Bk4, 0, k22 maximum = maximum - 1 if maximum = 0 then maximum = 1 k22: goto loop1 minn: 'vid = $e3 indic = minimum 'Bk5 = 0 'Button rc0, 0, 255, 30, Bk5, 0, k33 minimum = maximum - 150 if minimum =2001 then minimum = 2000 if minimum >= 5386 then minimum = 0 k33: 'Bk6 = 0 'Button rc1, 0, 255, 30, Bk6, 0, k44 'minimum = minimum - 1 'if minimum = 0 then minimum = 1 k44: goto loop1 test1: low porta.3 return test2: if advv*4 <=minimum then high porta.3 return test3: if advv*4 = 0 then low porta.3 return ;return '**************************************************************** key: Bk2 = 0 Button portC.3, 0, 255, 10, Bk2, 0, k1 if B0 = 1 then k2 BN = BN + 1 if BN = 3 then BN = 0 B0 = 1 k2: return k1: B0 = 0 return '============================================================================== end