BASCOM


Potrójny miernik.



Foto
  • Zobacz foto płytki i montażu.

'LCf_zintegrowany05.bas

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Program do stosowania.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Na schemacie LCf_zintegrowany05.png działają wszystkie trzy: L, C, f.

'W punkcie Pp sprawdź czy frekwencja (przy f) jest dokładna.

'Mierzoną cewkę dołącz do zacisków Lx.

'Naciśnij StartL i trzymaj aż do zapalenia się D2.

'Pomiar cewek od ok. 0,1uH do mH.

'Pomiar kondensatorów od 1pf do uF (pomiar 50uF=50sek).

'Mierzony kondensator dołączamy do zacisków Cx.

'Jeśli otrzymamy komunikat: "Przepelnienie" oznacza to, że generator oscyluje powyżej 7MHz (błąd).

'Uwaga!: wpisz C1 do programu.

'Pojemność C1 musi mieć dokładnie znaną wartość.

'Miernik częstotliwości w układzie mierzy do 6,8MHz.

'Wynik wyświetlany jest na Lcd.

'Tutaj miernik na Atmega8.

'Fusebit ustawiony na frekwencję zewnętrzną 0000.

'Patrz sch. LCf_zintegrowany05.png.

'Płytka montażowa: 03.png.

'Opracował Henryk Wydmuch.

'Pamięć zajęta w 65%.

 

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

$regfile = "m8def.dat"                                      'Info dla kompilatora.

$crystal = 16000000                                         'Informujemy kompilator o kwarcu 16MHz.

 

 Config Lcd = 16 * 2                                        'Konfiguracja Lcd.

 Config Lcdpin = Pin , Db4 = Portc.3 , Db5 = Portc.2 , Db6 = Portc.1 , Db7 = Portc.0 , E = Portc.4 , Rs = Portc.5

 

 

Config Timer1 = Counter , Edge = Rising                     'Konfigurujemy Timer1 jako licznik reagujący na zbocze opadające.

Config Timer0 = Timer , Prescale = 1                        'Konfigurujemy Timer0 jako dzielnik przez 1.

 

Config Pind.0 = Input                                       'Portd.0 wejście impulsu dodatniego (czas pomiaru).

Config Pind.1 = Input                                       'Przełącznik P4.

Config Pind.2 = Input                                       'Portd.2 - wejście dla przycisku startu L.

Config Pind.3 = Input                                       'Portd.3 - wejście dla przycisku startu C.

Config Pind.4 = Output                                      'Pind.4 jako wyjście (dioda Led L).

Config Pind.6 = Input                                       'Informacja o stanie przełącznika P5.

Config Pind.7 = Input                                       'P3.

Config Pinb.0 = Output                                      'Wyjście do tranzystora BC548.

Config Pinb.1 = Input                                       'Informacja o stanie przełącznika P5.

Config Pinb.2 = Output                                      'Brzęczyk 5V.

 

  Reset Portb.0                                             'Ustaw poziom niski.

  Set Portb.2                                               'Ustaw poziom wysoki.

  Set Portd.2                                               'Ustaw poziom wysoki.

  Set Portd.3                                               '

  Set Portd.4                                               '

 

Config Watchdog = 1                                         'Watchdog potrzebny do odświeżania pomiaru 200MHz.

 

 P4 Alias Pind.1                                            'Przełącznik P4.

 P3 Alias Pind.7                                            'Przełącznik P3.

 

 Deflcdchar 1 , 32 , 32 , 9 , 9 , 9 , 9 , 14 , 16           'Narysowano "mi". (Rysujemy tutaj: Ctrl+L i LCD Designer).

 Deflcdchar 2 , 6 , 1 , 7 , 9 , 9 , 7 , 2 , 4               'ą.

 Deflcdchar 3 , 12 , 4 , 6 , 12 , 4 , 4 , 14 , 32           'ł.

 Deflcdchar 4 , 2 , 4 , 14 , 17 , 17 , 17 , 14 , 32         'ó.

 

 On Timer1 Etykieta                                         'Podprogram Timera1 o nazwie Etykieta (co robić z przepełnieniami).

 On Timer0 Sekunda                                          'Podprogram dla Timera0 o nazwie Sekunda.

 

 Declare Sub 30mhz                                          'Deklaracja procedury f.

 Declare Sub 150mhz                                         'Deklaracja procedury f.

 

 Dim Liczba_przer_tim0 As Long                              'Rezerwujemy dwa bajty w pamięci dla zmiennej Liczba_przer_tim0.

 Dim Lczba_przep_tim1 As Word                               'Rezewujemy jeden bajt dla zmiennej Liczba_przep_tim1.

 Dim Wynik_pom As Single                                    'Rezerwujemy cztery bajty dla zmiennej Wynik_pom.

 Dim Z1 As String * 7                                       'Z1 jako siedmio miejscowa zmienna słowna.

 

 'Dim Piko As Single                                         'Tu będzie wynik pomiaru C.

 Dim Pojemnosc As Single                                    'Tu będzie wynik pomiaru C.

 Dim Liczba_przerwan_tim0 As Word                           'Rezerwujemy dwa bajty w pamięci dla zmiennej Liczba_przerwan_tim0.

 Dim Przep As Long                                          'Rezewujemy jeden bajt dla zmiennej Liczba_przep_tim1.

 Dim Przepe As Long                                         'Przepełnienie Timer1.

 Dim Flaga_aktual_lcd As Bit                                'Rezerwujemy jeden bit na aktualizację wyświetlacza Lcd.

 Dim Wynik_pomiaru As Single                                'Rezerwujemy cztery bajty dla zmiennej Wynik_pomiaru.

 

 Dim Z As String * 8                                        'Tu będzie słowny, pierwszy wynik pomiaru.

 Dim S As String * 8                                        'Tu będzie słowny, drugi wynik pomiaru.

 Dim Uh As String * 8                                       'Tu będzie słowny wynik obliczeń.

 Dim Wynik1 As Word                                         'Zapisany pierwszy wynik pomiaru.

 Dim Wynik2 As Word                                         'Zapisany drugi wynik pomiaru.

 Dim F1 As Single                                           'Częstotliwość po dołączeniu mierzonej cewki.

 Dim F2 As Single                                           'Częstotliwość po przyciśnięciu StartC.

 Dim Cw As Single                                           'Kondensatory w układzie, (i ew. dołączony równolegle do cewki).

 Dim Lx As Single                                           'Wartość mierzonej cewki.

 Dim Cx As Word                                             'Kondensator dołączany.

 Dim Aw As Single                                           'Zmienna do obliczeń.

 Dim Bw As Single                                           'Zmienna do obliczeń.

 Dim Dw As Single                                           'Zmienna do obliczeń.

 Dim Ex As Single                                           'Zmienna do obliczeń.

 Dim Gx As Single                                           'Zmienna do obliczeń.

 

 Enable Interrupts                                          'Zezwalaj na wszystkie przerwania.

 Enable Timer0                                              'Odblokowujemy przerwanie Timera0.

 Enable Timer1                                              'Odblokowujemy przerwanie Timera1.

 

 Pojemnosc = 0                                              '

 Przepe = 0                                                 '

 Counter1 = 0                                               '

 Timer0 = 0                                                 '

 Cls                                                        'Czyść Lcd.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Pierwsza pętla wybierająca L, C lub f.

 Do

 

 '-------Pomiar f---------------------------------------------

  If P4 = 1 And P3 = 0 Then

  If Flaga_aktual_lcd = 1 Then                              'Jeśli flaga aktualizacji Lcd włączona (po każdej sekundzie), to...

  Flaga_aktual_lcd = 0                                      'Zeruj flagę Lcd.

  If Wynik_pom = 0 Then                                     'Jeśli nie doprowadzono sygnału do wejścia...

  Lcd Wynik_pom ; " Hz"                                     'Pokaż wynik w LCD.

  Locate 2 , 1                                              'Druga linia Lcd, na początku...

  Lcd " Brak sygna" ; Chr(3) ; "u   "                       'Pokaż komunikat.

  Waitms 160                                                'Trzymaj komunikat 160mS.

Else                                                        'W przeciwnym razie...

  If Wynik_pom > 7500200 Then                               'Jeśli mierzona frekwencja przekroczy 30MHz.

  Lcd "Zakres!"                                             'Pokaż. (ręcznie przełóż wejście na drugie gniazdo).

  End If                                                    '

  End If                                                    '

''''''''''''''''''''''''''''''''''''''

  If Pinb.1 = 1 Then                                        'Jeśli przełącznik zakresu poda + na Pb.1(pom.200MHz).

  Call 150mhz                                               'Wywołaj procedurę 150MHz.

  Start Watchdog                                            'Odświeżaj odczyt.

  End If                                                    '

Else                                                        'W przeciwnym razie...

  If Pind.6 = 1 Then                                        'Jeśli przełącznik zakresu poda + na Pd.6(pom.30MHz).

  Call 30mhz                                                'Wywołaj procedurę 30MHz.

  End If                                                    '

 End If                                                     'Koniec warunku Flaga_aktual_lcd.

End If                                                      '

'-------Pomiar L---------------------------------------------

  If P4 = 0 And P3 = 1 Then                                 'L.

  Home                                                      'Trzymaj wynik na Lcd w jednym miejscu.

   Locate 2 , 1                                             'W drugiej linii.

   Lcd "   Pomiar L    "                                    'Informacja na LCD.

  Cursor Off                                                '

 

  If Flaga_aktual_lcd = 1 Then                              'Jeśli flaga aktualizacji Lcd włączona (po każdej sekundzie), to...

  Flaga_aktual_lcd = 0                                      'Zeruj flagę.

  'Jeśli generator nie oscyluje.

     If Wynik_pomiaru = 0 Then                              'Jeśli nie ma sygnału...

     Lcd Wynik_pomiaru ;                                    'Pokaż wynik w LCD.

     Locate 2 , 1                                           'Druga linia Lcd, na początku...

     Cls                                                    'Czyść.

     Lcd " Brak sygna" ; Chr(3) ; "u   "                    'Pokaż komunikat.

   End If                                                   'Koniec warunku pustej zmiennej Wynik_pomiaru.

  End If                                                    'Koniec warunku Flagi.

 

'Pierwszy pomiar (f1).

  Wynik_pomiaru = Wynik_pomiaru * 0.001                     'Tu doprowadzamy do odczytu w KHz.

  Wynik1 = Wynik_pomiaru                                    'Zawartość z Wynik_pomiaru wpisz do Wynik1.

  Writeeeprom Wynik1 , 1                                    'Zawartość Wynik1 zapisz do Eprom, adres 1.

  Wynik1 = 0                                                'Zeruj.

  Z = Str(wynik_pomiaru)                                    'Wartość w Wynik_pomiaru zamień na słowną.

  Locate 2 , 1                                              'W drugiej linii.

  Lcd "f1= " ; Z ;                                          'Pokaż ją na Lcd.

  Locate 2 , 12                                             'Druga linia Lcd, 12 miejsce.

  Lcd " KHz   "                                             'Napisz KHz na Lcd.

  Wynik_pomiaru = 0                                         'Zeruj.

  Z = "        "                                            'Zeruj zmienną słowną.

  Wait 1                                                    'Dajemy czas na zmierzenie i zapisanie w Eprom.

  Reset Portb.2                                             'Włącz piszczyk.

'Start.

  'Naciśnięto Start uH

    If Pind.2 = 0 Then                                      'Jeśli naciśnięto Start...

    Set Portb.0                                             'Włącz tranzystor BC548 dodający większą pojemność.

    Toggle Portd.4                                          'Zaświeć Led D2.

    Set Portb.2                                             'Wyłącz piszczyk.

    Gosub Petla1                                            'Skocz do podprogramu.

 

  End If                                                    'Koniec warunku.

   End If                                                   '

 

'----Pomiar C---------------------------------------------

If P4 = 0 And P3 = 0 Then                                   'Po takim ustawieniu dwóch przełączników...

 Locate 2 , 2                                               'Druga linia Lcd, druga pozycja od lewej...

 Lcd " Pomiar C "                                           'Wpisz tekst w cudzysłowie.

 Reset Portb.2                                              'Włącz piszczyk.

Bitwait Pind.3 , Reset                                      'Czekaj, aż naciśnięty zostanie Start C.

'-----------------

 Bitwait Pind.0 , Reset                                     'Czekaj, aż skończy się impuls dodatni z 555.

 If Przepe = 0 Then                                         'Jeśli nie było przepełnienia, to...

 Pojemnosc = Pojemnosc + Counter1                           'Do zmiennej Pojemnosc dodaj zawartość Counter1.

 Pojemnosc = Pojemnosc - 20                                 'Odejmij 20pF pojemności montażowej.

 Home                                                       'Trzymaj wynik ma Lcd w jednym miejscu.

 Lcd Pojemnosc;                                             'Wyświetl ostateczną zawartość zmiennej Pojemnosc.

 Locate 1 , 6                                               'Na ósmym miejscu...

 Lcd "pF"                                                   '

 Set Portb.2                                                '

 Exit Do                                                    'Jeśli Przepe miała 0, wyjdź z pętli.                                               '

  End If                                                    '

 

  If Przepe => 1 Then                                       'Jeśli było przynajmniej jedno przepełnienie...

 Pojemnosc = Przepe * 65536                                 '65536 pomnóż przez liczbę przepełnień, a wynik równa się Pojemnosc.

 Pojemnosc = Pojemnosc + Counter1                           'Aktualną zawartość Countera1 dodaj do aktualnej zawartości Pojemnosc i przybiera ona nową wartość.

 Pojemnosc = Pojemnosc / 1000                               'Nową wartość Pojemnosc-i dziel przez 1000 i znowu przybiera następną nową wartość.

 Pojemnosc = Pojemnosc / 1000                               'Nową wartość Pojemnosc-i dziel przez 1000 i znowu przybiera następną nową wartość.

 Home                                                       'Wyświetlaj wynik w jednym miejscu.

 Lcd Pojemnosc ;                                            'Wyświetl ostateczną zawartość zmiennej Pojemnosc.

 Locate 1 , 6                                               'Na szóstym miejscu...

 Lcd " " ; Chr(1) ; "F        "                             'Napisz uF.

 Set Portb.2                                                'Wyłącz piszczyk.

Exit Do                                                     ';Nie sprawdzaj ponownie wyniku, wyjdź z pętli.

 End If                                                     '

 

End If                                                      'Koniec warunku ustawienia przełączników.

'----------------------

  If P4 = 1 And P3 = 1 Then                                 'Po takim ustawieniu dwóch przełączników...

  Lcd "   B" ; Chr(3) ; Chr(2) ; "d!   "                    'Jeśli źle ustawimy przełączniki...

  Locate 2 , 2                                              'Komunikat.

  Lcd "prze" ; Chr(3) ; Chr(2) ; "cznik" ; Chr(4) ; "w"     '

 End If                                                     '

 

Loop                                                        '

End                                                         '

'-------------------------------------------------------

 '============================================================================================

 

Sekunda:                                                    'Podprogram dla Timera0 .

  If P4 = 0 And P3 = 1 Then                                 'L.

  Gosub Lsek                                                '

 End If                                                     '

'''''''''''''

  If P4 = 1 And P3 = 0 Then                                 'f.

  Gosub Fsek                                                '

 End If                                                     '

Return                                                      'Wróć do programu.

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Etykieta:                                                   'Podprogram dla Timera1 .

  If P4 = 0 And P3 = 1 Then                                 'L.

   Gosub Lety                                               '

End If                                                      '

  If P4 = 0 And P3 = 0 Then                                 'C.

   Gosub Cety                                               '

End If                                                      '

  If P4 = 1 And P3 = 0 Then                                 'f.

   Gosub Fety                                               '

End If                                                      '

 

Return                                                      'Wróć do programu.

 

'============================================================================================

Petla1:                                                     'Po przyciśnięciu StartL.

'Generator oscyluje z dodatkową, większą pojemnością kondensatora.

Do                                                          '

  Wynik_pomiaru = Wynik_pomiaru * 0.001                     'Tu doprowadzamy do odczytu w KHz.

  Wynik2 = Wynik_pomiaru                                    'Zawartość Wynik_pomiaru wpisz do Wynik2.

  Writeeeprom Wynik2 , 10                                   'Zawartość Wynik2 wpisz do Eprom, adres 10.

  Wynik2 = 0                                                'Zeruj.

  S = Str(wynik_pomiaru)                                    'Wartość w Wynik_pomiaru zamień na słowną.

  Wynik_pomiaru = 0                                         'Zeruj.

  Wait 1                                                    'Odczekaj 1sek.

  Gosub Oblicz1                                             'Skocz do podprogramu.

  Loop                                                      'Kręć pętlę.

End                                                         'Tu jest koniec tej pętli.

Return                                                      'Wróć do pierwszej pętli.

''--------------------

Oblicz1:                                                    'Podprogram Oblicz1 (Lx).

  Readeeprom Wynik1 , 1                                     'Odczytaj z Eprom f1.

  Readeeprom Wynik2 , 10                                    'Odczytaj z Eprom f2.

  'Wykonaj działanie matematyczne.

    F1 = Wynik1 / 1000                                      '

    F2 = Wynik2 / 1000                                      '

    Cx = 1025                                               'Kondensator C1 w kolektorze BC548 o tolerancji 1%.

    Gx = F1 / F2                                            '

    Aw = Gx * Gx                                            '

    Bw = Aw - 1                                             '

    Cw = Cx / Bw                                            '

    Dw = F1 * F1                                            '

    Ex = Dw * Cw                                            '

    Lx = 25330 / Ex                                         '

    Uh = Str(lx)                                            'Wartość Lx zamieniona na słowną.

  Locate 2 , 1                                              'W drugiej linii.

  Lcd "f2= " ; S ;                                          'Pokaż ją na Lcd.

  Locate 2 , 12                                             'Druga linia Lcd, 12 miejsce.

  Lcd " KHz "                                               'Napisz "KHz"

  Locate 1 , 1                                              'W pierwszej linii Lcd.

  Lcd "L= " ; Uh ;                                          'Pokaż wynik obliczeń.

  Locate 1 , 10                                             'Pierwsza linia Lcd, 10 miejsce.

  Lcd "   uH  "                                             'Napisz znak idukcyjności.

 Return                                                     'Wróć do Petla1.

 

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Lsek:                                                       'L.

Timer0 = 1                                                  'Do Timera0 dodaj sześć i zapamiętaj jako Timer0 (zliczy 250).

  Incr Liczba_przerwan_tim0                                 'Liczbę przerwań Timera0 powiększ o jeden.

  If Liczba_przerwan_tim0 = 45200 Then                      'Jeśli liczba przerwań Timera0 jest równa 45196, to...

  'Liczbą 45196 ustalamy dokładny pomiar frekwencji.

  Wynik_pomiaru = 65536 * Przep                             'Zmienną Przep pomnóż przez 65536,

                                                             'a wynik wstaw do zmiennej Wynik_pomiaru.

  Wynik_pomiaru = Wynik_pomiaru + Timer1                    'Wynik powyższego działania dodaj do aktualnej zawartości

    Liczba_przerwan_tim0 = 0                                'Zeruj.

  Flaga_aktual_lcd = 1                                      'Załącz flagę aktualizacji Lcd.

  Przep = 0                                                 'Zeruj zmienną Tim1.

  Timer1 = 0                                                'Zeruj Timer1.

 End If                                                     'Koniec uwarunkowania.

Return

 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 Lety:                                                      'L.

 Enable Interrupts                                          'Podprogram Timera1 (przekroczenie zakresu).

  Incr Przep                                                'Zawartość zmiennej Przep powiększ o jeden.

  If Przep = 108 Then                                       'Po 108 przepełnieniach Timer-a 1 (czyli po 6,82MHz)...

  Cls                                                       'Czyść LCD.

  Lcd "Przepelnienie"                                       'Wpisz komunikat.

  Locate 2 , 1                                              'Druga linia Lcd, na początku.

  Lcd "   licznika!"                                        'W drugiej linii wyświetl:

  Waitms 800                                                'Czekaj 1 sek.

 End If                                                     'Koniec warunku gdy będzie 108 przepełnień.

Return

 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

Cety:                                                       'Podprogram Tim1 Cety dla C.

  Incr Przepe                                               '

  Return                                                    '

'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 Fsek:                                                      'Podprogram dla Timera0 (wyznaczanie 1sek) dla f.

  'Dla f.

  Incr Liczba_przer_tim0                                    'Liczbę przerwań Timera0 powiększ o jeden.

 'Dla 200MHz

   If Pinb.1 = 1 And Liczba_przer_tim0 = 47268 Then         'Jeśli liczba przerwań Timera0 jest równa 47268, to...

  'Liczbą 47268  ustalamy dokładny pomiar.

  Liczba_przer_tim0 = 0                                     'Wyzeruj zmienną.

  Wynik_pom = 65536 * Lczba_przep_tim1                      'Zmienną Liczba_przep_tim1 pomnóż przez 65536,

                                                            'a wynik wstaw do zmiennej Wynik_pomiaru.

  Wynik_pom = Wynik_pom + Timer1                            'Wynik powyższego działania dodaj do aktualnej zawartości

                                                            'Timera1 i ten wynik wpisz do zmiennej Wynik_pomiaru.

  Lczba_przep_tim1 = 0                                      'Zeruj flagę przepełnień Timera1.

  Timer1 = 0                                                'Zeruj Timer1.

  Flaga_aktual_lcd = 1                                      'Załącz flagę aktualizacji Lcd.

Else

  'Dla 30MHz

   If Pind.6 = 1 And Liczba_przer_tim0 = 49383 Then         'Jeśli liczba przerwań Timera0 jest równa 49383, to...

  'Liczbą 49383 ustalamy dokładny pomiar.

  Liczba_przer_tim0 = 0                                     'Wyzeruj zmienną.

  Wynik_pom = 65536 * Lczba_przep_tim1                      'Zmienną Liczba_przep_tim1 pomnóż przez 65536,

                                                            'a wynik wstaw do zmiennej Wynik_pomiaru.

  Wynik_pom = Wynik_pom + Timer1                            'Wynik powyższego działania dodaj do aktualnej zawartości

                                                            'Timera1 i ten wynik wpisz do zmiennej Wynik_pomiaru.

  Lczba_przep_tim1 = 0                                      'Zeruj flagę przepełnień Timera1.

  Timer1 = 0                                                'Zeruj Timer1.

  Flaga_aktual_lcd = 1                                      'Załącz flagę aktualizacji Lcd.

   End If                                                   'Koniec uwarunkowania.

   End If

 Return                                                     'Wróć do programu.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 Fety:                                                      'Podprogram Timera1 dla f.

  Enable Interrupts                                         'Odblokuj przerwania.

  Incr Lczba_przep_tim1                                     'Zawartość zmiennej Liczba_przep_tim1 powiększ o jeden.

 Return                                                     'Wróć do programu.

 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 '''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

 Sub 150mhz                                                 'Procedura dla f.

  Wynik_pom = Wynik_pom * 0.000001                          'Wykonaj mnożenie (zamiana Hz na MHz).

  Wynik_pom = Wynik_pom * 8                                 'Wykonaj mnożenie (CD3500).

  Wynik_pom = Wynik_pom * 4                                 'Wykonaj mnożenie (74LS74).

     Z = Str(wynik_pom)                                     'Zamień wartość cyfrową na słowną.

     Lcd Z                                                  'Pokaż słowo.

     Locate 1 , 10                                          'Pierwsza linia Lcd, 10 miejsce.

     Lcd " MHz   "                                          'Pokaż słowo, a za nim MHz.

     Locate 2 , 1                                           'Druga linia Lcd, 1 miejsce.

     Lcd "Pomiar do 200MHz "                                'Pokaż.

     Cursor Off                                             'Wyłącz kursor.

     Waitms 50                                              'Trzymaj odczyt.

  End Sub                                                   'Koniec procedury.

  Return                                                    'Wróć do pętli.

 

 ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

  Sub 30mhz                                                 'Procedura dla f.

     Wynik_pom = Wynik_pom * 0.000001                       'Wykonaj mnożenie (zamiana Hz na MHz).

     Wynik_pom = Wynik_pom * 4                              'Wykonaj mnożenie (74LS74).

     Z = Str(wynik_pom)                                     'Zamień wartość cyfrową na słowną.

     Home                                                   '

     Lcd Z ;                                                'Pokaż słowo.

     Locate 1 , 10                                          'Pierwsza linia Lcd, 10 miejsce.

     Lcd " MHz   "                                          'Pokaż słowo, a za nim MHz.

     Locate 2 , 1                                           'Druga linia Lcd, 1 miejsce.

     Lcd " Pomiar do 30MHz "                                'Pokaż.

     Cursor Off                                             'Wyłącz kursor.

  If Wynik_pom > 458 Then                                   'Jeśli mierzona frekwencja przekroczy 30MHz.

  Lcd "Zakres!"                                             'Pokaż. (ręcznie przełóż wejście na drugie gniazdo).

  End If                                                    '

  End Sub                                                   'Koniec procedury.

  Return                                                    'Wróć do pętli.

''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''

'Koniec.