mikrokontrolery.net

 

   

Przykład 2 - układ czasowy
Po naciśnięciu przycisku S1 kropka dziesiętna wyświetlacza jest zapalana na ok. 1 sekundę. Algorytm działania programu pokazany jest na poniższym rysunku :

Kod zródłowy wygląda nastepująco :

Config Portb = &B11111111
' ustawienie wszystkich wyprowadzen portu PORTB jako wyjscia
Config Portd = &B1111100
' ustawienie dwóch najmłodszych bitów portu PORTD jako wejścia
' a pozostałych jako wyjścia

Do
' jeśli PIND.0 jest w stanie niskim
' to znaczy, ze nacisnięto przycisk S1
If Pind.0 = 0 Then
' wtedy ustaw na PORTB.7 stan niski
' czyli zapal kropkę dzisiętną wyświetlacza
Portb.7 = 0
' czekaj jedną sekundę
Wait 1
' ustaw na PORTB.7 stan niski
' czyli zgaś kropkę dzisiętną wyświetlacza
Portb.7 = 1
' koniec instrukcji if
End If
'powtarzaj cały program w pętli nieskończonej
Loop

Program jest bardzo podobny do programu poprzedniego. W identyczny sposób konfigurujemy porty mikrokontrolera. Zamiast dwóch instrukcji warunkowych if w tym prorgamie występuje tylko jedna, ponieważ sprawdzamy stan tylko jednego przycisku. Po sprawdzeniu warunku, czy PIND.0 = 0 wykonywane są trzy instrukcje :

Portb.7 = 0
Wait 1
Portb.7 = 1

Efektem ich wykonania będzie zapalenie się na ok. 1 sekundę kropki dziesiętnej wyświetlacza. Funkcja wait wprowadza opóźnienie w wykonywaniu programu o podaną ilość sekund. Czas opóźnienia wnoszony przez funkcję wait jest przybliżony - nie możemy wykorzystać tej funkcji np. do budowy zegara, czy innych układów, gdzie wymagana jest duża dokładność odmierzania czasu (należy wówczas skorzystać z wewnętrznych timerów mikrokontrolera).

Ostatnio na forum:

 

 

 

 

 
 
 
 
 

(c) 2004-2008 Radosław Kwiecień
Polityka prywatności