Listing_ $crystal = deklaracja

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

Programowanie mikrokontrolerów - laboratorium

Programowanie mikrokontrolerów - laboratorium

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

Miernik częstotliwości 100 MHz

Nadajnik Nokton NR4 MAXIM przeróbka do zastosowań APRS MHz

Dalmierze firmy SHARP na przykładzie 2D120XJ100F

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

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

Zawody II stopnia etap II - ćwiczenia laboratoryjne Grupa Elektroniczna

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

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

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

Ćwiczenie nr 43 Mikrokontroler

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

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Wyświetlacz alfanumeryczny LCD zbudowany na sterowniku HD44780

Uniwersalny sterownik do napędu bramy

Programowanie Mikrokontrolerów

KURS BASCOM 8051 INDEX:

Enkoder z silnika HDD lub FDD

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

Przystawka do odbiornika homodynowego na pasmo 80 m

Peryferia mikrokontrolerów - wykład 11

Moduł Bluetooth WT12 w praktyce, część 2

HMGRC v.1.1. Home Made Group Repeater Controler

PRUS. projekt dokumentacja końcowa

Podstawowe urządzenia peryferyjne mikrokontrolera ATmega8 Spis treści

Szkolenia specjalistyczne

DTMF Controler DC1 DCE1

LabVIEW PLATFORMA EDUKACYJNA Lekcja 6 LabVIEW i Arduino programy wykorzystujące wyświetlacz LCD, czujnik temperatury, PWM i diodę LED

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

INSTRUKCJA OBSŁUGI MIERNIKA POZIOMU SYGNAŁU. Wersja 1.1

Systemy Wbudowane. Arduino C. Arduino C - stałe. Arduino C - Stałe. Arduino C - Stałe. Funkcje matematyczne. Arduino C - Stałe

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

SPECYFIKACJA PRZETWORNIK RÓŻNICY CIŚNIEŃ DPC250; DPC250-D; DPC4000; DPC4000-D

System pomiaru przyspieszeń AL154AG02.A

Dokumentacja Techniczna. Czytnik RFID UW-M4GM

Wizualizacja stanu czujników robota mobilnego. Sprawozdanie z wykonania projektu.

Instrukcja do ćwiczeń

Opis Ogólny OPIS OGÓLNY LICZNIKA AL154LI01.

Mikrokontrolery AVR Wprowadzenie

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

Ćwiczenie nr 43 Mikrokontroler Mikrokontroler

Wyłącznik czasowy GAO EMT757

Wstęp Architektura... 13

Obsługa wyświetlaczy graficznych w Bascom, część 2

Podstawy techniki mikroprocesorowej

Rodzaje peryferii. Wyświetlacze LCD. Przetworniki AC. Przetworniki CA, modulacja PWM. sterowanie silnikami i serwami

APPLICATION OF ADUC MICROCONTROLLER MANUFACTURED BY ANALOG DEVICES FOR PRECISION TENSOMETER MEASUREMENT

INSTRUKCJA OBSŁUGI MIERNIKA GRUBOŚCI LAKIERU MGL2 AL <> FE

1. Wstęp Różnice pomiędzy mikrokontrolerami ST7 a ST7LITE Rdzeń mikrokontrolerów ST7FLITE... 15

Dokumentacja Licznika PLI-2

INSTRUKCJA PANEL STERUJĄCY MT-5

CONVERT SP. Z O.O. MK-30-DC M30300 LICZNIK ENERGII PRĄDU STAŁEGO INSTRUKCJA UŻYTKOWNIKA. CIRCUTOR S.A. CONVERT Sp. z o.o.

Sterownik RO WS-01E opis działania, obsługa

Ćwiczenie 2. Siedmiosegmentowy wyświetlacz LED

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

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

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

wersja 07 Instrukcja obsługi urządzenia sterującego do biologicznych przydomowych oczyszczalni ścieków ROTH MICRO-STEP

Instytut Teleinformatyki

Obrotomierz AVT 5260 PROJEKTY

Opis układów wykorzystanych w aplikacji

PRACOWNIA MIKROKPROCESOROWA

INSTRUKCJA OBSŁUGI TABLICY WYNIKÓW SPORTOWYCH SERIA PROFI

2. Architektura mikrokontrolerów PIC16F8x... 13

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

Gotronik. Panelowy miernik napięcia prądu mocy energii elektrycznej DC

Instytut Teleinformatyki

Standardowe bloki funkcjonalne

Bluetooth łączy mikrokontrolery, część 2

KOMUNIKACJA Z OTOCZENIEM MIKROKONTROLERA

Instrukcja obsługi rejestratora SAV35 wersja 10

Sp. z o.o Czeladź ul. Wojkowicka 21 Tel. (0-32) , , Fax:

Instrukcja obsługi elektronicznego licznika typu 524. Model 524. Licznik sumujący i wskaźnik pozycji typu Opis. 1. Opis

Dokumentacja sterownika mikroprocesorowego "MIKSTER MCC 026"

GND(VSS) i VCC - masa i zasilanie. V0 - regulacja kontrastu

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

SPECYFIKACJA PRZETWORNIK RÓŻNICY CIŚNIEŃ

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

INDU-21. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie Masownice próżniowe, mieszałki

SKRÓCONA INSTRUKCJA OBSŁUGI

Pilot zdalnego sterowania DANE TECHNICZNE FUNKCJE PILOTA ZDALNEGO STEROWANIA

T 2000 Tester transformatorów i przekładników

Instrukcja i opis sterownika terrorystycznego GEKON

Elektronika cyfrowa mikrokontrolery dla początkujących BASCOM.

Licznik prądu EM 231 Nr produktu

Wydział Elektryczny. Katedra Telekomunikacji i Aparatury Elektronicznej. Konstrukcje i Technologie w Aparaturze Elektronicznej.

Higrometr Testo 623, %RH, -10 do +60 C

Dwukanałowy regulator temperatury NA24

Instrukcja uruchomienia. Symmetra LX PRZECZYTAĆ W PIERWSZEJ KOLEJNOŚCI

Instytut Teleinformatyki

P O L I T E C H N I K A W A R S Z A W S K A

Politechnika Warszawska

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

INSTRUKCJA OBSŁUGI STEROWNIKA DO SAUNY. FFES Serwis: Biuro:

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

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

Transkrypt:

------------------------------------------------- Listing_4 ---------------------------------------------------- $crystal = 8000000 deklaracja częstotliwości kwarcu $regfile "m8def.dat" biblioteka mikrokontrolera Deflcdchar 0, 27, 17, 17, 17, 17, 17, 17, 27 Deflcdchar 1, 31, 31, 31, 31, 31, 31, 31, 31 definicja dwóch nowych znaków wyświetlanych podczas powitania Config Pind.0 = Input Config Pind.1 = Input Config Pinc.5 = Input Config Pinc.4 = Input Config Pinc.3 = Input Config Pinc.2 = Input deklaracje pinów jako wejścia (przyciski sterujące) Config Pinb.4 = Output Config Pinb.3 = Output Config Pinb.2 = Output Config Pinb.1 = Output deklaracje pinów jako wyjścia (diody sygnalizacyjne) Set Portd.0 Set Portd.1 Set Portc.5 Set Portc.4 Set Portc.3 Set Portc.2 Set Portb.4 Set Portb.3 Set Portb.2 Set Portb.1 włączenie wewnętrznych rezystorów podciągających Config Lcd = 20 * 4 deklaracja typu wyświetlacza Config Lcdpin = Pin, Db4 = Portd.5, Db5 = Portd.6, Db6 = Portd.7, Db7 = Portb.0, E = Portd.3, Rs = Portd.2 deklaracja pinów do połaczenia z wyświetlaczem LCD Display On inicjacja wyświetlacza Cursor Off wyłączenie wyświetlania kursora Cls czyszczenie zawartości wyświetlacza

Lcd "Digital Power Meter" wyświetlamy napis Locate 2, 1 podanie lokalizacji na LCD Lcd "portalnaukowy.edu.pl" i wyświetlenie tam napisu Wait 3 czekamy 3 sekundy Cls czyścimy wyświetlacz Locate 1, 1 Lcd "Self Test Procesing" Lcd Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0); Portb.1 = 0 Lcd Chr(1) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0); Portb.2 = 0 Lcd Chr(1) ; Chr(1) ; Chr(1) ; Chr(0) ; Chr(0) ; Chr(0); Portb.3 = 0 Lcd Chr(1) ; Chr(1) ; Chr(1) ; Chr(1) ; Chr(0) ; Chr(0); Portb.4 = 0 Lcd Chr(1) ; Chr(1) ; Chr(1) ; Chr(1) ; Chr(1) ; Chr(0); Portb.1 = 1 Portb.2 = 1 Portb.3 = 1 Portb.4 = 1 Lcd Chr(1) ; Chr(1) ; Chr(1) ; Chr(1) ; Chr(1) ; Chr(1); Locate 3, 1 Lcd "No errors found..." Wait 2

Cls powyŝszy fragment programu wyświetla pasek postępu testowania systemu i odpowiednie teksty, zapala teŝ i gasi diody kontrolne. Funkcja raczej niepotrzebna ale ładnie się prezentuje Config ADC = Single, Prescaler = Auto, Reference = Avcc konfiguracja przetwornika Config Timer1 = Timer, Prescale = 256 konfiguracja timera On Timer1 Cykl realizacja podprogramu cykl po przepełnieniu Enable Interrupts globalne włączenie przerwań Enable Timer1 włączenie timera Timer1 = 59286 wpisanie do timera początkowej wartości by po odliczeniu pozostałości uzyskać przerwanie co 0,2s Dim Energy_flag As Bit Dim Timer_flag As Bit Dim 02sek As Byte Dim Sek As Byte Dim Minuty As Byte Dim Godziny As Byte Dim Volts1 As Word Dim Volts2 As Single Dim Volts3 As String * 3 Dim Sredniav As Single Dim Krokv As Byte Dim Current1 As Word Dim Current2 As Single Dim Current3 As String * 3 Dim Sredniac As Single Dim Krokc As Byte Dim Moc As Single Dim Moc2 As String * 3 Dim Mocmax As Single Dim Mocmax2 As String * 3 Dim Energy_chwil As Single Dim Energy As Single Dim Energy_wh As Single

Dim Energy_wh2 As String * 3 deklaracja wszystkich potrzebnych w programie zmiennych Start ADC uruchomienie przetwornika ADC Mocmax = 0 Timer_flag = 0 Energy_flag = 0 wpisanie początkowych wartości zmiennych Do Loop End pusta pętla programowa Cykl: poprogram realizowany po przepełnieniu timera co 0,2s Timer1 = 59286 If Pind.0 = 0 Then Timer_flag = 1 badanie stanu przycisku timer start, gdy naciśniemy flaga timera jest ustawiana na 1 If Pind.1 = 0 Then Timer_flag = 0 badanie stanu przycisku timer stop, flaga ustawia się na 0 If Pinc.5 = 0 Then Gosub Zeruj_timer badanie stanu przycisku timer clear, gdy naciśniemy realizowany jest podprogram Zeruj_timer If Pinc.4 = 0 Then Energy_flag = 1 If Pinc.3 = 0 Then Energy_flag = 0 If Pinc.2 = 0 Then Energy = 0 Energy_wh = 0

analogicznie jak w przypadku timera If Timer_flag = 1 Then Portb.4 = 0 Portb.3 = 1 If Timer_flag = 0 Then Portb.4 = 1 Portb.3 = 0 If Energy_flag = 1 Then Portb.2 = 0 Portb.1 = 1 If Energy_flag = 0 Then Portb.2 = 1 Portb.1 = 0 obsługa diod LED sygnalizujących stan timera i miernika Sredniav = 0 For Krokv = 1 To 10 Volts1 = Getadc(0) Sredniav = Sredniav + Volts1 Next Krokv Sredniav = Sredniav / 10 Volts2 = Sredniav * 0.048 pomiar napięcia z uśrednieniem 10 następujących po sobie pomiarów Sredniac = 0 For Krokc = 1 To 10 Current1 = Getadc(1) Sredniac = Sredniac + Current1 Next Krokc Sredniac = Sredniac / 10 Current2 = Sredniac * 0.0089 pomiar prądu analogicznie jak napięcia

Locate 1, 1 podanie lokalizacji na LCD Volts3 = Fusing(volts2, "##.&") zamiana wyniku pomiaru napięcia na tekst Lcd "U= " ; Volts3 ; " V " wyświetlenie wyniku Locate 1, 11 Current3 = Fusing(current2, "##.&") Lcd "I= " ; Current3 ; " A " zamiana wyniku pomiaru prądu I wyświetlenie analogicznie jak w przypadku napięcia Locate 2, 1 Przejście do drugiej linii wyświetlacza Moc = Volts2 * Current2 obliczenie mocy Moc2 = Fusing(moc, "###.&") zamiana wyniku obliczenia na tekst do wyświetlenia na LCD Lcd "P=" ; Moc2 ; "W " wyświetlenie mocy Locate 2, 11 przejście na dalszą pozycję linii If Moc > Mocmax Then Mocmax = Moc zatrzaśnięcie w zmiennej mocmax maksymalnej wartości mocy Mocmax2 = Fusing(mocmax, "###.&") Lcd "Pm=" ; Mocmax2 ; "W " zamiana na tekst I wyświetlenie szczytowej mocy Locate 3, 1 Przejście do linii trzeciej LCD If Energy_flag = 1 Then Gosub Energia badanie stanu flagi miernika energii, jeśli 1 realizowany jest podprogram Energia Energy_wh2 = Fusing(energy_wh, "#####.&&&&&") Lcd "E= " ; Energy_wh2 ; " Wh" zamiana wartości energii obliczonej w podprogramie na tekst I wyświetlenie jej w trzeciej linii. Locate 4, 1 If Timer_flag = 1 Then Gosub Czasomierz

badanie stanu flagi czasomierza, jeśli 1 realizowany jest podprogram czasomierz. Lcd "Time: " ; Godziny ; " h " ; Minuty ; " m " ; Sek ; " s " Return wyświetlenie w czwartej linii obliczonych w podprogramie godzin, minut I sekund pracy. Energia: podprogram obliczający energię chwilową i sumaryczną w czasie pracy. Energy_chwil = Moc * 0.2 E = P x t Energy = Energy + Energy_chwil sumowanie energii Energy_wh = Energy / 3600 przeliczenie z Ws na Wh Return powrót do programu głównego Czasomierz: podprogram obliczający czas Incr 02sek z kaŝdym uruchomieniem tego podprogramu czyli co 0,2s zwiększamy wartość zmiennej 02sek If 02sek = 5 Then 02sek = 0 Incr Sek jeśli wartość zmiennej 02sek wyniesie 5 minie jedna sekunda i zwiększamy wtedy wartość zmiennej Sek, zerując jednocześnie 02sek. If Sek = 60 Then Sek = 0 Incr Minuty If Minuty = 60 Then Minuty = 0 Incr Godziny Return analogicznie do zmiennej Sek postępujemy z pozostałymi. Zeruj_timer: Podprogram uruchamiany po naciśnieciu przycisku timer clear. Zeruje wartości zmiennych czasu. 02sek = 0 Sek = 0

Minuty = 0 Godziny = 0 Return