mikrokontrolery.net

 

   

Przeszukując zasoby Internetu przypadkowo natrafiłem na dwa ciekawe programy produkcji jugosłowiańskiej firmy Mikroelektronika - http://www.mikroelektronika.co.yu. Są to kompilatory języków Basic i Pascal dla mikrokontrolerów PIC. Mogą one generować kod dla większości mikrokontrolerów z rodzin PIC12, PIC16 oraz PIC18. Zrzuty ekranów tych kompilatorów sa pokazane poniżej :

Jak widać, obydwa programy są do siebie bardzo podobne i róznią się w zasadzie tylko językiem, w jakim pisany jest program dla mikrokontrolera. Kompilatory te zawiereją bibliotekę funkcji współpracujących z popularnymi układami peryferyjnymi, podobnie jak Bascom dla 8051 i AVR, tak więc początkujący programiści powinni nie powinni miec trudności z pisaniem programów dla PICów. Programy te w werjsji demonstracyjnej posiadają ograniczenie rozmiaru kodu wynikowego do 2K słów programu. Cena pełnych wersji programów jest zblizona do ceny Bascoma (149USD). Programy te moim zdaniem są bardziej dopracowane niż Bascom. Posiadają kilka ciekawych funkcji, np. eksplorator kodu - podobny do tego z akietów Delphi czy C++Builder, czyli środowisk bardzo zaawansowanych - czy system statystyk prezentujacy zajęte miejsce w pamięci przez poszczególne procedury, ich rozmieszczenie w pamieci i wiele innych przydatnych informacji.

Aby utworzyć nowy projekt z menu "Project" wybieramy opcję "New project" (lub naciskamy kombinacje klawiszy Ctrl+N). Naszym oczom powinno ukazać się następujące okienko :

W polu "Project Name" wpisujemy nazwę projektu. Taką samą nazwę będzie nosił plik prolektu, oraz plik z kodem programu.

W polu "Project Path" wpisujemy scieżkę do katalogu, w którym ma zostać umieszczony projekt.

W polu "Project Description" wpisujemy opis projektu.

Z rozwijanej listy "Device Name" wybieramy typ mikrokontrolera, dla jakiego będzie powstawałnasz projekt.

W polu "Device Clock" wpisujemy częstotliwość generatora, z jaką będize pracował mikrokontroler. Ma to znaczenie przy korzystaniu z funkcji dostarczanych razem z kompilatorem.

Na liście "Device Flags" ustawiamy odpowiednią konfigurację mikrokontrolera. Jest do ważny etap tworzenia programu. Nie należy zapominać o ustawieniu odpowiedniej konfiguracji, ponieważ mogą wystąpic problemy z uruchomieniem programu w przypadku, gdy zastosowany w układzie generator będzie inny niż zdefiniowany.

Po pomyślnym ustawieniu wszystkich opcji klikamy przycisk OK.

Teraz naszym oczom powinno ukazać się okno z kilkoma wierszami kodu, stanowiącymi szkielet programu. W przypadku Pascala będzie to następujacy kod :

program radzio;

{main procedure}
begin
{Place program code here}
end.

a w przypadku Basica taki kod :

program radzio

'main procedure
main:
' Place program code here
end.

Nasz kod wpisujemy w miejsce komentarza "Place program code here". Gdy już napiszemy program i pomyślnie go skompilujemy musimy zaprogramować procesor. I tutaj niestety nasze kompilatory nie okażą się zbyt pomocne, ponieważ obsługują tylko programator firmy Mikroelektronika, który znajduje się w każdym zestawie oferowanym przez tą firmę. Mamy dwa wyjścia, w zależności od posiadanego przez nas programatora : jesli posiadamy programator współpracujacy z porgramami typu PonyProg czy ICProg, to wczytujemy plik *.hex do tego programu i programujemy procesor; jeśli posiadamy programator współpracujacy ze środowiskiem MPLAB, np. JuPIC to z menu "File" MPLABa wybieramy opcję "Import" i wybieramy plik *.hex, który zawiera nasz program. Następnie z menu "Programmer->Select programmer" wybieramy posiadany przez nas typ programatora. W przypadku JuPICa będzie to "PICSTART Plus". Następnie z menu "programmer" Wybieramy opcję "Program" i już po chwili dysponujemy zaprogramowanym mikrokontrolerem.

Przykładowy program w języku Pascal.

Na poniższym listingu przedstawiony jest program realizujący identyczne zadanie, jak Pierwszy, prosty program wprowadzający do programowania mikrokontrolerów PIC :

program p01;

{main procedure}
begin
TRISA := 0;
TRISB := 255;
repeat
PORTA := byte(PORTB shr 4);
until 0;
end.

Już na pierwszy rzut oka widać, że program napisany w jeżyku Pascal jest o wiele bardziej czytelny. Omówmy teraz poszczególne wiersze tego programu. Pierwszy wiersz zawiera dyrektywe program rozpoczynjącą każdy program napisany w języku Pascal. Kolejny wiersz zawiera słowo begin - początek głównej pętli programu. Następny wiersz składa się z wyrażenia zapisującego do rejestru TRISA wartość 0, czyli powoduje skonfigurowanie portu A jako wyjścia. Operatorem przypisania w języku Pascal jest ciąg znaków :=. W kolejnym wierszu do rejestru TRISB zapisujemy wartość 255, czyli konfigurujemy port B jako wejścia. Następnie realizujemy pętlę nieskończoną repeat until 0, zawierającą instrukcję przepisania zawartości portu B, przesuniętej o 4 bity w prawo, do portu A. Operatorem przesunięcia w prawo jest słowo shr.

Przykładowy program w języku Basic .

Program w Basicu wygląda bardzo podobnie do programu w Pascalu :

program p01

'main procedure
main:
TRISA = 0
TRISB = 255
do
PORTA = byte(PORTB >> 4)
loop until 0
end.

W zasadzie różni się tylko operatorami przypisania (= zamiast :=) oraz pzresunięcia w prawo(>> zamiast shr). Także pętla wygląda nieco inaczej niż w Pascalu - zamiast repeat until mamy do loop until.

 

 

 

 

 

 

 

 

 

 

 

 
 
 
 

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