Pobierz

Transkrypt

Pobierz
Fragmenty kodu
$regfile = "m8adef.dat"
'najpierw określamy typ procesora
$crystal = 1000000
'definiujemy z jakim taktowaniem będzie pracował
Config Lcd = 16 * 2
' konfiguracja wyświetlacza lcd 16 znaków 2 linie
Config Lcdpin = Pin , Db4 = Potrd.5 , Db5 = Potrd.6 , Db6 = Potrd.7 , Db7 = Potrb.0 , E = Potrd.4 , Rs = Potrd.3
'określamy podłączanie pinów wyświetlacza LCD
Config Pind.0 = Output
Portd.0 = 0
If Pinc.3 = 0 Then
Portd.0 = 1
Else
Portd.0 = 0
End If
'!!! początek pętli wewnętrznej jeżeli
'ustawienie stanu wysokiego na pinie PC3
'jeżeli nie jest spełniony warunek if to wtedy
'!!! koniec pętli wewnętrznej jeżeli
Config Pinc.3 = Input
Portc.3 = 1
Cls
Waitms 1000
Cursor Off
'ustawienie pinu PD0 jako wyjście (dioda LED)
'ustawienie stanu niskiego na pinie PD0
'ustawienie pinu PC3 jako wejście (przycisk)
'ustawienie stanu wysokiego na pinie PC3
'czyszczenie wyświetlacza LCD
'odczekuje 1000 milisekund zanim wykona kolejny krok programu
'ukrycie kursora
Config Adc = Single , Prescaler = Auto , Reference = Avcc 'konfiguracja przetwornika analogowo cyfrowego
If Pinc.3 = 0 Then
X=X+1
End If
Upperline
'jeżeli przycisk jest wciśnięty
'zmienna X powiększona jest o jeden w stosunku do wcześniejszej wartości
'ustaw kursor w górnej linii wyświetlacza LCD
Lcd "Program"
'wyświetl komunikat Program
Dim V As Single
Dim I As Single
Dim R As Single
'deklaracja zmiennej numerycznej Y
'deklaracja zmiennej numerycznej I
'deklaracja zmiennej numerycznej R
Dim Odczytv As Word
Dim Odczyti As Word
'deklaracja zmiennej numerycznej dodatniej całkowitej Odczytv
'deklaracja zmiennej numerycznej dodatniej całkowitej Odczyti
Dim X As Byte 'deklaruje zmienną X jako zmienną dodatnią całkowitą z przedziału 0-255
Dim Wyswietlv As String * 4
Odczytv = Getadc(5)
'deklaracja zmiennej tekstowej przechowującej 4 znaki
'odczytuje poziom z kanału pinu ACD5 i przechowuje w zmiennej Odczytv
Wyswietlv = Fusing(v , "#.###")
'konwersja zmiennoprzecinkowej na tekst zawierający 4 znaki i przechowuje w zmiennej Wyswietlv
V = Odczytv * 0.0049
I = I / 1000
R=V/I
R = R / 1000
For I = 255 To 0 Step -1
Pwm1a = I
Waitms 50
Next I
'przelicza poziom na wartość napięcia i przechowuje w zmiennej V
'przeliczenie mA na ampery
' wyliczenie oporu
' przeliczenie ohm na kohmy
'początek pętli For zmienna I zmienia się od 255 do zera co jeden
'ustawia wypełnienie sygnału tak jak określa zmienna I
'odczekuje 50 milisekund
'ustawia nową zmienną I tzn. od danej wartości I odejmuje jeden
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 1
'konfiguracja sygnału PWN
Select Case X
Case 1:
milisekund
'Początek instrukcji select case błyskanie diodami LED
'jeżeli X=1 to PD0 będzie w stanie w stanie wysokim przez 300
Portd.0 = 1
Portd.1 = 0
Portd.2 = 0
Portd.3 = 0
Portd.4 = 0
Waitms 300
'ustawienie stanu wysokiego na pinie PD0
'ustawienie stanu niskiego na pinie PD1
'ustawienie stanu niskiego na pinie PD2
'ustawienie stanu niskiego na pinie PD3
'ustawienie stanu niskiego na pinie PD4
Portd.0 = 0
Portd.1 = 0
Portd.2 = 0
Portd.3 = 0
Portd.4 = 0
Waitms 300
kodu w pętli Do-loop
'ustawienie stanu niskiego na pinie PD0
'ustawienie stanu niskiego na pinie PD1
'ustawienie stanu niskiego na pinie PD2
'ustawienie stanu niskiego na pinie PD3
'ustawienie stanu niskiego na pinie PD4
'odczekanie 300 milisekund po czym program wróci do pierwszej linii
Case 2:
Portd.0 = 0
Portd.1 = 1
Portd.2 = 0
Portd.3 = 0
Portd.4 = 0
Waitms 300
'ustawienie stanu niskiego na pinie PD0
'ustawienie stanu wysokiego na pinie PD1
'ustawienie stanu niskiego na pinie PD2
'ustawienie stanu niskiego na pinie PD3
'ustawienie stanu niskiego na pinie PD4
Portd.0 = 0
Portd.1 = 0
Portd.2 = 0
Portd.3 = 0
Portd.4 = 0
Waitms 300
kodu w pętli Do-loop
'ustawienie stanu niskiego na pinie PD0
'ustawienie stanu niskiego na pinie PD1
'ustawienie stanu niskiego na pinie PD2
'ustawienie stanu niskiego na pinie PD3
'ustawienie stanu niskiego na pinie PD4
'odczekanie 300 milisekund po czym program wróci do pierwszej linii
Case Else:
X=0
End Select
'jeżli x>3 to x zostanie przypisana wartość zero
'Koniec instrukcji select case
Select Case X
Case 1:
milisekund
Portd.0 = 0
Portd.1 = 1
Portd.2 = 0
Portd.3 = 1
Portd.4 = 0
Waitms 500
'Początek instrukcji select case
'jeżeli X=1 to PD1 i PD3 będą w stanie wysokim przez co najmniej 500
'ustawienie stanu niskiego na pinie PD0
'ustawienie stanu wysokiego na pinie PD1
'ustawienie stanu niskiego na pinie PD2
'ustawienie stanu wysokiego na pinie PD3
'ustawienie stanu niskiego na pinie PD4
Case 2:
....
Case Else:
'jeżli x>... to x zostanie przypisana wartość zero
X=0
End Select
'Koniec instrukcji select case
Config Keyboard = Pinb.2 , Data = Pinb.3 , Keydata = Keydata
Lcd Chr(znak)
zwraca zmienną tekstową
For I = 1 To N
tu ma się znaleźć ciąg instrukcji
Next I
'konfiguracja klawiatury
'wyświetli znak który odpowiada danemu kodowi ASCII funkcja Chr()
' wykona pętlę N razy
'definicja tablicy do przeliczenia kodów klawiatury na znaki, tablica ta umieszczana jest po słowie end kończącym
program
Keydata:
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 ,
Data &H5E , 0 , 0 , 0 , 0 , 0 , 0 , 113 , 49 , 0 , 0 , 0 , 122 ,
Data 115 , 97 , 119 , 50 , 0 , 0 , 99 , 120 , 100 , 101 , 52,
Data 51 , 0 , 0 , 32 , 118 , 102 , 116 , 114 , 53 , 0 , 0 , 110,
Data 98 , 104 , 103 , 121 , 54 , 7 , 8 , 44 , 109 , 106 , 117 , 55,
Data 56 , 0 , 0 , 44 , 107 , 105 , 111 , 48 , 57 , 0 , 0 , 46 , 45
Data 108 , 48 , 112 , 43 , 0 , 0 , 0 , 0 , 0 , 0 , 92 , 0 , 0 , 0,
Data 0 , 13 , 0 , 0 , 92 , 0 , 0 , 0 , 60 , 0 , 0 , 0 , 0 , 8 , 0,
Data 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 48 , 44 , 50 , 53 , 54 , 56,
Data 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0
Data 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0,
Data 0 , 0 , 0 , 0 , 0 , 0 , 81 , 33 , 0 , 0 , 0 , 90 , 83 , 65,
Data 87 , 34 , 0 , 0 , 67 , 88 , 68 , 69 , 0 , 35 , 0 , 0 , 32 , 86,
Data 70 , 84 , 82 , 37 , 0 , 0 , 78 , 66 , 72 , 71 , 89 , 38 , 0,
Data 0 , 76 , 77 , 74 , 85 , 47 , 40 , 0 , 0 , 59 , 75 , 73 , 79,
Data 61 , 41 , 0 , 0 , 58 , 95 , 76 , 48 , 80 , 63 , 0 , 0 , 0 , 0,
Data 0 , 0 , 96 , 0 , 0 , 0 , 0 , 13 , 94 , 0 , 42 , 0 , 0 , 0 , 62,
Data 0 , 0 , 0 , 8 , 0 , 0 , 49 , 0 , 52 , 55 , 0 , 0 , 0 , 0 , 48,
Data 44 , 50 , 53 , 54 , 56 , 0 , 0 , 0 , 43 , 51 , 45 , 42 , 57 , 0 , 0

Podobne dokumenty