'-------------------------------------------------------------- ' 20051208 use til311 as bitx20 frequency display ' cp '-------------------------------------------------------------- $crystal = 15360000 $regfile = "m8def.dat" Dim Digit As Byte Dim Digval As Byte Dim Digtmp As Byte Dim Temp As Byte Dim Dispchar As String * 1 Dim Dispstr As String * 8 Dim Frmtstr As String * 8 Dim Timercounter As Word Dim Overflcounter As Word Dim Totalcounter As Long Dim Counttimectr As Long 'delay of app. 100msec Const Counttimeconst = 25586 'bfo frequency to add to vfo frequency measured Const Bfofrequency = 1023422 'setup timer1 to count external pulses Config Timer1 = Counter , Edge = Rising 'setup T1 pin as input 'Config Pind.5 = Input 'setup four lower digit til311 latch pins Config Portd.0 = Output Config Portd.1 = Output Config Portd.2 = Output Config Portd.3 = Output 'setup four upper digit til311 latch pins Config Portc.0 = Output Config Portc.1 = Output Config Portc.2 = Output Config Portc.3 = Output 'setup four lower port pins for hex nibble output Config Portb.0 = Output Config Portb.1 = Output Config Portb.2 = Output Config Portb.3 = Output 'setup led pin Declare Sub Dispvalue(dispval As Long) Declare Sub Testdigits On Counter1 Uphigh Timercounter = 0 Enable Interrupts Enable Counter1 Call Testdigits Main: Do Counter1 = 0 Overflcounter = 0 'start the counter Start Counter1 'wait 100msec For Counttimectr = 0 To Counttimeconst Next Counttimectr 'stop counter Stop Counter1 Waitms 100 'totalcounter is counter1 plus overflcounter shifted 16 bit left Timercounter = Counter1 Totalcounter = Overflcounter Shift Totalcounter , Left , 16 Totalcounter = Totalcounter + Timercounter Totalcounter = Totalcounter + Bfofrequency Call Dispvalue(totalcounter) Loop '---------------------- 'increment overflow counter on counter1 overflow... Uphigh: Incr Overflcounter Return '---------------------- Sub Dispvalue(totalcounter As Long) 'Dim Dispval As Long 'Dim Dispchar As String * 1 'Dim Dispstr As String * 8 'Dim Frmtstr As String * 8 Dispstr = Str(dispval) Frmtstr = Format(dispstr , "00000000") For Digit = 0 To 7 Select Case Digit Case 0 : Reset Portd.0 Case 1 : Reset Portd.1 Case 2 : Reset Portd.2 Case 3 : Reset Portd.3 Case 4 : Reset Portc.0 Case 5 : Reset Portc.1 Case 6 : Reset Portc.2 Case 7 : Reset Portc.3 End Select Temp = Digit * -1 Temp = Temp + 8 Dispchar = Mid(frmtstr , Temp , 1) Portb = Val(dispchar) Set Portd.0 Set Portd.1 Set Portd.2 Set Portd.3 Set Portc.0 Set Portc.1 Set Portc.2 Set Portc.3 Next Digit End Sub Sub Testdigits Dim A As Byte Totalcounter = 99999999 For A = 0 To 9 Call Dispvalue(totalcounter) Waitms 200 Totalcounter = Totalcounter - 11111111 Next End Sub End