8051: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
 
(Není zobrazeno 13 mezilehlých verzí od stejného uživatele.)
Řádek 25: Řádek 25:
=='''Tutorials'''==
=='''Tutorials'''==


[[Soubor:Mikroe.jpg|link=http://www.mikroe.com/chapters/view/69/chapter-6-examples/]]  
[[Soubor:Mikroe.jpg|link=https://www.mikroe.com/ebooks/architecture-and-programming-of-8051-mcus/introduction]]  


[http://www.mikroe.com/chapters/view/69/chapter-6-examples/ Chapter 6]
* [http://www.dhservis.cz/dalsi_1/obsah_popis.htm Jak se naučit programovat?]  
* [http://www.dhservis.cz/dalsi_1/obsah_popis.htm Jak se naučit programovat?]  
* [http://www.dhservis.cz/popis8051.htm Popis 8051]
* [http://www.dhservis.cz/popis8051.htm Popis 8051]
* [http://ok2tej.zbytky.net/rady/skola51.html Školička C]
* [http://www.fit.vutbr.cz/~hrdlimi/ta/aup/8051.html Popis 8051]
* [[ASCII]]


[[Soubor:IkaLogic.jpg|link=http://ikalogic.cluster006.ovh.net/part-2-c-programming-for-8051-using-keil-ide/]]
[http://ikalogic.cluster006.ovh.net/part-2-c-programming-for-8051-using-keil-ide/ C programming for 8051]


[[Soubor:Learning-by-LeongKJ.jpg|200px|link=http://c8051.leongkj.net/learning_object/]]
[[Soubor:Learning-by-LeongKJ.jpg|200px|link=http://c8051.leongkj.net/learning_object/]]


[[Soubor:8051-timer.jpg|200px|link=http://c8051.leongkj.net/learning_object/timer.swf]]
[[Soubor:8051-timer.jpg|200px|link=http://c8051.leongkj.net/learning_object/timer.swf]]
[[Soubor:8051_by_bezstarosti.jpg|link=http://www.bezstarosti.cz/elec/prog8051/pokus.asm]]


== Tools==
== Tools==
Řádek 91: Řádek 82:


[[Image:8051-blok.gif]]
[[Image:8051-blok.gif]]
[[Soubor:ATM13.png|600px|UNI board s 89S52]]


== Vývoj aplikace: ==
== Vývoj aplikace: ==
=== [http://cs.wikipedia.org/wiki/V%C3%BDvojov%C3%A9_prost%C5%99ed%C3%AD IDE] ===
=== [http://cs.wikipedia.org/wiki/V%C3%BDvojov%C3%A9_prost%C5%99ed%C3%AD IDE] ===
<gallery>
<gallery>
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]]  pro vývoj aplikací v asm nebo C
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]]  pro vývoj aplikací v asm/C
Soubor:EDSIM-screen.png|[https://www.edsim51.com/ EdSim51]
Soubor:Ride.jpg|[[Ride51]] pro vývoj aplikací v asm nebo C
Soubor:Ride.jpg|[[Ride51]] pro vývoj aplikací v asm nebo C
</gallery>
</gallery>
Řádek 104: Řádek 98:
Soubor:RD2kit_04.jpg|SW: [[Flip]] k naprogramování 89C51RD2, který je v [[RD2 kit]]u
Soubor:RD2kit_04.jpg|SW: [[Flip]] k naprogramování 89C51RD2, který je v [[RD2 kit]]u
</gallery>
</gallery>
=== [[MCU]]: 89S52: ===
<gallery>
Soubor:ATM13.png|HW: [[ATM13|UNI board s 89S52]]
Soubor:D10_HW_presto.jpg|Programátor: [[PRESTO]] SW: [[UP]]
Soubor:D10_HW_USBasp.jpg|Programátor: [http://goo.gl/Ioozyz USBasp] SW: [[ProgISP]]
</gallery>
=== [[MCU]]: CH552 ===
[[Soubor:CH552.png|300px]]
* [https://www.chiptron.cz/news.php?readmore=819 CH552 - mikrokontrolér za 0.3 USD a jeho programování]
* [https://www.chiptron.cz/news.php?readmore=631 Vývojové kity pro mikrokontroléry CH55x]
* [https://lcsc.com/product-detail/USB_CH552G_C111292.html Here you can buy the chip]
* [https://hackaday.com/2019/02/17/how-to-program-a-really-cheap-microcontroller/ HOW TO PROGRAM A REALLY CHEAP MICROCONTROLLER]
SW: WCHISPTool_Setup.exe
[[Soubor:CH552-guitar.png|300px|link=https://www.bilibili.com/video/BV1V7411d7AU?from=search&seid=13957540296442588915]]
====novinka: postavte si DIY FM Radio Kit Electronic Learning Assemble====
[[Soubor:fmradio.png|DIY FM Radio Kit Electronic Learning Assemble|link=https://www.aliexpress.com/wholesale?catId=0&initiative_id=SB_20210907091323&origin=y&SearchText=DIY+FM+Radio+Kit+Electronic+Learning+Assemble]]


===== Postup vývoje MIT aplikace: =====
===== Postup vývoje MIT aplikace: =====
Řádek 109: Řádek 128:
# Uložit *.asm
# Uložit *.asm
# Zkompilovat F2 (CTRL-D),  vygeneruje se soubor formátu [[Intel HEX]] *.hex  
# Zkompilovat F2 (CTRL-D),  vygeneruje se soubor formátu [[Intel HEX]] *.hex  
# SW otestovat - debug F8
# SW otestovat - debug F6,F7,F8
# Propojit sestavu RD2kit s PC pomocí sériového portu RS232
# Propojit sestavu s PC pomocí USB
# Zapnout napájecí napětí pro RD2kit +5V
# Pomocí programu '''[[progISP]]''' pokračovat v nahrání *.hex do 89S51
# Přepínač v poloze LOAD - loader
# Pomocí programu '''[[Flip]]''' pokračovat v nahrání *.hex do 89C51RD2
# Přepnout přepínač do polohy '''APL''' - aplikace
# Znovu vyresetovat [[RD2 kit]] (černé tlačítko)
# Vyzkoušet správnou funkci programu
# Vyzkoušet správnou funkci programu
[[Soubor:RD2kit_06.jpg|600px]]
[[Soubor:RD2kit_sch-07.png|600px]]
=== [[MCU]]: 89S52: ===
<gallery>
Soubor:UNI-board-89S52.jpg|HW: [[UNI board s 89S52]]
Soubor:D10_HW_presto.jpg|Programátor: [[PRESTO]] SW: [[UP]]
Soubor:D10_HW_USBasp.jpg|Programátor: [http://goo.gl/Ioozyz USBasp] SW: [[ProgISP]]
</gallery>


== Aplikace ==
== Aplikace ==
Řádek 147: Řádek 151:
*[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-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]  
*[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í]]  
* [http://www.circuitstoday.com/delay-using-8051-timer Delay using 8051 timer]
*[[Ovládání motoru s H můstkem]] program v ASM a C
*[[Ovládání motoru s H můstkem]] program v ASM a C



Aktuální verze z 7. 9. 2021, 17:15

8051

  • 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

Tutorials


Tools

Program ONESK ke stažení - onesk.zip (314kB)


MIT výstupní moduly

OUT01 - modul LED

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.

OUT02 - dvoumístný display

Zobrazovací jednotka slouží k zobrazení hexadecimálního čísla na zobrazovací jednotce, odpovídající binární hodnotě přivedenou na vstupy.

OUT03 - disp MPX

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.)

OUT04 - displ seriovy

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í).

OUT05 - LCD HD44780

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í.

OUT07 - modul ss motoru

více

MIT vstupní moduly

IN01 - modul DIP-SWITCH

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ů.

IN02 - modul tlačítek s RSKO

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.


Chyba při vytváření náhledu: Chybějící soubor IN03 - modul klávesnice 1x8

IN05 - modul IR čidla SFH5110

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.

  • teplotní rozsah –45 - +130°C
  • f = 1 – 4 kHz
  • DC = 0,32 + 0,0047 t = T1/T
  • T1 = doba trvání log „1“
  • T= doba periody

více

MIT Sestavy

SES01 Krizovatka

SES02 Jerab s 80C51

SES03 Automatická pračka s 8051

SES04 Plotr - Souřadnicový zapisovač

Soubor:SES04 Plotr obr.jpg

SES28 Krizovatka AUC


UNI board s 89S52

Vývoj aplikace:

IDE

MCU: 89C51RD2

MCU: 89S52:

MCU: CH552

SW: WCHISPTool_Setup.exe

novinka: postavte si DIY FM Radio Kit Electronic Learning Assemble

DIY FM Radio Kit Electronic Learning Assemble


Postup vývoje MIT aplikace:
  1. Napsat program v MCU_8051_IDE alt: Ride51 (assembler nebo C) např. s vstupními a výstupními obvody
  2. Uložit *.asm
  3. Zkompilovat F2 (CTRL-D), vygeneruje se soubor formátu Intel HEX *.hex
  4. SW otestovat - debug F6,F7,F8
  5. Propojit sestavu s PC pomocí USB
  6. Pomocí programu progISP pokračovat v nahrání *.hex do 89S51
  7. Vyzkoušet správnou funkci programu

Aplikace

Programování v asm:

Programování v C:

what-when-how


  1. APPENDIX D : FLOWCHARTS AND PSEUDOCODE
  1. DATA SERIALIZATION USING 8051 C
  2. ACCESSING CODE ROM SPACE IN 8051 C
  3. DATA CONVERSION PROGRAMS IN 8051 C
  4. LOGIC OPERATIONS IN 8051 C
  5. I/O PROGRAMMING IN 8051 C
  6. DATA TYPES AND TIME DELAY IN 8051 C
  7. 8051 PROGRAMMING IN C
  1. BCD, ASCII, AND OTHER APPLICATION PROGRAM
  2. APPENDIX A : 8051 INSTRUCTIONS, TIMING, AND REGISTERS
  3. DC MOTOR INTERFACING AND PWM
  4. STEPPER MOTOR INTERFACING
  5. RELAYS AND OPTOISOLATORS
  1. KEYBOARD INTERFACING
  2. LCD INTERFACING
  3. INTERRUPT PROGRAMMING IN C
  4. []
  5. []

Zapojení s 8051

náměty z N:/janousek/36_ATM_Atmel 89c2051 a jiné náměty s 8051

e

Pattern Scheme

ATM89 s 89S2051

Soubor:89S2051-uni.zip

ATM80 s 89S51

Soubor:89S51-uni.zip


Olds Programmers 89S52