HW3r: Porovnání verzí
Bez shrnutí editace |
Bez shrnutí editace |
||
(Není zobrazeno 36 mezilehlých verzí od stejného uživatele.) | |||
Řádek 1: | Řádek 1: | ||
<div style="float: left; width: 45em;"> | |||
[[Soubor:HW3r-AvA3.jpg|600px|uvod-do-programovani-v-assembleru|link=https://www.itnetwork.cz/assembler/zaklady/uvod-do-programovani-v-assembleru]] | |||
{| class="toccolours" cellpadding="5" style="float: right; | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Teorie''''' | ==[https://www.youtube.com/watch?v=j-qs-gJhxfs&list=PL09ZAP7_T_LmlX5vctZV4PFfZwMNzjX1F komplet "Assembly via Arduino" by Anas Kuzechie]== | ||
|- | |||
| | |||
[[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]] | |||
[[Soubor:Arduino_link-part1.jpg|150px|link=https://youtu.be//j-qs-gJhxfs|Assembly via Arduino (part 1) - Introductiona]] [https://wokwi.com/projects/410089045320805377 wokwi part 1] | |||
[[Soubor:Arduino_link-part2.jpg|150px|link=https://youtu.be/k8w-IOyyvhQ|Assembly via Arduino (part 2) - Introductiona]][https://wokwi.com/projects/410091707252203521 wokwi part 2] | |||
[[Soubor:Arduino_link-part3.jpg|150px|link=https://youtu.be/cEkVxRIO5Ec|Assembly via Arduino (part 3) - Programming IO Ports]] [https://wokwi.com/projects/410123386139815937 wokwi part 3a] | |||
[[Soubor:Arduino_link-part4.jpg|150px|link=https://youtu.be/7PVTnT59cqE|Assembly via Arduino (part 4) - Programming ADC]] [https://wokwi.com/projects/410093500951859201 wokwi part 4] | |||
[[Soubor:Arduino_link-part5.jpg|150px|link=https://youtu.be/U8OF9N5rULw?si=QW85L4d_llsKmVa7]] [https://wokwi.com/projects/410722077542119425 wokwi part 5] | |||
[[Soubor:Arduino_link-part6.jpg|150px|link=https://youtu.be/alLuNNQdpCU?si=4EvKTn4lZo72XlUx]] [https://wokwi.com/projects/410722094397980673 wokwi part 6] | |||
[[Soubor:Arduino_link-part7.jpg|150px|link=https://youtu.be/a6LGLwfO154?si=U_HJwtQZxV3z5SX-]] [https://wokwi.com/projects/410724361844348929 wokwi part 7] | |||
[[Soubor:Arduino_link-part8.jpg|150px|link=https://youtu.be/pmiTszZhPoI?si=yElgYsL0VSXCPm2y]] [https://wokwi.com/projects/410724382156317697 wokwi part 8] | |||
[[Soubor:Arduino_link-part9.jpg|150px|link=https://youtu.be/wHhLtpEA5ws?si=Qd2thzBjb9vbZFDw]] [https://wokwi.com/projects/410724701114321921 wokwi part 9] | |||
---- | |||
[[Soubor:SteamCode_01.jpg|150px|link=https://youtu.be/9e1wSQnttXY?si=H532vDMVimHtLY7F|AVR Assembly Tutorial: Part 1 (Basic Commands)]] | |||
Inspirace k vyzkoušení | |||
* https://robodoupe.cz/2017/espeasy-je-opravdu-easy/ | |||
* https://wiki.sps-pi.cz/index.php/HAOS | |||
* https://wiki.seeedstudio.com/home_assistant_topic/ | |||
* https://www.codeconvert.ai/assembly-to-python-converter | |||
* https://cw.fel.cvut.cz/wiki/courses/b35apo/tutorials/start | |||
<p>Otázky ke zkoušení</p> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 50em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Opakovací otázky z teorie''''' | |||
|- style="vertical-align: top;" | |||
| | |||
# Minimální schéma zapojení s mikrokontrolérem (MCU) | |||
# Blokové schéma vývojové sestavy | |||
# Blokové schéma mikroprocesoru - CPU | |||
# Blokové schéma mikrokontroléru - MCU - základní | |||
# Blokové schéma mikrokontroléru - MCU - rozšířené | |||
# Řadič, čítač instrukcí | |||
# Registr instrukcí, dekodér instrukcí | |||
# ALU, stavový registr (příznaky) | |||
# 8 bit. sčítačka | |||
# Logické operace v ALU | |||
# Sběrnice, budič sběrnice | |||
# Reset mikropočítače, watchdog | |||
# Časování CPU, instrukční cyklus, zřetězení instrukcí | |||
# Paměti - ROM, PROM, EEPROM | |||
# Připojení vnější paměti | |||
# Stránkování paměti | |||
# Organizace paměti dat (ROM) - přerušení | |||
# Organizace paměti dat (RAM) | |||
# Von Neumanova koncepce, Harvardská architektura | |||
# Architektura RISC a CISC mikrokontrolerů a jejich rozdíly (např.: 8051-ATmega328) | |||
# Kvaziobousměrný V/V obvod | |||
# Obvod s přepínáním směru přenosu | |||
# Připojení 7segmentovky | |||
# Připojení 2 ks 7segmentovek | |||
# Připojení MPX zobraz. jednotky | |||
# Připojení seriové zobrazovací jednotky | |||
# Připojení stejnosměrného motoru | |||
# Připojení krokového motoru | |||
# Připojení serva | |||
# Čítače / časovače | |||
# Sériové vstupní a výstupní obvody USART | |||
# Sériové vstupní a výstupní obvody IIC | |||
# Sériové vstupní a výstupní obvody SPI | |||
# Obvody PWM | |||
# AD převodník | |||
# MCU Z80, 8051, ATmega328 | |||
# MCU ESP8266, ESP32 | |||
# MCU RP2040 (Raspberry Pi PICO), Cortex (Raspberry Pi) | |||
# micro:bit | |||
|} | |||
</div> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 50em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Otázky k opakování ze CV a pro projekt''''' | |||
|- style="vertical-align: top;" | |||
| | |||
<ol> | |||
<li>Přesuny dat pomocí přímého a nepřímého adresování</li> | |||
<li>Zápis na port (více LED, 7segment, motor....)</li> | |||
<li>Čtení z portu (tlačítko, klávesnice .....)</li> | |||
<li>Podmíněné skoky bytové a bitové</li> | |||
<li>Časové smyčky s použitím )seřazeno od nejnižší úrovně | |||
<ol style="list-style-type: lower-alpha;"> | |||
<li>více podprogramů</li> | |||
<li>registrů A, R0, R1....</li> | |||
<li>čítače/časovače</li> | |||
</ol> | |||
</li> | |||
<li>Přesun dat z ROM ) nejhorším z RAM) na PORT</li> | |||
<li>Test minimálně 2ks TL a řízení LED dle funkce AND, OR, XOR</li> | |||
</ol> | |||
Bonus: | |||
# Logické operace | |||
# Operace rotace | |||
# Počítání počtu vst. impulsů z pinu (P3.4 = T0, CT v registru TMOD) | |||
# Vývoj. diagram pro test 3ks TL a řízení LED dle funkce LED = 1 pro i = {1,4} | |||
# Využití přerušení programu | |||
nejpoužívanější instrukce: SETB, CLR, NOP, SJMP, MOV, @, ACALL-RET, INC, CJNE, JB, | |||
|} | |||
</div> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 50em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Témata na referáty''''' | |||
|- style="vertical-align: top;" | |||
| | |||
# Čítač časovač v ATmega32 (blok. schéma, ukázka části kódu) | |||
# Blokové schéma ATmega32 | |||
# Porovnání PINOUTu Arduino vs ATmega328 | |||
# Instrukční soubor ATmega32 (porovnání s 8051) | |||
# MCU ESP32 (vlastnosti, aplikační schéma) | |||
# Tabulkový přehled MCU a jejich vlastností (Z80, 8051, 8080, PIC16F88...) | |||
# Tabulkový přehled MCU a jejich vlastností (RF2040 (PICO), Cortex (RPi), STM32) | |||
# Přerušovací systém v MCU (vlastnosti, blokové schéma, příklad část kódu) | |||
# MCU RPi PICO (vlastnosti, aplikační schéma) | |||
# MCU v micro:bit (vlastnosti, aplikační schéma) | |||
# Sběrnice UART, I2C, SPI (vlastnosti, aplikační schéma) | |||
|} | |||
</div> | |||
</div> | |||
<div style="float: right; width: 40em;"> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 45em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Teorie''''' | |||
|- style="vertical-align: top;" | |||
| | |||
'''T1 – Opakování z 2. ročníku''' | |||
T1. [[Úvod do předmětu, pravidla, aktivity..]] | T1. [[Úvod do předmětu, pravidla, aktivity..]] | ||
T2. Opakování LF, KLO – sčítačka, SLO: D-KO, čítač/registry | T2. Opakování LF, KLO – sčítačka, SLO: D-KO, čítač/registry | ||
Řádek 13: | Řádek 171: | ||
T4. Blokové schéma mikrokontroléru MCU | T4. Blokové schéma mikrokontroléru MCU | ||
T5. Minimální schéma s MCU | T5. Minimální schéma s MCU | ||
T6. Řadič, programový čítač | T6. Řadič, programový čítač, '''stavový registr''' | ||
T7. Registr, dekodér instrukcí | T7. Registr, dekodér instrukcí | ||
T8. ALU, příznaky | T8. ALU, příznaky | ||
T9. Sběrnice, budič sběrnice | T9. '''Sběrnice, budič sběrnice''' | ||
T10. Časování CPU, zřetězení instrukcí | T10. Časování CPU, '''instrukční cyklus, zřetězení instrukcí''' | ||
T11. Opakování | T11. Opakování | ||
''' T3 - Architektura mikrokontroléru MCU''' | ''' T3 - Architektura mikrokontroléru MCU''' | ||
T12. Rozšířené blokové schéma MCU | T12. Rozšířené blokové schéma MCU | ||
T13. Von Neumanova koncepce, Harvardská architektura | T13. '''Von Neumanova koncepce, Harvardská architektura''' | ||
T14. Architektura RISC a CISC mikrokontrolerů a jejich rozdíly (např.: 8051-ATmega328) | T14. '''Architektura RISC a CISC''' mikrokontrolerů a jejich rozdíly | ||
(např.: 8051-ATmega328) | |||
T15. Paměť mikropočítače, paměť programu, dat | T15. Paměť mikropočítače, paměť programu, dat | ||
T16. Paměť EEPROM (paralelní, sériová) | T16. Paměť EEPROM (paralelní, sériová) | ||
Řádek 30: | Řádek 189: | ||
T19. Opakování | T19. Opakování | ||
'''T4 | '''T4 – Periferní obvody MCU''' | ||
T23. Příklady připojení periférií k V/V branám LED, 7segment | T23. Příklady připojení periférií k V/V branám LED, 7segment | ||
T24. Tlačítko, klávesnice | T24. Tlačítko, klávesnice | ||
Řádek 41: | Řádek 195: | ||
T26. Opakování | T26. Opakování | ||
''' | '''T5 - Obvody integrované v MCU''' | ||
T27. Čítače / časovače | T27. Čítače / časovače | ||
T28. Sériové vstupní a výstupní obvody UART | T28. '''Sériové vstupní a výstupní obvody UART''' | ||
T29. Přerušovací systém | T29. '''Přerušovací systém''' | ||
T30. Obvody PWM | T30. Obvody PWM | ||
T31. Sériové vstupní a výstupní obvody I2C | T31. Sériové vstupní a výstupní obvody I2C | ||
T32. Sériové vstupní a výstupní obvody SPI | T32. Sériové vstupní a výstupní obvody SPI | ||
T33. | T33. '''Úsporný režim''' | ||
T34. Opakování | T34. Opakování | ||
'''T6 - Přehled typů MCU''' | |||
T20. Z80, 8051, ATmega328 | |||
T21. ESP8266, ESP32 | |||
T22. RP2040 (Raspberry Pi PICO), Cortex (Raspberry Pi) | |||
|} | |||
</div> | |||
{| class="toccolours" cellpadding="5" style=" | <div style="margin: 0 0 1em 0;"> | ||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Cvičení''''' | {| class="toccolours" cellpadding="5" style="font-size: 85%; width: 40em;" | ||
|- | | colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Cvičení''''' | ||
| | |- style="vertical-align: top;" | ||
| | |||
Cv1. Seznámení s IDE, zapsání a odladění jednoduchého programu v asm | Cv1. Seznámení s IDE, zapsání a odladění jednoduchého programu v asm | ||
Řádek 76: | Řádek 236: | ||
Cv16. Práce na projektu – zpracování dokumentace | Cv16. Práce na projektu – zpracování dokumentace | ||
Cv17. Práce na projektu – prezentace | Cv17. Práce na projektu – prezentace | ||
|} | |||
</div> | |||
|} | <div style="margin: 0 0 1em 0;"> | ||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 40em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Hardware v 3. ročníku''''' | |||
|- style="vertical-align: top;" | |||
| | |||
{{Šablona:HW3r-header}} | |||
|} | |||
</div> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 40em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Maturita''''' | |||
|- style="vertical-align: top;" | |||
| | |||
{{Šablona:HW3r-maturita}} | |||
|} | |||
</div> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 40em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Otázky do 3. HW písemky:''''' | |||
|- style="vertical-align: top;" | |||
| | |||
# Co je InstallFest? | |||
# Co připravujete na letošní SOČ | |||
# Co je PROXMOX? | |||
# Nakreslete schéma i/o obvodu nacházejíc se uvnitř MCU | |||
# Nakreslete schéma i/o obvodu nacházejíc se uvnitř MCU s předvolbou fce | |||
# Vysvětlete zkratky LiFo, SP | |||
# Nakreslete minimální schéma s MCU | |||
# Připojte k MCU 7segmentovku jen pomocí 4 vodičů | |||
# Popište organizaci ROM | |||
# Popište organizaci RAM | |||
# Vysvětlete zkratku SFR a uveďte několik příkladů | |||
|} | |||
</div> | |||
<div style="margin: 0 0 1em 0;"> | |||
{| class="toccolours" cellpadding="5" style="font-size: 85%; width: 40em;" | |||
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Otázky do 3. SW písemky:''''' | |||
|- style="vertical-align: top;" | |||
| | |||
# Demonstrujte použití přímého adresování | |||
# Demonstrujte použití NEpřímého adresování | |||
# Vypište na příkladech bitové instrukce | |||
# SW pro blikání LED se frekvencí 50 kHz | |||
# zapište do RAM čísla 3d,42,255d | |||
# Uveďte příklad pro bitový test | |||
# Uveďte příklad pro bytový test | |||
# Nakreslete vývojový diagram pro LF AND | |||
# Cyklicky posílejte data z RAM na display - čísla 0,8,dP | |||
|} | |||
</div> | |||
</div> |
Aktuální verze z 26. 5. 2025, 19:08
komplet "Assembly via Arduino" by Anas Kuzechie
Soubor:Arduino link-part5.jpg wokwi part 5
Soubor:Arduino link-part6.jpg wokwi part 6
Soubor:Arduino link-part7.jpg wokwi part 7
Soubor:Arduino link-part8.jpg wokwi part 8
Soubor:Arduino link-part9.jpg wokwi part 9
Inspirace k vyzkoušení
- https://robodoupe.cz/2017/espeasy-je-opravdu-easy/
- https://wiki.sps-pi.cz/index.php/HAOS
- https://wiki.seeedstudio.com/home_assistant_topic/
- https://www.codeconvert.ai/assembly-to-python-converter
- https://cw.fel.cvut.cz/wiki/courses/b35apo/tutorials/start
Otázky ke zkoušení
Opakovací otázky z teorie | |
|
Otázky k opakování ze CV a pro projekt | |
Bonus:
nejpoužívanější instrukce: SETB, CLR, NOP, SJMP, MOV, @, ACALL-RET, INC, CJNE, JB, |
Témata na referáty | |
|
Teorie | |
T1 – Opakování z 2. ročníku T1. Úvod do předmětu, pravidla, aktivity.. T2. Opakování LF, KLO – sčítačka, SLO: D-KO, čítač/registry T2 - Architektura mikroprocesoru CPU T3. Blokové schéma mikroprocesoru CPU T4. Blokové schéma mikrokontroléru MCU T5. Minimální schéma s MCU T6. Řadič, programový čítač, stavový registr T7. Registr, dekodér instrukcí T8. ALU, příznaky T9. Sběrnice, budič sběrnice T10. Časování CPU, instrukční cyklus, zřetězení instrukcí T11. Opakování T3 - Architektura mikrokontroléru MCU T12. Rozšířené blokové schéma MCU T13. Von Neumanova koncepce, Harvardská architektura T14. Architektura RISC a CISC mikrokontrolerů a jejich rozdíly (např.: 8051-ATmega328) T15. Paměť mikropočítače, paměť programu, dat T16. Paměť EEPROM (paralelní, sériová) T17. Obvody vstupu a výstupu T18. Reset mikropočítače, hlídací časovač WATCHDOG T19. Opakování T4 – Periferní obvody MCU T23. Příklady připojení periférií k V/V branám LED, 7segment T24. Tlačítko, klávesnice T25. Motory - ss, krokový, servo T26. Opakování T5 - Obvody integrované v MCU T27. Čítače / časovače T28. Sériové vstupní a výstupní obvody UART T29. Přerušovací systém T30. Obvody PWM T31. Sériové vstupní a výstupní obvody I2C T32. Sériové vstupní a výstupní obvody SPI T33. Úsporný režim T34. Opakování T6 - Přehled typů MCU T20. Z80, 8051, ATmega328 T21. ESP8266, ESP32 T22. RP2040 (Raspberry Pi PICO), Cortex (Raspberry Pi) |
Cvičení | |
Cv1. Seznámení s IDE, zapsání a odladění jednoduchého programu v asm Cv2. Instrukce na přesuny dat (mezi registry, porty apod.), Cv3. Generování zpoždění programovou smyčkou Cv4. Aritmetické operace, porovnání Cv5. Větvení programu, programové cykly Cv6. Čtení z portu, využití logických a bitových operací k úpravě přečtených informací Cv7. Generování zpoždění časovačem, obsluha LED Cv8. Programová obsluha sedmisegmentovky – přímé adresování, nepřímé adresování Cv9. Čtení dat z RAM, ROM Cv10. Obsluha přerušení od čítače a vnějšího přerušení Cv11. Vývoj aplikace v C/C++ , Cv12. Vývoj aplikace v mikroPythonu apod. Cv13. Práce na projektu - zadání Cv14. Práce na projektu - tvorba a ladění programu Cv15. Práce na projektu - oživení aplikace Cv16. Práce na projektu – zpracování dokumentace Cv17. Práce na projektu – prezentace |
Hardware v 3. ročníku | ||||||||||||||||||||||||||||
|
Maturita | |
Programování mikrořadiče v asembleru - komunikace mikrořadiče s jednoduchými perifériemi (LED, spínače, 7segmentovka) s využitím čítačů/časovačů a přerušovacího systému doporučeno si k maturitě přinést tabulku s instrukční sadou Předpokládaná dovednosti (dle zadání): navrhnout blokové schéma MIT aplikace vyřešit napájení MCU nakreslit minimální el. schéma s MCU nakreslit schéma s navrženými perifériemi (LED, 7segmentovka, motory, tlačítko...) navrhnout vývojový diagram odladit program ve vhodném IDE MCU naprogramovat (asistence s vyučujícím) zpracovat dokumentaci zopakovat si programy ze cvičení řešící: přesuny dat pomocí přímého adresování přesuny dat pomocí nepřímého adresování čtení a zápis na port (tlačítko, LED) řízení 7segmentovky podmíněné a nepodmíněné skoky časové smyčky s použitím registrů R0, R1.... časové smyčky s použitím čítače/časovače přesun dat z RAM na PORT přesun dat z ROM na PORT nejpoužívanější instrukce: MOV, SETB, CLR, CJNE, SJMP, INC, DEC, JB, DJNZ, ACALL, RET |
Otázky do 3. HW písemky: | |
|
Otázky do 3. SW písemky: | |
|