KURS BASCOM 8051 INDEX:



Podobne dokumenty
start Program mikroprocesorowego miernika mocy generowanej $crystal = deklaracja

Programowanie mikrokontrolerów - laboratorium

Listing_ $crystal = deklaracja

Programowanie mikrokontrolerów - laboratorium

Synteza częstotliwości na układzie PLL LM7001

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Wstęp Podstawy programowania QBASIC Budowa mikroprocesora Zestaw uruchomieniowy Porty wejścia/wyjścia...

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Instytut Teleinformatyki

PRUS. projekt dokumentacja końcowa

Miernik częstotliwości 100 MHz

KURS Bascom'a. Autor Paweł Klaja. Korekta. v1.5

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Ćwiczenie 5 Zegar czasu rzeczywistego na mikrokontrolerze AT90S8515

Podstawy programowania skrót z wykładów:

Opis procedur asemblera AVR

ROZDZIAŁ III ELEMENTY PROGRAMU BASCOM ROZPOCZYNAMY PRACĘ Z PROGRAMEM STRUKTURA PROGRAMU OPERACJE NA PORTACH

Programowanie Mikrokontrolerów

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

ĆWICZENIE 5. TEMAT: OBSŁUGA PORTU SZEREGOWEGO W PAKIECIE KEILuVISON WYSYŁANIE PORTEM SZEREGOWYM

Instrukcja obsługi programatora AVR Prog USB v2

2. Architektura mikrokontrolerów PIC16F8x... 13

3.2. Zegar/kalendarz z pamięcią statyczną RAM 256 x 8

Konfigurator Modbus. Instrukcja obsługi programu Konfigurator Modbus. wyprodukowano dla

Szkolenia specjalistyczne

Podstawy techniki mikroprocesorowej

micro Programator ISP mikrokontrolerów AVR zgodny z STK500v2 Opis Obs³ugiwane mikrokontrolery Wspó³praca z programami Podstawowe w³aœciwoœci - 1 -

Przycisk wybierania opcji Przycisk potwierdzenia programowania/przycisk kontroli ustawień Przycisk ustawień godziny ENTER/TEST PANEL OPERACYJNY

SET ENTER/TEST HOUR MIN MONTH DEMO PROGRAM DAY

Wskaźniki a tablice Wskaźniki i tablice są ze sobą w języku C++ ściśle związane. Aby się o tym przekonać wykonajmy cwiczenie.

Cwiczenie nr 1 Pierwszy program w języku C na mikrokontroler AVR

Notepad++ / PuTTY. Interaktywne środowisko programowania w języku ForthLogic. Wersja dokumentu P.1. Wersja dokumentu NP1.

Programator procesorów rodziny AVR AVR-T910

4 Transmisja szeregowa, obsługa wyświetlacza LCD.

ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS

LABORATORIUM SYSTEMÓW POMIAROWYCH KTP IR PW MATERIAŁY POMOCNICZE DO ĆWICZENIA 1 SYMULATOR SYSTEMU POMIAROWEGO W STANDARDZIE IEC-625.

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

4 Transmisja szeregowa na przykładzie komunikacji dwukierunkowej z komputerem PC, obsługa wyświetlacza LCD.

Materiały do laboratorium MS ACCESS BASIC

Instrukcja obsługi programatora AVR Prog USB v2

Instrukcja do oprogramowania ENAP DEC-1

Podstawy programowania w języku Visual Basic dla Aplikacji (VBA)

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

Uwaga: dioda na wyjściu 13 świeci gdy na wyjście podamy 0.

przedmiot kilka razy, wystarczy kliknąć przycisk Wyczaruj ostatni,

asix4 Podręcznik użytkownika CtMus04 - drajwer do wymiany danych z urządzeniami sterującymi MUS-04 firmy ELEKTORMETAL S.A.

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Laboratorium 1: Wprowadzenie do środowiska programowego. oraz podstawowe operacje na rejestrach i komórkach pamięci

2. Kliknij Insert->Userform. Jeżeli Toolbox nie pojawi się automatycznie, kliknij View -> Toolbox. Otrzymany widok powinien być jak poniżej.

Organizacja pamięci VRAM monitora znakowego. 1. Tryb pracy automatycznej

LITEcomp aplikacje Zegar z układem PCF8583

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Instrukcje cykliczne (pętle) WHILE...END WHILE

Programator procesorow AVR do kompilatora BASCOM AVR (zgodny z STK200)

Instrukcja obsługi programatora AVR Prog USB v2

dokument DOK wersja 1.0

Systemy wbudowane. Uniwersytet Łódzki Wydział Fizyki i Informatyki Stosowanej. Witold Kozłowski

Programowanie mikrokontrolerów AVR

Instrukcja obsługi programatora AVR Prog USB v2

1. Wprowadzenie Programowanie mikrokontrolerów Sprzęt i oprogramowanie... 33

Wstęp Architektura... 13

Programowanie w języku Python. Grażyna Koba

Spis treœci. Co to jest mikrokontroler? Kody i liczby stosowane w systemach komputerowych. Podstawowe elementy logiczne

Hardware mikrokontrolera X51

Układy czasowo-licznikowe w systemach mikroprocesorowych

Zastosowanie procesorów AVR firmy ATMEL w cyfrowych pomiarach częstotliwości

Sterowanie urządzeniami elektronicznymi przy użyciu portu LPT

OPERACJE NA PLIKACH. Podstawowe pojęcia:

Programowanie w językach asemblera i C

W O J S K O W A A K A D E M I A T E C H N I C Z N A im. Jarosława Dąbrowskiego

INSTRUKCJA INSTALACJI WEB SERWER STW. DOKUMENTACJA TECHNICZNA INSTRUKCJA OBSŁUGI wersja instrukcji 1.0

Edytor tekstu MS Word 2010 PL: grafika. Edytor tekstu MS Word umożliwia wstawianie do dokumentów grafiki.

Ustawienia ogólne. Ustawienia okólne są dostępne w panelu głównym programu System Sensor, po kliknięciu ikony

Programowanie w Turbo Pascal

Część XVII C++ Funkcje. Funkcja bezargumentowa Najprostszym przypadkiem funkcji jest jej wersja bezargumentowa. Spójrzmy na przykład.

Podstawy Programowania C++

SYSTEM PRZERWA Ń MCS 51

Umieszczanie kodu. kod skryptu

Visual Basic dla AutoCAD

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

Instrukcja do programu BASIC PR-02

Instrukcja aktualizacji oprogramowania

Trochę o plikach wsadowych (Windows)

2.1 Przesył danych między procesorem a tabelą zmiennych

Kurs Elektroniki. Część 5 - Mikrokontrolery. 1/26

Algorytmika i Programowanie VBA 1 - podstawy

Programowanie komputerowe. Zajęcia 1

Zespół Szkół Technicznych. Badanie wyświetlaczy LCD

Zewnętrzne układy peryferyjne cz. 1 Wykład 12

Uczeń/Uczennica po zestawieniu połączeń zgłasza nauczycielowi gotowość do sprawdzenia układu i wszystkich połączeń.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 5 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 41

1 Podstawy c++ w pigułce.

DECLARE <nazwa_zmiennej> typ [(<rozmiar> )] [ NOT NULL ] [ { := DEFAULT } <wartość> ];

Program emulatora GPS pobieramy ze strony z działu Pobieralnia.

Programowanie w C++ Wykład 2. Katarzyna Grzelak. 4 marca K.Grzelak (Wykład 1) Programowanie w C++ 1 / 44

1 Podstawy c++ w pigułce.

DZT Licznik energii elektrycznej Sieć trójfazowa 4-przewodowa Połączenie bezpośrednie 100A Wyjście impulsowe oraz RS485/Modbus.

Kasa fiskalna "TURKUS" Blok funkcji dostępnych dla Serwisu.

Transkrypt:

INDEX: Wstęp...2 Konfiguracja programu Bascom8051...3 Zmienne...4 Stałe...5 Tablice...6 Przypisanie nazwy do linii lub portu...7 Pętle...8 Podprogramy...9 Wyświetlacz alfanumeryczny LCD...10 Warunki IF...12 Warunki CASE...13 Opóźnienia czasowe...14 Przerwania...15 Magistrala I²C...16 Informacje...17 Copyright 2002-2004 by μ MAX 1

WSTĘ P We wstępie nie będę się rozpisywał dużo. Wynika to z tego, iż struktura programu w Bascomie jest bardzo prosta. Na począ tku umieszczamy wszelkie deklaracje dotyczą ce np. ustawień wyświetlacza, linii I²C lub czę stotliwości rezonatora (jeśli w programie było to wcześniej prawidłowo ustawione, nie trzeba dodatkowo pisać w programie) oraz deklaracje zmiennych, stałych lub konfiguracji timeró w. Nastę pnie znajduję się treść programu głó wnego oraz podprogramy.!!! Uwaga!!! Jeśli przeprowadzamy symulację programu na począ tku należy to zasygnalizować umieszczają c $SIM. Natomiast jeśli już kompilujemy program z przeznaczeniem dla procesora ten znacznik musi być całkowicie usunięty lub odznaczony ('$SIM). Copyright 2002-2004 by μ MAX 2

KONFIGURACJA PROGRAMU BASCOM8051 Konfiguracja programu Bascom8051 jest bardzo prosta. Po zainstalowaniu i uruchomieniu aplikacji otwieramy okno OPTIONS > COMPILER > OUTPUT i zaznaczamy pola plikó w jakie ma utworzyć program po skompilowaniu. Do poprawnej pracy programatora należ y zaznaczyć wszystkie pola z wyją tkiem OLD INTEL HEX FILE. Następnie zakładka COMMUNICATION, w któ rej ustawiamy prędkość komunikacji przy transmisji szeregowej (domyślnie na 2400) oraz częstotliwość stosowanego rezonatora kwarcowego (standardowo 11,059MHz lub 12MHz). W okienkach I²C oraz LCD ustawiamy linie portó w wykorzystywane przez magistralę oraz wyświetlacz alfanumeryczny. W zakładce MISC wybieramy konfigurację rejestru dla odpowiedniego procesora, BYTE ustawiamy adres ostatniej komó rki pamięci RAM jaka może być wykorzystana przez program (np. 7F bo w HEX) oraz opcję SIZE WARNING informują cą czy kompilator ma ostrzegać jeśli zostanie przekroczona określona pojemność programu (pamięci Flash). Zakładka COMMUNICATION określa paramentry komunikacji komputera z programatorem przez RS. Tutaj nic nie zmieniamy, ponieważ będziemy stosować komunikację przez port ró wnoległy LPT (dla programatora AVT 2502). W zakładce ENVIORONMENT - ustawienia samego programu, wg. naszej wygody. W HARDWARE SIMULATOR ustawiamy adres portu przez któ ry będzie odbywać się komunikacja podczas symulacji oraz typ symulatora. Ponieważ na razie nie będziemy przeprowadzać symulacji, więc nie zmieniamy domyślnych parametró w. Okienko PROGRAMMER jest odpowiedzialne, jak sama nazwa wskazuje, za programowanie procesora (jeśli programujemy bezpośrednio z Bascoma przy uż yciu AVT-2502). W niej w PARALLEL(port ró wnoległy) ustawiamy adres portu (najczęściej 378), PORT DELAY (opóźnienie portu) dla komputera z procesorem 300MHz wynosi ok. 50 i maleje wraz z szybszym komputerem. Wybieramy jeszcze programator MCS FLASH PROGRAMMER i zaznaczamy pola AUTO FLASH oraz AUTO VERIFY. No nareszcie można powiedzieć...konfiguracja zakończona. Copyright 2002-2004 by μ MAX 3

ZMIENNE DIM [nazwa_zmiennej_1] AS BIT - zakres zmiennej 0 lub 1 DIM [nazwa_zmiennej_2] AS BYTE - zakres zmiennej 0...255 DIM [nazwa_zmiennej_3] AS WORD - zakres zmiennej 0...65535 DIM [nazwa_zmiennej_4] AS INTEGER - zakres zmiennej -32767..32768 DIM [nazwa_zmiennej_5]*10 AS STRING - zmienna tekstowa o długości np. 10 Copyright 2002-2004 by μ MAX 4

STAŁ E CONST [nazwa_stałej_1] = 15 - cyfra 15 zapisana dziesiętnie CONST [nazwa_stałej_1] = &B1111 - cyfra 15 zapisana binarnie CONST [nazwa_stałej_1] = &HF - cyfra 15 zapisana szesnastkowo CONST [nazwa_stałej_2] = -1000 CONST [nazwa_stałej_3] = 1.1 CONST [nazwa_stałej_4] = "tekst" Przy przypisywaniu zmiennym wartości należy pamiętać o zakresach zadeklarowanych im typó w. Np. nie możemy dla zmiennej zadeklarowanej: DIM ZMIENNA_1 AS BYTE Przypisać: ZMIENNA = 300 Copyright 2002-2004 by μ MAX 5

TABLICE DIM [nazwa_tablicy](ilość ) AS [rodzaj_zmiennej] [nazwa_tablicy](5) = 146 - zapianie do 5 elementu tablicy liczby 146 Przykład: Dim Tablica(10) As Byte Tablica(5) = 146 Copyright 2002-2004 by μ MAX 6

PRZYPISANIE NAZWY LINII LUB PORTU [nowa_nazwa] ALIAS [linia/port] Jest to funkcja bardzo praktyczna i ułatwiają ca pisanie programu, gdyż zamiast uż ywać np. P1.7 w programie, tworzymy alias i uż ywamy tej nazwy. Przykład: LED ALIAS P1.7 RESET LED - wyzerowanie LED, a właściwie linii P1.7 WAIT 1 - poczekaj 1 sekundę SET LED - ustawienie linii 7 z portu 1 WAIT 1 Przedstawiony program zapala i gasi diodę LED podpiętą do linii 7 w porcie 1 z częstotliwością 0,5Hz i współczynnikiem wypełnienia 50%. Przykład 2: PORT1 ALIAS P1 PORT1 = 255 - ustawienie całego portu 1 WAIT 1 - poczekaj 1 sekundę PORT1 = 0 - wyzerowanie całego portu 1 WAIT 1 Copyright 2002-2004 by μ MAX 7

PĘ TLE Pętla...: - począ tek pętli... - operacje i polecenia wykonywane w pętli - koniec pętli i powró t do jej począ tku Pętla WHILE...W: WHILE [warunek] - począ tek pętli... - cią g_instrukcji W - koniec pętli i wyjście jeśli warunek spełniony, powró t do jej począ tku jeśli nie Przykład: WHILE ZMIENNA < 10 INCR ZMIENNA W Copyright 2002-2004 by μ MAX 8

PODPROGRAMY Na począ tku wpisujemy deklaracje podprogramu: DECLARE SUB [nazwa_podprogramu] Następnie w programie piszemy, co konkretnie podprogram ma wykonywać. Robimy to w następują cy sposó b: SUB [nazwa_podprogramu] - począ tek podprogramu... - operacje i polecenia wykonywane w podprogramie SUB - koniec podprogramu Aby wywołać podprogram piszemy: CALL [nazwa_podprogramu] Natomiast, jeśli w podprogramie będziemy wykonywać operacje na zmiennej globalnej, deklarujemy ją na począ tku oraz przy wywoływaniu podprogramu. Na począ tku wpisujemy deklaracje zmiennej i podprogramu: DIM [zmienna] AS [typ_zmiennej] DECLARE SUB [nazwa_podprogramu]( [zmienna] AS [typ_zmiennej] ) A w programie piszemy, co konkretnie podprogram ma wykonywać. Robimy to w następują cy sposó b: SUB [nazwa_podprogramu]( [zmienna] AS [typ_zmiennej] ) - począ tek podprogramu... - operacje i polecenia wykonywane w podprogramie SUB - koniec podprogramu Aby wywołać podprogram piszemy: CALL [nazwa_podprogramu]( [zmienna] ) Przykład: DIM ZMIENNA AS BYTE DECLARE SUB PODPROGRAM(ZMIENNA) ZMIENNA = 10 - przypisanie wartości 10 CALL PODPROGRAM(ZMIENNA) - wywołanie naszego podprogramu - koniec pętli - koniec programu głó wnego SUB PODPROGRAM(ZMIENNA AS BYTE) HOME - ustawienie kursora w 1 linii 1 znak LCD ZMIENNA - wyświetlenie zmiennej czyli 10 SUB - koniec podprogramu Copyright 2002-2004 by μ MAX 9

WYŚWIETLACZ ALFANUMERYCZNY LCD W Bascomie sterowanie wyświetlaczy alfanumerycznych LCD jest banalnie proste. Wystarczy tylko poinformować kompilator, do któ rych linii portu będzie on podłą czony (OPTIONS/COMPILER/LCD) i zadeklarować na począ tku programu rodzaj podłą czanego wyświetlacza: CONFIG LCD=[ilość _znakó w]*[ilość _linii] gdzie ilość znakó w i ilość linii może być następują ca: 40*4, 40*2, 16*1, 16*1a, 16*2, 16*4, 16*4, 20*2, 20*4,40*4a W przypadku problemó w ze sterowaniem 16*1 lub 40*4 należ y zmienić je na 16*1a lub 40*4a Bascom pozwala na wykonywanie następują cych operacji na wyświetlaczu: LCD "TEKST" - wyświetlenie napisu TEKST LCD [zmienna] - wyświetlenie zmiennej LCD "tekst"; [zmienna] - wyświetlenie w jednej linii napisu TEKST i wartości zmiennej CLS - czyszczenie wyświetlacz CURSOR ON/OFF, BLINK/NOBLINK - operacje na kursorze gdzie ON/OFF - włą cz lub wyłą cz kursor, BLINK/NOBLINK - włą cz lub wyłą cz miganie kursora, polecenia ta mogą działać oddzielnie, czyli możemy np. napisać: CURSOR BLINK LOCATE [linia],[pozycja_kursora] - ustawienie kursora na linii i pozycji SHIFTCURSOR LEFT/RIGHT - przesuwanie kursora w lewo lub wprawo SHIFTLCD LEFT/RIGHT - przesuwanie tekstu w lewo lub w prawo DISPLAY ON/OFF - włą czenie lub wyłą czenie wyświetlacza UPPERLINE - przejście kursora do wyższej linii LOWERLINE - przejście kursora do niższej linii THIRDLINE - przejście kursora do trzeciej linii FOURTHLINE - przejście kursora do czwartej linii DEFLCDCHAR [numer_banku], 31, 17, 17, 17, 17, 17, 31, 0 - deklarowanie własnego znaku np. polskich liter, gdzie numer_banku: 0..7. Aby stworzyć dowolny znak należy wybrać z menu TOOLS/LCD DESIGNER, a następnie narysować żądany znak. Bascom automatycznie wstawi polecenie DEFLCDCHAR do programu. My tylko musimy podać numer banku wywołują c poleceniem CHR([nr_banku]). Np. LCD CHR(0) Copyright 2002-2004 by μ MAX 10

WYŚWIETLACZ ALFANUMERYCZNY LCD Porady: Jeśli chcesz wyświetlić tekst np. na środku wyświetlacza 1x16, zamiast pisać: Home Lcd " wyraz " uż yj poleceń: Locate 1, 7 Lcd "wyraz" Drugi przykład jest bardziej optymalny - wykonanie jego zajmuje mniej czasu. Jeśli potrzebujesz wyczyścić tylko jedną linię wyświetlacza 2x16 uż yj konstrukcji: Lowerline Lcd " " Copyright 2002-2004 by μ MAX 11

WARUNEK IF...THEN IF [zdarzenie] THEN... - to co ma się zdarzyć jeśli warunek będzie spełniony ELSE... - to co ma się zdarzyć jeśli warunek nie będzie spełniony IF - koniec warunku Zdarzenie moż e mieć nastę pują cą postać: [zmienna] = 0 - jeśli zmienna będzie ró wna zero P1.0 = 1 - jeśli bit 0 portu P1 będzie ró wny jeden Przykład: DIM Licznik AS BYTE INCR Licznik IF licznik = 15 THEN Licznik = 0 IF - deklaracja zmiennej LICZNIK - począ tek pętli - zwiększenie o 1 zmiennej LICZNIK - jeśli LICZNIK = 15 to - wyzeruj zmienną licznik - koniec warunku przepełnienia - koniec pętli i powró t do jej począ tku Oczywiście można realizować warunek pod spełnieniem innego warunku. Przykład 2: DIM licznik_1 AS BYTE - deklaracja zmiennej LICZNIK_1 DIM licznik_2 AS BYTE - deklaracja zmiennej LICZNIK_2 - począ tek pętli IF licznik_1 = 15 THEN - jeśli LICZNIK_1 = 15 to licznik_1 = 0 - wyzeruj licznik_1 INCR licznik_2 - zwiększenie o 1 zmiennej LICZNIK_2 IF licznik_2 = 20 THEN - jeśli LICZNIK_2 = 20 to licznik_2 = 0 - wyzeruj licznik_2 IF - koniec warunku 2 IF - koniec warunku 1 INCR licznik_1 - zwiększenie o 1 zmiennej LICZNIK_1 - koniec pętli i powró t do jej począ tku Program działa następują co. Na począ tku żaden z warunkó w nie jest spełniony dopó ty, dopó ki ta zmienna nie osią gnie wartości 15. Po osią gnięciu tej wartości zmienna pierwsza jest zerowana, a druga (licznik_2) jest incrementowana (zwiększana o 1). Po spełnieniu warunku dla drugiej zmiennej, jest ona zerowana, a program działa tak, że LICZNIK_2 jest zerowany co 15 x 20 czyli co 300 pętli. Copyright 2002-2004 by μ MAX 12

INSTRUKCJA WYBORU CASE Chcą c wstawić instrukcję wyboru CASE w programie piszemy: SELECT CASE [zmienna] CASE [warunek_1] :... - operacje wykonywane przy spełnieniu warunku 1 CASE [warunek_2] :... - operacje wykonywane przy spełnieniu warunku 2 CASE ELSE :... - operacje wykonywane w przypadku, kiedy ż aden z powyższych warunkó w nie został spełniony SELECT - koniec uwarunkowań Przykład: CONFIG LCD = 16 * 1 DIM LICZNIK AS BYTE - deklaracja zmiennej licznik LICZNIK = 0 - wyzerowanie zmiennej - począ tek pętli INCR LICZNIK - zwiększenie wartości licznik o 1 SELECT CASE LICZNIK - począ tek uwarunkowań CASE 100 : - jeśli zmienna ma wartość 100 to LCD "LICZNIK =" ; LICZNIK - wyświetl na Lcd LICZNIK = [wartość licznika] CASE 200 : - analogicznie LCD "LICZNIK =" ; LICZNIK CASE IS < 10 : - jeśli zmienna licznik ma wartość mniejszą od 10 to... LCD "LICZNIK < 10" CASE 11 TO 20 : - jeśli wartość jest z przedziału od 11 do 20 to LCD "11 < LICZNIK < 20" CASE ELSE : - wartość nie spełnia powyż szych warunkó w LCD "LICZNIK MA INNĄ WARTOŚĆ " SELECT Copyright 2002-2004 by μ MAX 13

OPÓ ŹNIENIA CZASOWE DELAY WAITMS [milisekundy] WAIT [sekundy] - opóźnienie ok. 100us dla kwarcu 12MHz - opóźnienie w milisekundach - opóźnienie w sekundach ró wnież w zakresie 8 bitó w Przykład: LED ALIAS P1.7 RESET LED - wyzerowanie LED, a właściwie linii P1.7 WAIT 1 - poczekaj 1 sekundę SET LED - ustawienie linii 7 z portu 1 WAIT 1 Przykład 2: LED ALIAS P1.7 RESET LED - wyzerowanie LED, a właściwie linii P1.7 WAITMS 200 - poczekaj 200 milisekund SET LED - ustawienie linii 7 z portu 1 WAITMS 200 - poczekaj 200 milisekund Copyright 2002-2004 by μ MAX 14

PRZERWANIA Przerwania: INT0 INT1, SERIAL, TIMER0, TIMER1,TIMER2, INT3, INT4, INT5, INT6, INT7, INT8 Zależy to od uż ywanego mikroprocesora. W przypadku procesora 89CX051 mamy do dyspozycji dwa przerwania oraz dwa timery. ON [przerwanie] [podprogram] ENABLE INTERRUPTS ENABLE [przerwanie] DIASBLE [przerwanie] - informacja dla kompilatora, któ ry podprogram ma być wykonywany przy podanym przerwaniu - odblokowanie układu przerwań - odblokowanie podanego przerwania - wyłą czenie podanego przerwania Przykład: ON INT0 PRZERWANIE ENABLE INTERUPTS ENABLE INT0... - program głó wny PRZERWANIE:... - instrukcje przerwania RETURN Copyright 2002-2004 by μ MAX 15

MAGISTRALA I²C Na począ tku deklaracja linii danych i zegara. Są ró wnież ustawienia tych bitó w w kompilatorze, lecz deklaracja programowa ma priorytet. CONFIG SDA = P3.5 CONFIG SCL = P3.7 Następnie w programie piszemy: I2CSTART I2CWBYTE [zmienna], ACK/NACK I2CRBYTE [zmienna], ACK/NACK I2CSTOP - warunek startu szyny - zapis zmiennej z potwierdzeniem (ACK) lub bez (NACK) - odczyt zmiennej z potwierdzeniem (ACK) lub bez (NACK). - warunek stopu szyny. Przykład dla układu RTC PCF8583: I2CSTART I2CWBYTE 162 I2CWBYTE 2 I2CSTART I2CWBYTE 163 I2CRBYTE S, Ack I2CRBYTE M, Ack I2CRBYTE H, Ack I2CRBYTE Day, Ack I2CRBYTE Month, Nack I2CSTOP - start - zapis adresu układu - wybó r rejestru - kolejny sygnał startu na magistrali - zapis adresu do odczytu - odczyt danych Przedstawiony wycinek programu przedstawia komunikację z układem PCF8583 spod adresu 162 i odczyt danych (czasu i daty). Przykład dla układu PCF8574 I2CS 78, DANA WAITMS 10 I2CRECEIVE 79, DANA_R - wysłanie wartości zmiennej DANA do układu - zwłoka 10 milisekund - odczyt wartości z układu do DANA_R Copyright 2002-2004 by μ MAX 16

INFORMACJE Kurs Bascom8051 został napisany przez autoró w serwisu μ MAX. Plik moż e być rozpowszechniany bez ograniczeń pod warunkiem zachowania jego zawartości oraz treści. Za kopiowanie kursu nie można pobierać jakichkolwiek opłat. Zawartość treściowa kursu moż e ulegać zmianom i aktualizacji. Adres: Mail: http:// scaut@umax.prv.pl Copyright 2002-2004 by μ MAX 17