ĆWICZENIE. TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON



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

LABORATORIUM STEROWNIKÓW MIKROPROCESOROWYCH

Badanie modułów wewnętrznych mikrokontrolera 311[07].Z4.02

Przetworniki analogowo-cyfrowe (A/C)

PRZETWORNIK ADC w mikrokontrolerach Atmega16-32

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

Instytut Teleinformatyki

Przetwornik analogowo-cyfrowy

Technika Mikroprocesorowa Laboratorium 5 Obsługa klawiatury

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

Mikrokontrolery z rdzeniem ARM, część 21

Politechnika Warszawska

M-1TI. PRECYZYJNY PRZETWORNIK RTD, TC, R, U NA SYGNAŁ ANALOGOWY 4-20mA Z SEPARACJĄ GALWANICZNĄ. 2

Zastosowania mikrokontrolerów w przemyśle

Ćw. 1 Wprowadzenie: Obsługa mikroprocesorowych modułów, podstawy techniki programowania, obsługa operacji WE/WY

Przetworniki analogowo-cyfrowe

Programowanie mikrokontrolerów AVR z rodziny ATmega.

Instytut Teleinformatyki

Przetwarzanie analogowo-cyfrowe sygnałów

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

Start Bity Bit Stop 1 Bit Par Rys. 1

INSTRUKCJA OBSŁUGI systemu pomiarowego

Instytut Teleinformatyki

Uproszczony schemat blokowy konwertera analogowo-cyfrowego przedstawiony został na rys.1.

ad a) Konfiguracja licznika T1 Niech nasz program składa się z dwóch fragmentów kodu: inicjacja licznika T1 pętla główna

Opis ogólny SAV5.HT

MIKROPROCESORY architektura i programowanie

LABORATORIUM nr 2. Temat: Obsługa wyświetlacza siedmiosegmentowego LED

Parametryzacja przetworników analogowocyfrowych

Imię i nazwisko (e mail) Grupa:

MIKROPROCESORY architektura i programowanie

Poradnik programowania procesorów AVR na przykładzie ATMEGA8

SPECYFIKACJA PRZETWORNIK RÓŻNICY CIŚNIEŃ

Instytut Teleinformatyki

Architektura mikrokontrolera MCS51

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

Architektura mikrokontrolera MCS51

Instytut Teleinformatyki

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

Badanie właściwości tłumienia zakłóceń woltomierza z przetwornikiem A/C z dwukrotnym całkowaniem

Klawiatura matrycowa

Układ pomiarowy CoachLab II

Przetwarzanie AC i CA

INDU-52. Przemysłowy Sterownik Mikroprocesorowy. Przeznaczenie Kotły warzelne, Patelnie gastronomiczne, Piekarniki

Ćw. 10 Badanie toru przetwarzania C/A w mikrokontrolerach analogowych

Ćwiczenie 9 Częstościomierz oparty na µc 8051(8052)

Programowanie mikrokontrolerów AVR z rodziny ATmega.

SiMod-X-(A1) Przetwornik parametrów powietrza z interfejsem RS485 (MODBUS RTU) oraz wyjściem analogowym (dotyczy wersji -A1)

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

Przetworniki cyfrowo analogowe oraz analogowo - cyfrowe

Przetwarzanie A/C i C/A

Schemat blokowy architektury AVR

Programowanie mikrokontrolerów. 8 listopada 2007

WYKŁAD 8. Funkcje i algorytmy rekurencyjne Proste przykłady. Programy: c3_1.c..., c3_6.c. Tomasz Zieliński

Inż. Kamil Kujawski Inż. Krzysztof Krefta. Wykład w ramach zajęć Akademia ETI

Temat: System przerwań, liczniki i wyświetlacz w STRC51. Ćwiczenie 3.

Instrukcja do ćwiczeń

Ćw. 7 Przetworniki A/C i C/A

Research & Development Ultrasonic Technology / Fingerprint recognition

Przemysłowy Sterownik Mikroprocesorowy

Przetworniki analogowo - cyfrowe CELE ĆWICZEŃ PODSTAWY TEORETYCZNE Zasada pracy przetwornika A/C

Przetworniki AC i CA

Wstęp Architektura... 13

Interfejs analogowy LDN-...-AN

Pliki w C/C++ Przykłady na podstawie materiałów dr T. Jeleniewskiego

Przemysłowy Sterownik Mikroprocesorowy

Jacek Szlachciak. Urządzenia wirtualne systemu wieloparametrycznego

Schemat funkcjonalny układu automatycznej regulacji

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

OPIS STEROWNIKA 841 USB

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

PROGRAM TESTOWY LCWIN.EXE OPIS DZIAŁANIA I INSTRUKCJA UŻYTKOWNIKA

Notatka lekcja_#3_1; na podstawie W.Kapica 2017 Strona 1

Sygnał a informacja. Nośnikiem informacji mogą być: liczby, słowa, dźwięki, obrazy, zapachy, prąd itp. czyli różnorakie sygnały.

Badanie przetworników A/C i C/A

Sterownik nagrzewnic elektrycznych HE module

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

Instrukcja obsługi rejestratora cyfrowego DLM-090

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

Instrukcja do laboratorium Akademii ETI *

TECHNIKA MIKROPROCESOROWA II

Obługa czujników do robota śledzącego linie. Michał Wendland czerwca 2011

PRZETWORNIKI A/C I C/A.

Komunikacja w mikrokontrolerach Laboratorium

Przetworniki A/C i C/A w systemach mikroprocesorowych

Zerowanie mikroprocesora

Laboratorium Asemblerów, WZEW, AGH WFiIS Tester NMOS ów

Łukasz Wieczorek Paweł Zaleski Grupa I3 [REFLEKSOMETR] Systemy wbudowane projekt laboratoryjny.

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

ZAKŁAD SYSTEMÓW ELEKTRONICZNYCH I TELEKOMUNIKACYJNYCH Laboratorium Podstaw Telekomunikacji WPŁYW SZUMÓW NA TRANSMISJĘ CYFROWĄ

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

M-1TI. PROGRAMOWALNY PRECYZYJNY PRZETWORNIK RTD, TC, R, U / 4-20mA ZASTOSOWANIE:

OPIS STEROWNIKA 821B USB

2 Przygotował: mgr inż. Maciej Lasota

PROCESORY SYGNAŁOWE - LABORATORIUM. Ćwiczenie nr 03

Struktury specjalizowane wykorzystywane w mikrokontrolerach

8 kanałowy przedłużacz analogowy z RS485

Instrukcja obsługi rejestratora SAV35 wersja 10

TECHNIKA MIKROPROCESOROWA

TERMINAL DO PROGRAMOWANIA PRZETWORNIKÓW SERII LMPT I LSPT MTH-21 INSTRUKCJA OBSŁUGI I EKSPLOATACJI. Wrocław, lipiec 1999 r.

Transkrypt:

ĆWICZENIE TEMAT: OBSŁUGA PRZETWORNIKA A/C W ukontrolerze 80C535 KEILuVISON

Wiadomości wstępne: Wszystkie sygnały analogowe, które mają być przetwarzane w systemach mikroprocesorowych są próbkowane, kwantowane i kodowane. Próbkowanie umożliwia wyznaczenie wartości chwilowych sygnału, kwantowanie przekształcenie ciągłej wartości chwilowej na wartość dyskretną, a kodowanie na zminę dyskretnej wartości chwilowej sygnału na kod binarny. Mikrokontroler SAB80C515/535 posiada w strukturze wewnętrznej przetwornik A/C. 15 cykli maszynowych w procesorze SAB 80515/535 13cykli maszynowych w procesorze SAB 80C515/535 Schemat blokowy przetwornika analogowo cyfrowego mikrokontrolera SAB 80C515/535 Programowanie przetwornika A/C związane jest z: -wyborem nr wejściowego kanału analogowego, bity MX2...MX0 w rejestrze ADCON -ustaleniem rodzaju przetwarzania, znacznik ADM w rejestsze ADCON: ADM=0- pomioar pojedynczy, ADM=1-seria pomiarów do chwili,w której ADM=0 Rejestr sterujacy przetwornika ADCON analogowo-cyfrowego DB CLK - BSY ADM MX2 MX1 MX0 BUSY- jesli busy =1, trwa przetwarzanie, kasowany samoczynnie po zakonczeniu, ADM = 1 - przetwarzanie ciagle, 0 - przetwarzanie jednokrotne, MX2- bity wyboru jednego z 8-miu kanalow przetwornika a/c MX1- bity wyboru jednego z 8-miu kanalow przetwornika a/c MX0- bity wyboru jednego z 8-miu kanalow przetwornika a/c

-odblokowanie systemu przerwań, znacznik EAL w rejestrze IEN0, jeśli o zakonczeniu przetwarzania jest przerwanie od przetwornika, znacznik EADC w rejestrze IEN1. Rejestr masek przerwań, IEN0 A8h EAL WDT ET2 ES ET1 EX1 ET0 EX0 EAL - globalna maska przerwan, WDT- flaga odswiezania licznika watch-doga, kasuje sie samoczynnie po trzech cyklach maszynowych od ustawienia ET2 - maska przerwania timera2, ES - maska przerwania kanalu szeregowego, ET1 - maska przerwania timera1, EX1 - maska przerwania int1, ET0 - maska przerwania timera0, EX0 - maska przerwania int0, IEN1 B8h EXEN2 SWDT EX6 EX5 EX4 EX3 EX2 EADC EXEN2- gdy ustawiony, umozliwia przerwanie od zewnetrznego przeladowania timera t2, SWDT- jesli jest ustawiona po reset-cie uruchamia licznik watch-dog-a, jesli ustawiona zaraz po ustawieniu wdt - zeruje licznik w-d, EX6 - gdy ustawiony, umozliwia przerwanie int6 EX5- gdy ustawiony, umozliwia przerwanie int5 EX4 - gdy ustawiony, umozliwia przerwanie int4 EX3 - gdy ustawiony, umozliwia przerwanie int3 EX2- gdy ustawiony, umozliwia przerwanie int2 EADC - gdy ustawiony, umozliwia przerwanie od przetwornika a/c -wyborem podzakresu pomiarowego, napięcie VintAGND (bity DAPR3...0) oraz napiecie VintAREF (bity DAPR7...4) DAPR 0DAH - rejestr napiec referencyjnych, Bit7 Bit6 Bit5 Bit4 Bit3 Bit2 Bit1 Bit0 NapięcieVintAREF Napięcie VintAGND Vgnd= Vagnd+ DAPR.3..0 16 * (Varef-Vagnd), DAPR.7..4 Vref= Vagnd+ * (Varef-Vagnd), Vref - Vgnd > 1V, 16

Zakończenie pomiaru sygnalizowane jest: -zerowa wartościa znacznika BSY w rejesrrze ADCON, -przerwaniem, ustawieniem znacznika IADC w rejestrze IRCON, IRCON C0h - rejestr zgłoszeń przerwań C7 C6 C5 C4 C3 C2 C1 C0 EXF TF2 IEX6 IEX5 IEX4 IEX3 IEX2 IADC EXF2 - flaga przeladowana t2, TF2 - przepelnienie timera2, IEX6 - zgloszenie przerwania int6, ustawiany przez procesor gdy na p1.3 pojawia sie sygnal przerwania lub zgodnosc porownania cc3, kasowany gdy zostaje obsluzone przerwanie, IEX5 - zgloszenie przerwania int5, ustawiany przez procesor gdy na p1.2 pojawia sie sygnal przerwania lub zgodnosc porownania cc2, kasowany gdy zostaje obsluzone przerwanie, IEX4 - zgloszenie przerwania int4, ustawiany przez procesor gdy na p1.1 pojawia sie sygnal przerwania lub zgodnosc porownania cc1, kasowany gdy zostaje obsluzone przerwanie, IEX3 - zgloszenie przerwania int3#, ustawiany przez procesor gdy na p1.0 pojawia sie sygnal przerwania lub zgodnosc porownania cc0, kasowany gdy zostaje obsluzone przerwanie, IEX2 - zgloszenie przerwania int2#, ustawiany przez procesor gdy na p1.4 pojawia sie sygnal przerwania lub zgodnosc porownania cc4, kasowany gdy zostaje obsluzone przerwanie, IADC - ustawiany przez procesor po konwersji a/c, musi byc kasowany programowo,

Tabela zmian podzakresów pomiarowych. Podzakres pomiarowy Podzakres pomiarowy 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Stan rejestru DAPR Dolna wartość napięcia podzakresu pomiarowego Górna wartość napięcia podzakresu pomiarowego DAPR 3...0 DAPR 7...4 V intgnd [V] V intref [V] 0000 0,0 5,0 0001 0,3125-0010 0,625-0011 0,9375-0100 0101 0110 0111 1000 1001 1010 1011 1100 1101 1110 1111 1,25 1,5625 1,875 2,1875 2,5 2,8125 3,125 3,4375 3,75 - - - 1,25 1,5625 1,875 2,1875 2,5 2,8125 3,125 3,4375 3,75 4,0625 4,375 4,6875 W zależności od wartości bitów rejestru DAPR uzyskiwanych jest 16 podzakresów pomiarowych. Zasada dwuetapowego pomiaru napięcia, np. wartość U x =3,857 V z rozdzielczością 10-bitów jest następująca: wykonanie pierwszego pomiaru napięcia U x w pełnym zakresie pomiarowym 0...5 [V] obliczenie na podstawie pierwszego pomiaru właściwego podzakresu pomiarowego tek, aby wartość mierzonego napięcia U x odległa była od wartości krańcowych podzakresu; najkorzystniej jest przyjąć takie wartości, aby mierzone napięcie U x znalazło się w połowie podzakresu pomiarowego, wykonanie drugiego pomiaru napięcia U x w zmniejszonym podzakresie pomiarowym, np. 3,125... 4,375[V] obliczenie na podstawie dwóch pomiarów i znajomości granic zmniejszonego podzakresu pomiarowego pełnego wyniku z U 0,005V (jak w przypadku rozdzielczości dla przetwornika 10-bitowego)

Zadanie 1. Napisz program dokonujący pomiaru napięcia na kanale AN7, a następnie wyświetlający zakodowany wynik pomiaru na diodach portu P5. Zakres pomiarowy 0 5. U Wynik pomiaru U X = K* U U= REF max U REF min N 2 #include <REG515.h> #include <stdio.h> void main(void) ADCON = 0x07; DAPR = 0x00; while(1) while(!bsy) P5=ADDAT; DAPR = 0x00;

Zadanie 2. Pomiar napięcia z kanału AN7 na wciśnięty klawisz P3.2, wysłanie wyniku przez port szeregowy za pomocą funkcji printf. #include <REG515.h> #include <stdio.h> sbit kl=p3^2; float ufs =5; float u; void delay(void) unsigned int i=300; while(i--); void init_rs (void) SCON=0x40; TMOD =0x20; TH1=TL1=0xFD; TR1=1; TI=1; void main(void) unsigned char c, kl_p=1; init_rs(); ADCON = 0x07; //inicjowanie portu szeregowego while(1) if (kl==0&&kl_p==1) DAPR = 0x00; while(bsy= = 1); c=addat; u=ufs*c/256; printf("napięcie [V] = %f\n", u); P5=ADDAT; kl_p=kl; delay();

Zadanie 3. Napisz program który wykonuje dwukrotny pomiar napięcia, najpierw na całym zakresie a następnie w zakresie zmniejszonym. Wg rysunku. Wynik pomiaru wysłać przez port szeregowy. Pomiary powinny być wykonane na naciśnięcie klawisza P3^0 pełny zakres P3^1 zmniejszony. U V int REF =4,375V 5 V int REF =4,375V U x =3,857V pomiar w zakresie 3,125.. 4,375V V int GND =3,125V 0 V int REF =0V pomiar wstępny V Przykładowy program mierzący napięcie w zakresie od 0 do 5V a następnie od 0 do 1,25V #include <REG515.h> #include <stdio.h> sbit kl=p3^0; float ufs =5,ufs1=1.25; float u; void delay(void) unsigned int i=50000; while(i--); void init_rs (void) SCON=0x40; TMOD =0x20; TH1=TL1=0xFD; TR1=1; TI=1; void main(void) unsigned char c; init_rs(); ADCON = 0x07; //inicjowanie portu szeregowego while(1) DAPR=0x00; while(bsy==1);

c=addat; u=ufs*c/256; printf("napięcie [V] = %f\n", u); P5=ADDAT; delay(); DAPR=0x40; while(bsy==1); c=addat; u=ufs1*c/256; printf("napięcie [V] = %f\n", u); P1=ADDAT; while(kl==1);

Zadanie 4. Pomiar napięcia na kanale AN7 w pełnym zakresie na wciśnięty klawisz P5.7 oraz pomiar napięcia w zakresie 0 1.25V na wciśnięty klawisz P5.0 W zadaniu należy dopisać jeszcze pomiary dla następujących zakresów: kl1 P5.1 zakres 1.25 2.5 V kl2 P5.2 zakres 2.5 3.75 V kl3 P5.3 zakres 3.75 4.6875 V Zadanie 6. Czujnik LM 35 daje napięcie proporcjonalne do temperatury w zakresie od 0 do 150 O C, 0V- 0 o C na każdy stopień 10mV/ o C. Napisz program symulujący pomiar temperatury i wyświetlający wynik portem szeregowym. 5V uk LM35 WY AN0 89C535 T= 100 *WY gdzie T ( o C) #include <REG515.h> #include <stdio.h> sbit kl=p3^0; float ufs =1.25; float u,t; void delay(void) unsigned int i=50000; while(i--); void init_rs (void) SCON=0x40; TMOD =0x20; TH1=TL1=0xFD; TR1=1; TI=1; void main(void) unsigned char c; init_rs(); ADCON = 0x07; //inicjowanie portu szeregowego while(1)

DAPR=0x40; while(bsy==1); c=addat; u=ufs*c/256; T=100*u; printf("temperatura [C] = %.1f\n", T); P5=ADDAT; delay( ); while(kl==1);

Zadanie 5. Napisz program wypisujący przez port szeregowy wartość 0 100 % odczytaną z przetwornika A/C na kanale AN7. W zadaniu wykorzystaj bibliotekę stworzoną w ćwiczeniu 5 system.h system.h #include<reg515.h> void init_rs (void) //inicjowanie portu szeregowego SCON=0x40; TMOD =0x20; TH1=TL1=0xFD; TR1=1; TI=1; void putc_rs (char x) //wysłanie znaku portem szeregowym SBUF=x; while (TI==0); TI=0; void puts_rs (char *s) //wysłanie łańcucha portem szeregowym while(*s) putc_rs(*s); s++;

Program główny: #include<system.h> #include<stdio.h> void delay() unsigned int i=60000; while(i--); void main (void) unsigned char c; char buf[6]; float u; init_rs(); ADCON=0x07; /*POMIAR POJEDYNCZY KANAŁ 7*/ while(1) DAPR=0x00; /* ZAKRES 0-5V*/ while (BSY!=0); c=addat; u = c*100.0/255.0; sprintf(buf,"%.0f %%", u); putc_rs('\n'); puts_rs(buf); delay();

Zadanie 6. Napisz program, w którym jeśli napięcie przekroczy wybraną wartość (np. 2V) to włączą się diody portu P5 (ALARM), jeśli napięcie będzie poniżej tej wartości to Port P5 ma być wyłączony. Wartość napięcia ma być wysyłana portem szeregowym.