8051: Porovnání verzí
Stránka vyprázdněna |
Bez shrnutí editace |
||
Řádek 1: | Řádek 1: | ||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 25em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''8051''''' | |||
|- | |||
| colspan="2" style="text-align: center;" | | |||
|- style="vertical-align: top;" | |||
| | |||
[[Image:8051-sch.gif]] | |||
* Mikroprocesor 8051 je 8-bitový jednočipový mikroprocesor (8-bitová [[ALU]], střadač a registry ) | |||
* Harwardská archiektura, u které je oddělena programová a datová paměť. | |||
* 8-bitová datová sběrnice | |||
* 16-bitově adresová sběrnice - 64 kB (65536 bajtů) pro RAM a ROM | |||
* Frekvence: 12 MHz | |||
* Paměť programu: On-chip ROM 4 kB | |||
* Paměť dat: On-chip RAM 128 B | |||
* Patice: 40 pinů | |||
* Čtyřbajtový obousměrný vstupně / výstupní [[Port]] | |||
* UART | |||
* Dva 16-bitové čítače / časovače | |||
* Dvouúrovňová priorita přerušení | |||
**5 hardwarových přerušení | |||
**+1 softwarové přerušeni | |||
|} | |||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 25em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''MIT výstupní moduly''''' | |||
|- | |||
| colspan="2" style="text-align: center;" | | |||
|- style="vertical-align: top;" | |||
| | |||
{{MIT Výstupní moduly}} | |||
|} | |||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''MIT vstupní moduly''''' | |||
|- | |||
| colspan="2" style="text-align: center;" | | |||
|- style="vertical-align: top;" | |||
| | |||
{{MIT vstupní moduly}} | |||
|} | |||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''MIT Sestavy''''' | |||
|- | |||
| colspan="2" style="text-align: center;" | | |||
|- style="vertical-align: top;" | |||
| | |||
{{MIT sestavy}} | |||
|} | |||
[[Image:8051-blok.gif]] | |||
== Vývoj aplikace: == | |||
[[Soubor:vyvoj-mit-001.jpg|600px]] | |||
# Napsat program v [[MCU_8051_IDE]] alt: [[Ride51]] (assembler nebo C) např. s [[Vstupní moduly|vstupními]] a [[Výstupní moduly|výstupními obvody]] | |||
# Uložit *.asm | |||
# Zkompilovat F2 (CTRL-D), vygeneruje se soubor formátu [[Intel HEX]] *.hex | |||
# SW otestovat - debug F8 | |||
# Propojit sestavu RD2kit s PC pomocí sériového portu RS232 | |||
# Zapnout napájecí napětí pro RD2kit +5V | |||
# Přepinač v poloze LOAD - loader | |||
# Pomocí programu [[Flip]] pokračovat v nahrání *.hex do trenažéru | |||
# Přepnout přepínač do polohy APL - aplikace | |||
# Znovu vyresetovat RD2kit (černé tlačítko) | |||
# Vyzkoušet správnou funkci programu | |||
[[Soubor:RD2kit_06.jpg|600px]] | |||
[[Soubor:RD2kit_sch-07.png|600px]] | |||
== HW: == | |||
* [[RD2 kit]] - vývojová deska | |||
* [[Výstupní moduly]] | |||
* [[Vstupní moduly]] | |||
* [[:Šablona:Modely pro vývoj MIT aplikace|Modely pro vývoj MIT aplikace]] | |||
== SW: == | |||
<gallery> | |||
Soubor:MCU-8051-IDE-logo.png|[[MCU 8051 IDE]] pro vývoj aplikací v asm nebo C | |||
Soubor:Ride.jpg|[[Ride51]] pro vývoj aplikací v asm nebo C | |||
Soubor:RD2kit_04.jpg|[[Flip]] k naprogramování MCU [[89C51ED2]], který je v [[RD2 kit]] | |||
Soubor:Multisim.jpg|[[Multisim]] - simulace el. obvodu | |||
Soubor:Diagram-Designer.png|[[Diagram Designer]] - kreslení vývojových diagramů | |||
Soubor:proficad-RD2KIT-01.png| [[ProfiCAD]] - kreslení blokových schémat, [[Soubor:FTP.jpg]][ftp://obelix.sps-pi.cz/N/Janousek/mikroLAB/30_SES%20sestavy/Blokova%20schemata/RD2kit%20s%20LED%20a%20DIP.sxe download sxe] [ftp://obelix.sps-pi.cz/N/Janousek/mikroLAB/30_SES%20sestavy/Blokova%20schemata/ více] | |||
Soubor:PC51.jpg| [[PC51]] k naprogramování trenažéru [http://wiki.sps-pi.com/images/a/a4/EasySoft-01.jpg EasySoft] s 8031 | |||
</gallery> | |||
== Aplikace == | |||
* [[Základy programování v 8051]] | |||
=== Programování v asm: === | |||
*[[Přesuny]] | |||
*[[Skoky]] | |||
*[[Časová smyčka]] | |||
*[[Ovládání modulu LED OUT01]] | |||
*[[Ovládání dvoumístného displeje OUT02]] | |||
*[[Ovládání krokového motoru OUT04]] | |||
*[[Ovládání modulu LED kostky OUT09]] | |||
* | |||
* | |||
* | |||
*[http://myplctutorial.blogspot.com/2008/09/display-keypad-data-to-led.html Display Keypad Data to LED] | |||
*[http://myplctutorial.blogspot.com/2008/09/display-keypad-4-x-4-with-lcd-character.html Display Keypad 4 x 4 with LCD Character 2 x16] | |||
*[http://myplctutorial.blogspot.com/2008/09/display-keypad-4-x-4-with-8x7-seven.html Display Keypad 4 x 4 with 8x7 Seven Segmen] | |||
*[[Využití čítače pro časové zpoždění]] | |||
*[[Ovládání motoru s H můstkem]] program v ASM a C | |||
=== Programování v C: === | |||
* [[Ovládání motoru s H můstkem]] program v ASM a C | |||
* [[Příklady s časovým zpožděním v C pro 8051]] | |||
=== [http://what-when-how.com/8051-microcontroller/ what-when-how] === | |||
# [http://what-when-how.com/8051-microcontroller/8051-programming-in-c/ 8051 PROGRAMMING IN C] | |||
# [http://what-when-how.com/8051-microcontroller/data-types-and-time-delay-in-8051-c/ DATA TYPES AND TIME DELAY IN 8051 C] | |||
# [http://what-when-how.com/8051-microcontroller/bcd-ascii-and-other-application-programs/ BCD, ASCII, AND OTHER APPLICATION PROGRAM] | |||
# [http://what-when-how.com/8051-microcontroller/appendix-a-8051-instructions-timing-and-registers/ APPENDIX A : 8051 INSTRUCTIONS, TIMING, AND REGISTERS] | |||
# [http://what-when-how.com/8051-microcontroller/appendix-d-flowcharts-and-pseudocode/ APPENDIX D : FLOWCHARTS AND PSEUDOCODE] | |||
== www: == | |||
* [http://www.sihaja.cz/atmel8051/programy/programovani.html Programování v Assembleru] | |||
* [http://cs.wikipedia.org/wiki/Intel_8051 Intel 8051] na cs.wikipedia.org | |||
* [http://www.dhservis.cz/dalsi_1/obsah_popis.htm Jak se naučit programovat? ( nejen jednočipy )]ze stránek [http://www.dhservis.cz/ DHservis] | |||
* [http://www.dhservis.cz/popis8051.htm Popis 8051] ze stránek [http://www.dhservis.cz/ DHservis] | |||
* [http://ok2tej.senga.cz/rady/skola51.html Školička psaní programů pro jednočipy v C jazyku] | |||
* [http://www.fit.vutbr.cz/~hrdlimi/ta/aup/8051.html Stručný popis 8051] | |||
* [[ASCII]] tabulka | |||
---- | |||
[[Category:MIT]] |
Verze z 9. 6. 2012, 17:03
8051 | |
|
MIT výstupní moduly | |
Modul zajišťuje statické zobrazení dat na příslušné datové sběrnici či výstupní bráně. Modul využívá budič sběrnice IO 74245, který zde slouží k výkonovému oddělení datových vodičů od osmice LED. Zobrazovací jednotka slouží k zobrazení hexadecimálního čísla na zobrazovací jednotce, odpovídající binární hodnotě přivedenou na vstupy. Tento Modul obsahuje převodník ( 7446) hexadecimálního kódu na sedmisegmentovou zobrazovací jednotku a to tak, že všechny výstupy z převodníku jsou připojeny paralelně na katody všech čtyřech zobrazovacích jednotek a ovládání jednotlivých segmentů je realizováno pomocí dynamické obsluhy, která spočívá v časově multiplexovaném připojení napájecího napětí na jednotlivé sedmisegmentovky. Dolní polovina osmibitové datové sběrnice obsahuje kódované číslo (v hexa) a bity horní poloviny řídí jednotlivé pozice displeje(aktivní v log. "0.) Základem modulu je integrovaný obvod M5451, který umožňuje pomocí sériového příjmu řídit až 35 LED . Sérioparalelní převodník je realizován posuvným registrem s délkou 36 bitů, který je ovládán vnějšími signály DATA a CLOCK a vnitřním signálem RESET pro nulování všech bitů. RESET je také generován vždy po přivedení napájecího napětí. Logické hodnoty ze vstupu DATA se zapíší a údaje v registru se posouvají s každou náběžnou hranou signálu CLK. Objeví-li se na posledním bitu posuvného registru log.1, vygeneruje se signál LOAD, který zkopíruje 35 předcházejících bitů do vyrovnávacího registru a signál RESET. Pro změnu údaje zobrazeného na displeji je nutno zapsat do vstupu DATA posuvného registru 36 binárních hodnot. Úvodní z dávky zapisovaných bitů musí mít hodnotu log.1, která způsobí přepis vyrovnávací paměti a vynulování posuvného registru. Následujících 35 bitů ovládá svit jedné z LED (log.1-LED svítí). LCD displeje mají relativně snadné ovládání, možnost definice až osmi uživatelských znaků, 2 * 20 znaků. Možnost výběru z mnoha předdefinovaých znaků. Možnost použití rastru 5x7 nebo 5x10 S displejem lze komunikavat buď osmi nebo v našem případě čtyřbitově. ASCII tabulka, popis displeje LCD OUT06 - modul krokového motoru Tento modul obsahuje krokový motůrek se čtyřmi skupinami vinutí, která se ovládají přes tranzistory logickými úrovněmi vysílanými na příslušné vstupy. Pro otáčení do požadovaného směru je třeba dodržet sekvenci signálů dle tabulky, která ukazuje 4-taktní řízení. Frekvence obměny ovlivňuje rychlost otáčení. |
MIT vstupní moduly | |
Tento modul umožňuje ruční statické nastavení jednotlivých bitů na jedné vstupní bráně (log. "0" nebo log. "1") a to bez odstraněných zákmitových jevů. Z těchto důvodů nelze použit pro řízení hodinového signálu sekvenčních obvodů. Použijeme-li sekvenční obvod RS s negovanými vstupy získáme obvod pomocí jehož můžeme řídit zadávání log. úrovně především do hodinových vstupů. Klopný obvod díky své schopnosti pamatovat si svůj stav na výstupu při logických „1“ na svých vstupech odstraní přechodové zákmitové jevy. Další obvod zapojený jako asynchronní dělič kmitočtu zdvojnásobuje dobu trvaní na výstupu. Tento modul obsahuje čtveřici takovýchto tlačítek, které jsou vyvedeny na bity P0 – P3.
Modul využívá továrně vyrobené čidlo, které převádí infračervené záření vysílané ze zdroje (např. dálkového ovládání) na sled pravoúhlých impulsů a to buď v přímé nebo negované proměnné. Na obrázku je znázorněn průběh signálu na výstupu modulu,připojeného k satelitnímu přijímači PACE. Soubor:IN06 modul cidla teploty s AKO.JPG IN06 - modul čidla teploty s AKO Čidlo teploty převádí teplotu na elektrický signál, který je vhodný ke zpracování počítačem. Teplota je snímána termistorem, jehož odpor se s teplotou mění a změna odporu ovlivňuje délku impulsů. Převodník teploty na délku impulsu je navržen s časovačem typu 555. Jeho přesnost a teplotní stabilita zaručují dobré výsledky a stabilitu naměřených údajů. Teplota je snímána termistorem TS1. Jeho odpor, měnící se v závislosti na teplotě, spolu s odporem trimru R3 a kapacitu C3 vytváří časovou konstantu - při změně odporu se mění doba nabíjení C3. Časovač IO2 je zapojen jako monostabilní klopný obvod a zmíněná časová konstanta určuje délku jeho impulsu. Trimr R3 slouží k případné kalibraci délky impulsu. Monostabilní klopný obvod se spouští impulsem (aktivní v log. "0"), přiváděným na vstup pro spouštění u 555 č.2 , na konektoru č.2 (bit. 7). Tento impuls musí být kratší než nejkratší výstupní impuls z časovače. V našem případě je mezní délka 1 ms. Výstupní signál (kladný impuls), jehož délka je úměrná měřené teplotě, je odebírán z vývodu 3 časovače 555, na konektoru je to vývod č.3 (bit.5). IN07 - modul čidla teploty s MKO IN08 - modul čidla teploty s OZ Další modul čidla teploty slouží především k vyhodnocováni mezní hodnoty teploty. Použijeme-li negativní termistor, tak při zvýšení teploty se zmenší jeho hodnota odporu. Následně se zvětší napětí dané děličem R2 a TR1, přiváděné na neinvertující vstup operačního zesilovače. OZ tuto hodnotu porovnává s hodnotou přiváděnou na invertující vstup. Zde je napětí dané odporovým děličem R3, R4. Pokud hodnota na neivertujícím vstupu převládne nad hodnotou invertujícího vstupu, napětí na výstupu se změní z log. „0“ na log. „1“ (OZ ve funkci komparátoru, s „nekonečně“ velkým zesílením). Pokud je OZ napájen nesymetrickým napětím je výstup kompatibilní s technologií TTL. IN09 - modul čidla s SMT 160-30 Jedná se o integrovaný senzor teploty s výstupním signálem ve tvaru impulsní šířkové modulace. Dvě svorky jsou pro připojení napájecího napětí, třetí je k dispozici pro výstupní signál. Impulsní šířková modulace je použita proto, aby vstupní signál byl převeditelný do číslicové formy i bez zapojení A/Č převodníku.
|
MIT Sestavy | ||||||||||
SES01 Krizovatka SES02 Jerab s 80C51 SES03 Automatická pračka s 8051 SES04 Plotr - Souřadnicový zapisovač
SES28 Krizovatka AUC
|
Vývoj aplikace:
- Napsat program v MCU_8051_IDE alt: Ride51 (assembler nebo C) např. s vstupními a výstupními obvody
- Uložit *.asm
- Zkompilovat F2 (CTRL-D), vygeneruje se soubor formátu Intel HEX *.hex
- SW otestovat - debug F8
- Propojit sestavu RD2kit s PC pomocí sériového portu RS232
- Zapnout napájecí napětí pro RD2kit +5V
- Přepinač v poloze LOAD - loader
- Pomocí programu Flip pokračovat v nahrání *.hex do trenažéru
- Přepnout přepínač do polohy APL - aplikace
- Znovu vyresetovat RD2kit (černé tlačítko)
- Vyzkoušet správnou funkci programu
HW:
- RD2 kit - vývojová deska
- Výstupní moduly
- Vstupní moduly
- Modely pro vývoj MIT aplikace
SW:
-
MCU 8051 IDE pro vývoj aplikací v asm nebo C
-
Ride51 pro vývoj aplikací v asm nebo C
-
Multisim - simulace el. obvodu
-
Diagram Designer - kreslení vývojových diagramů
Aplikace
Programování v asm:
- Přesuny
- Skoky
- Časová smyčka
- Ovládání modulu LED OUT01
- Ovládání dvoumístného displeje OUT02
- Ovládání krokového motoru OUT04
- Ovládání modulu LED kostky OUT09
- Display Keypad Data to LED
- Display Keypad 4 x 4 with LCD Character 2 x16
- Display Keypad 4 x 4 with 8x7 Seven Segmen
- Využití čítače pro časové zpoždění
- Ovládání motoru s H můstkem program v ASM a C
Programování v C:
- Ovládání motoru s H můstkem program v ASM a C
what-when-how
- 8051 PROGRAMMING IN C
- DATA TYPES AND TIME DELAY IN 8051 C
- BCD, ASCII, AND OTHER APPLICATION PROGRAM
- APPENDIX A : 8051 INSTRUCTIONS, TIMING, AND REGISTERS
- APPENDIX D : FLOWCHARTS AND PSEUDOCODE
www:
- Programování v Assembleru
- Intel 8051 na cs.wikipedia.org
- Jak se naučit programovat? ( nejen jednočipy )ze stránek DHservis
- Popis 8051 ze stránek DHservis
- Školička psaní programů pro jednočipy v C jazyku
- Stručný popis 8051
- ASCII tabulka