Klimatizace. Třída: 4.C. Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT. Skupina: 3. Zpráva číslo: 3



Podobné dokumenty
Digitální teploměr s LCD

D/A převodník. Třída: 4.C Elektrotechnická Havířov Protokol do MIT Skupina: 3. Střední Průmyslová Škola. Zpráva číslo: 4

Seznámení s mikropočítačem. Architektura mikropočítače. Instrukce. Paměť. Čítače. Porovnání s AT89C2051

Činnost CPU. IMTEE Přednáška č. 2. Několik úrovní abstrakce od obvodů CPU: Hodinový cyklus fáze strojový cyklus instrukční cyklus

RS485/MODBUS-RTU ver. 4 s rozšířením pro R24

Model ver SYSTEM EXCLUSIVE KOMUNIKACE CHD Elektroservis

Program "Světla" pro mikropočítač PMI-80

Strojový kód. Instrukce počítače

MIKROPOČÍTAČOVÉ SYSTÉMY

Komunikace modulu s procesorem SPI protokol

Modul LCD displeje se čtyřmi tlačítky. Milan Horkel

Čísla, reprezentace, zjednodušené výpočty

Jako pomůcka jsou v pravém dolním rohu vypsány binární kódy čísel od 0 do 15 a binární kódy příkazů, které máme dispozici (obr.21). Obr.


Číselné soustavy v mikroprocesorové technice Mikroprocesorová technika a embedded systémy

Mikrořadiče řady 8051.

Registrační teploměr

Převodník DCPSE. Komunikační protokol

Čísla, reprezentace, zjednodušené výpočty

Programátorský model procesoru x51

Podprogram DELAY.INC. - konstanty časových prodlev. RB3 equ 11b DEL1MS: DEL800: DEL400: DEL200 DEL100 DELAY: ret DEL1MS

SPÍNACÍ HODINY. Nastavení hodin a předvolby. Obr. 1

Obsah. Popis funkcí. RS485/MODBUS-RTU ver Komunikace s převodníkem probíhá na principu MASTER - SLAVE. Protokol MODBUS mát tuto strukturu:

Číslicový zobrazovač CZ 5.7

A51 MACRO ASSEMBLER POKUSNY PROGRAM DATE 10/3/007 PAGE 1

velikosti vnitřních pamětí? Jaké periferní obvody má na čipu a k čemu slouží? Jaká je minimální sestava mikropočítače z řady 51 pro vestavnou aplikaci

v aritmetické jednotce počíta

POKLADNÍ DISPLEJ LCD. hotline: strana 1

Laboratorní cvičení z předmětu Elektrická měření 2. ročník KMT

Fz =a z + a z +...+a z +a z =

Pohled do nitra mikroprocesoru Josef Horálek

Analyzátor sériového rozhraní RSA1B

Znakové. Zapojení vývodů. standard. vývod. popiss napájení GND G napájení +5V =data) Data Bus 0

NÁVOD K OBSLUZE SENSORU MULI6S MODUL

Data v počítači. Informační data. Logické hodnoty. Znakové hodnoty

setup() { I = 0; } loop() { I = I + 1; }

Uživatelský manuál. KNXgal. řízení zabezpečovacích ústředen. Galaxy ze sběrnice KNX. napájeno ze sběrnice KNX. indikace komunikace na KNX

od jaké adresy bude program umístěn? Intel Hex soubor, co to je, z čeho a jak se získá, k čemu slouží? Pseudoinstrukce (direktivy) překladače ORG, SET

7 Přímý tisk (PictBridge)

Základy informatiky. 2. Přednáška HW. Lenka Carr Motyčková. February 22, 2011 Základy informatiky 2

Otáčkoměr MS6208B R298B

Jak do počítače. aneb. Co je vlastně uvnitř

Quido - MODBUS. Kompletní popis protokolů MODBUS RTU a TCP v I/O modulech Quido. 20. listopadu 2015 w w w. p a p o u c h.

Maticová klávesnice. Projekt do předmětu Subsystémy PC. Brno, Tomáš Kreuzwieser, Ondřej Kožín

Zobrazovač teploty, času, datumu a textů. 1. Nastavení nového datumu ( z procedury Vlož text )

VYSOKÉ UČENÍ TECHNICKÉ V BRNĚ Fakulta informačních technologií

ACM-MODBUS, popis komunikace s převodníkem

PB002 Základy informačních technologií

REG10. návod k použití. záznamová jednotka stavů logických vstupů CBF

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

Praktické úlohy- 2.oblast zaměření

Středoškolská technika 2015 MODEL STARTOVACÍCH HODIN

Digitální indikátor přeřazení

Návod na práci s přípravkem a programem uscope na cvičeních

Mikroprocesorová technika (BMPT)

Vstupně - výstupní moduly

Návod k obsluze. Bezkontaktní teploměr - pyrometr Sonel DIT 500

Komunikace MODBUS pro převodníky AIM600, AIM615. UINT16 Bezznaménkový celočíselný datový typ o velikosti 16bitů rozsah 0 až 65535

CH_SW_71 - V1.0. Program vytváří z obvodu PIC16C71 / PIC16C711 přepínač vstupů pro NF zesilovač.

Návod na obsluhu Pípáku2 verse V0.1 (PŘEDBĚŽNÝ NÁVOD).

Semestrální práce z předmětu ÚPA MIPS

Malý distribuovaný I/O modul

Akademický rok: 2004/05 Datum: Příjmení: Křestní jméno: Osobní číslo: Obor:

Střední průmyslová škola a Vyšší odborná škola, Hrabákova 271, Příbram. III / 2 = Inovace a zkvalitnění výuky prostřednictvím ICT

JETT7 dechový alkohol tester Návod k použití

Architektury počítačů

TENZOMETRICKÉ MĚŘIDLO

8. Laboratoř: Aritmetika a řídicí struktury programu

Reprezentace dat v informačních systémech. Jaroslav Šmarda

BASPELIN CPM. Popis komunikačního protokolu verze EQ22 CPM EQ22 KOMPR

NASTAVENÍ PROPORCIONÁLNÍO REGULÁTORU

ČESKÉ VYSOKÉ UČENÍ TECHNICKÉ V PRAZE

Struktura a architektura počítačů (BI-SAP) 7

HHF42 Série Anemometr se sondou se žhaveným drátem pro velmi nízké rychlosti proudění vzduchu

18A - PRINCIPY ČÍSLICOVÝCH MĚŘICÍCH PŘÍSTROJŮ Voltmetry, A/D převodníky - principy, vlastnosti, Kmitoměry, čítače, fázoměry, Q- metry

Moduly MicroUnit serie. všechny typy s výjimkou řady MU-43x, MU-44x a MU-84x

Komunikace s snímačem ph485 protokolem Modbus-RTU

Digitální obvody. Doc. Ing. Lukáš Fujcik, Ph.D.

Ovládání MZK Terminalu je jednoduché a intuitivní. Terminal se ovládá pěti tlačítky.

Ovládání domu s PLC SAIA

Digitální tlakoměr PM 111, PM M

BASPELIN CPM. Popis komunikačního protokolu verze EQ3 CPM EQ3 KOMPR

Uživatelský manuál. Aplikace A4300-Loader

Digitální indikace BC-2001 / BC-3001

Programování PICAXE18M2 v Assembleru

Uživatelský manuál. KNX232e / KNX232e1k

Video boroskop AX-B520. Návod k obsluze

Návod k použití pro Počítací váhu ALC3

Opakování programování


ESII Stmívací jednotka

MSP 430F1611. Jiří Kašpar. Charakteristika

Návod k obsluze pro termický anemometr TA 888

UŽIVATELSKÝ MANUÁL NÁVOD K OBSLUZE

TEPL2344A Technická dokumentace PŘEVODNÍK TEPLOTY. typ TEPL2344A s rozhraním RS232. v.č

Infračervený teploměr

Komunikační protokol MODBUS RTU v jednotce M4016. Seznam služeb protokolu MODBUS podporovaných řídící jednotkou M4016 je v tabulce.

Uživatelský manuál. s klávesnicí K648

Návod k obsluze. LCD indikace polohy pro inkrementální a absolutní snímače

Logické řízení výšky hladiny v nádržích

Transkript:

Střední Průmyslová Škola Elektrotechnická Havířov Protokol do MIT Třída: 4.C Skupina: 3 Klimatizace Zpráva číslo: 3 Dne: 08.01.2007 Soupis použitých přístrojů: přípravek s μc 8051 přípravek s LCD přípravek s tlačítky pro přerušení teploměr DS18B20 Jméno učitele: Ing. Baarová Jméno: Známka:

ZADÁNÍ: Napište program, který po stisku tlačítka t0 bude zobrazovat teplotu na LCD. Po stisku tlačítka t1 se spusti klimatizace => napis na LCD, klimatizace se spusti jen tehdy, přesáhne-li teplota 25 C a zároveň stiskneme tlačítko t1. Tlačítko int1 bude sloužit pro ruční vypnutí klimatizace. TEORIE: DIGITÁLNÍ TEPLOMĚR DS18B20: Připojuje se na 1-vodičovou sběrnici a vrací teplotu v rozsahu -55 C až 125 C, teplota se vrací ve 2 bytech, LSB a MSB. Význam bitů u MSB, horních 5-bitů vyjadřuje polaritu, následuje celočíselná hodnota. Význam bitů u LSB, horní 4-bity vyjadřují celočíselnou hodnotu a nižší 4-bity vyjadřují desetinné číslo. Každý teploměr obsahuje vnitřní ROM paměť, ve které je uložen vnitřní 64-bitový kód, který jednoznačně určuje zařízení na sběrnici. Každému zaadresovaní sběrnice musí předcházet reset, kdy master (v našem případě 8051) stáhne datový vodič do logické 0, následně jej uvolní a čeká na odezvu. VÝZNAMY BITŮ: S (bit 11 až bit 15) signalizují znaménko, jsou-li v log 0 => kladná teplota, jsou-li v log 1 => záporná teplota 2 0 až 2 6 (bit 4 až bit 10) celočíselná část teploty 2-4 až 2-1 (bit 0 až bit 3) desetinná část teploty PŘÍKAZY PRO DS18B20: Skip ROM [CCh]: Zařízení master používá tento příkaz k zaadresování všech zařízení na sběrnici současně bez vyslání nějaké ROM kód informace. Convert [44h]: Příkaz inicializuje převod jedné teploty. Následuje převod, výsledek je uložen ve 2-registrech v paměti a DS18B20 se vrátí úsporného režimu. bitem 0. Read scratchpad [BEh]: Tento příkaz dovolí, aby master mohl přečíst obsah paměti. Přenos dat začne nejníž významným

SOUBOR TEST.ASM: ;digitalni teplomer - testovaci program ds_data bit P0.0 LSB data 30h MSB data 31h stack equ 0fh org 0 Init: Main: sp, #stack a, #0cch ;skip rom ;povel pro prevod teploty a, #044h setb ds_data ;cekani na prevod teploty jnb ds_data, $ a, #0cch ;skip rom a, #0beh ;nacteme teplotu jmp LSB, a ;nacte a ulozi nizsi byte z DS18B20 MSB, a ;nacte a ulozi vyssi byte z DS18B20 P2, LSB P3, MSB Main #include <ds18b20.inc> nop end SOUBOR KLIMATIZACE.ASM: ;LCD P2.4 az P2.7 => datove vodice k LCD LCD_EN bit P2.0 LCD_RW bit P2.1 LCD_RS bit P2.2 ds_data bit P0.0

LSB equ 30h ;zaloha nizsiho bytu z DS18B20 MSB equ 31h ;zaloha vyssiho bytu z DS18B20 stack equ 0fh ;adresa pro posunuti zasobniku Temp25 equ 25 ;teplota pri ktere se ma zapnout klimatizace org 0 sjmp Init org 0bh ;adresa vektoru preruseni pro casovac/citac0 setb f0 ;uzivatelsky nastavitelny priznak dame do 1 => v hlavnim programu je dulezity do ;podminky => jestli je v 1 => bude merit teplotu, jestli bude v 0 => nebude merit teplotu i org i 13h ;adresa vektoru preruseni pro vnejsi preruseni1 KlimaOff ;vypne klimatizaci Init: org 1bh ;adresa vektoru preruseni pro casovac/citac1 KlimaOn ;zapne klimatizaci i sp, #stack ;posunitu zasobniku ResetLCD ;reset LCD ;reset DS18B20 tmod, #01100110b ;nastaveni citace0 a citace1 do rezimu 2 ie, #10001110b ;povoleni preruseni th0, #0ffh tl0, #0ffh th1, #0ffh tl1, #0ffh setb tr0 ;spusteni citace0 setb tr1 ;spusteni citace1 Main: Mer: MerTemp: jb jmp jmp setb f0 ;vynulovani uzivatelsky nastavitelneho priznaku f0, Mer ;podminka jestli bude nebo nebude merit teplotu Main MerTemp ;zmeri teplotu a ulozi ji do LSB a MSB ConvertTemp ;prevede teplotu na celou cast a desetinnou cast LCDTemp ;zobrazi teplotu na LCD Main a, #0cch ;skip rom a, #044h ;povel pro prevod ds_data

ConvertTemp: LCDTemp: chceme zobrazit na LCD jnb swap anl swap add anl ds_data, $ ;ceka na prevod teploty a, #0cch ;skip rom a, #0beh ;nacteme teplotu LSB, a ;nacteni a ulozeni nizsiho bytu LSB DS18B20 MSB, a ;nacteni a ulozeni vyssiho bytu MSB DS18B20 a, LSB ;nacteme do akumulatoru nizsi byte teploty a ;prohodime vyssi 4-bity s nissimi 4-bity a, #00001111b ;maskovani => zustanou nam jen data ktera chceme r7, a ;vysledek prevodu LSB je v registru r7 a, MSB ;nacteme do akumulatoru vyssi byte teploty a ;prohodime vyssi 4-bity s nissimi 4-bity a, r7 ;secteme celou cast s desetinnou casti teploty r7, a ;vysledek operace ulozime do registru r7 a, LSB ;nacteme do akumulatoru nizsi byte teploty a, #00001111b ;maskovani => zustanou nam jen data která chceme r4, a ;ulozi desetinnou cast do registru r4 dptr, #ActualTemp ;do registru ukazatele dat dame adresu na to, co TextLCD ;vypiseme napis na LCD a, r7 ;do akumulatoru dame hodnotu z registru r7 b, #10 ;do registru B dame hodnotu 10 r6, a ;vysledek deleni => zaloha po deleni r5, b ;zbytek po deleni => jednotky a, #0c6h RidLCD a, r5 ZnakLCD a, r6 ;do akumulatoru dame hodnotu z registru r6 b, #10 ;do registru B dame hodnotu 10 r6, a ;vysledek deleni => zaloha po deleni r5, b ;zbytek po deleni => desitky

a, #0c5h RidLCD a, r5 ZnakLCD a, r6 ;do akumulatoru dame hodnotu z registru r6 b, #10 ;do registru B dame hodnotu 10 r6, a ;vysledek deleni => zaloha po deleni r5, b ;zbytek po deleni => stovky a, #0c4h RidLCD a, r5 ZnakLCD a, r4 ;do akumulatoru dame hodnotu z registru r4 b, #10 ;do registru B dame hodnotu 10 r6, a ;vysledek deleni => zaloha po deleni r5, b ;zbytek po deleni => setiny a, #0c9h RidLCD a, r5 ZnakLCD a, r5 akumulatoru dame hodnotu z registru r4 b, #10 ;do registru B dame hodnotu 10 r6, a ;vysledek deleni => zaloha po deleni r5, b ;zbytek po deleni => setiny a, #0c8h RidLCD a, r5 ZnakLCD KlimaOff: mereni teploty chceme zobrazit ;na LCD KlimaOn: f0 ;vynuluje uzivatelsky nastavitelny priznak, aby se vyplo zobrazovani a dptr, #KlimaVyp ;do registru ukazatele dat dame adresu na to, co TextLCD ;vypise napis na LCD f0

a, r7 b, #100 div ab a, b ;zbytek po deleni => jednotky konstantou Temp5 KlimaJC: konstanta Temp25 ;klimatizace se nezpusti chceme zobrazit ;na LCD KlimaEnd: cjne jc c a, Temp25, KlimaJC ;porovnavame aktualni teplotu v akumulatoru s KlimaEnd ;jeli C=1 => akumulator byl pri porovnavani mensi nez dptr, #KlimaZap ;do registru ukazatele dat dame adresu na to, co TextLCD ;vypise napis na LCD ActualTemp: KlimaVyp: KlimaZap: db ' Akt. teplota: ' db ', C ' db ' Klimatizace ' db ' vypnuta ' db ' Klimatizace ' db ' zapnuta ' #include<lcdkit.inc> #include<ds18b20.inc> nop end ZHODNOCENÍ: Jakmile jsem vytvořil funkční testovací program, bylo snadné napsat program pro zobrazení aktuální teploty na LCD po stisku tlačítka. Důležité bylo dát si pozor při psaní obslužného programu pro přerušení, protože je nutné obslužný program pro přerušení ukončit, před tím, než mikroprocesor začne zpracovávat další instrukce. Další krok, který se mi povedl ze zadání splnit je vypnutí klimatizace, zde bylo nejdůležitější vynulovat bit f0, který byl důležitý pro rozhodování mikroprocesoru, jestli má měřit nebo nemá měřit teplotu. Velký problém ale pro mě bylo vytvořit podprogram, který měl spustit klimatizaci po stisku tlačítka a zároveň překročení teploty 25 C. Myslel jsem si, že podprogram mi bude fungovat, fungoval ale ne tak jak měl. Při stisku tlačítka totiž spustil klimatizaci vždy! Z tohoto vyvozuji, že jsem musel udělat nějakou chybu v podmínce, která určovala, zda se měla spustit klimatizace.