AplTVY3: Porovnání verzí
Bez shrnutí editace |
|||
(Není zobrazeno 84 mezilehlých verzí od stejného uživatele.) | |||
Řádek 21: | Řádek 21: | ||
T14 - Opakování | T14 - Opakování | ||
[[Soubor: | [[Soubor:PovinnaPrace_NavrhMIT_aplikace.png|150px|link=PP_-_Návrh_MIT_aplikace]] | ||
[[Soubor:PovinnaPrace_VyvojMIT_aplikace.png|50px|link=Vývoj MIT aplikace]] | |||
|} | |} | ||
Řádek 42: | Řádek 44: | ||
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em" | {| 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;" | '''''Domácí úkoly:''''' | | colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Domácí úkoly 2021-22:''''' | ||
|- | |||
| | |||
22.2 | |||
dle návodu na http://wiki.sps-pi.cz/index.php/IBM-IoT#postup si nainstalujte v cloudu nebo lokálně Node-RED. Odevzdejte výsledné PrtScr dle vzoru v příloze (samozřejmě s vašimi údaji "d:org:device_type:device_ID"; např.: "d:3yaaz5:wemos:metostanice"; | |||
1.3. V [[Tinkercad]]u vyzkoušejte postupně zapojení s LED, Button, LDR, 18B20, TMP35 ......tak, aby zjištěná hodnota výstupní proměnné nebo její stav byla vyposílána na seriový port (monitor). Lze otestovat i s [[ESP8266]] v [[Wokwi]]. [https://youtu.be/L1A_yhO9Fo4 YT: Arduino Online Simulator Free Arduino and ESP32 by Wokwi ] Odevzdejte všechny výsledné PrtScr. | |||
|} | |||
{| 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;" | '''''Domácí úkoly 2020-21:''''' | |||
|- | |||
| | |||
14.9. | |||
Dohledat SP z předmětů HW a PRAI, přinést sešit | |||
od pondělí 12.10.2020 zítra (a příští týden skupina PSP) se koná dle rozvrhu prezenční výuka předmětu "praktická cvičení" v PC učebně VYT5. Kdyby jste se (z nějakých důvodů) nemohli dostavit, budu rád, když se zúčastníte výuky alespoň distančně a budete mít na svých PC nainstalován program Deeds (testování seminární práce na návrh SLO) a IDE (vývojové prostředí) pro tvorbu programu v JSA (jazyk symbolických adres - assembler) procesoru 8051 (např. MCU 8051 IDE, EdSIM51, Ride..............) a pro skupinu PSP také IDE pro ATmega328 (je v Arduinu). Výuka poběží tedy paralelně a do třídní knihy zapíši absenci jen těm, kteří nebudu ani prezenčně (určitě upřednostňuji) a ani distančně na vyučování. | |||
7.12. | |||
V odpovědi odevzdejte PrtScr ukázky nepřímého adresování v libovolném IDE, t.j úkolem je uskutečnit zápis dat do místa v RAM, kde nelze použít přímé adresování. V případě použití MCU8051IDE je úkolem uložit číslo na adresu 80h. | |||
21.12. | |||
Nakreslit blok. schéma CPU s jádrem AVR včetně | |||
popisu funkce jednotlivých částí (obr. ve stylu jako v příloze). Pozor CPU ne MCU! | |||
pozn. DÚ jen pro ty, kteří nejsou spokojeni se známkou z dnešního testu. | |||
18.1. | |||
V odpovědi odevzdejte PrtScr ukázky práce s aritmetickou operací ADD. Příklady: -84 +60, -84+100, 84+100, -84-100 atd. Sledujte hlavně C a OV. | |||
22.2. | |||
odevzdejte minimálně jedno řešení z úkolů: | |||
1) vyzkoušení log. funkcí v asm (ANL, ORL, XRL, CPL) - natočit videoscreen testování programu (MT, OBS, Bandicam) | |||
2) bin čítač s omezením do 500us (videscreen) | |||
3) desítkový čítač 0->9 (videscreen) | |||
4) desítkový čítač 00 -> 99 (videscreen) | |||
5) modifikované *.ino pro DHT11 + json | |||
6) přidané zařízení (PrtScr) | |||
7) nastavení CloudFoundry apps/services (PrtScr) | |||
8) nastavení Node-Red pro DHT11 | |||
15.3.Test-PRA3rPSPv01 | |||
31.3.Odevzdejte řešení ukazující využití zpoždění s dvěma (alt. 3mi) registry v IDE pro MCU ATmeg328 | |||
7.6.2021: program v asm pro blikání LED o f = 5Hz. | |||
21.6.2021: program v asm, kde po zmáčknutí tlačítka připojené na pin 2. LED na pinu 13 3x zabliká a opět čeká na aktivaci od tlačítka | |||
SW: MS Teams, Deeds, MCU 8051 IDE, zdroj info: http://wiki.sps-pi.cz/AplTVY3 | |||
Pozn.: [[Domácí úkoly|Jak odevzdávat domácí úkoly]] | |||
|} | |||
{| 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;" | '''''Domácí úkoly 2019-20:''''' | |||
|- | |- | ||
| | | | ||
Řádek 55: | Řádek 118: | ||
4. Nakreslete blokové schéma mikroprocesorové aplikace, kterou dokážete sestavit na KNP a naprogramovat (MCU, vstupní čidla, výstupní moduly). Zde v odpovědi odevzdejte PrtScr. | 4. Nakreslete blokové schéma mikroprocesorové aplikace, kterou dokážete sestavit na KNP a naprogramovat (MCU, vstupní čidla, výstupní moduly). Zde v odpovědi odevzdejte PrtScr. | ||
|} | |} | ||
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | |||
== | == Cvičení == | ||
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
<Gallery> | <Gallery> | ||
Soubor: | Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V | ||
Soubor:PICAXE-vyv- | Soubor:PICAXE-vyv-diagram_01.jpg|[[PICAXE]] - Blik | ||
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT | Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT | ||
</gallery> | </gallery> | ||
=== TinkerCAD === | === [https://www.tinkercad.com TinkerCAD] === | ||
[[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]] | [[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]] | ||
<gallery> | <gallery> | ||
Soubor:tinkercad02.jpg | Soubor:tinkercad02.jpg|https://www.tinkercad.com | ||
Soubor:tinkercad03.jpg | Soubor:tinkercad03.jpg | ||
Soubor:tinkercad09.jpg | Soubor:tinkercad09.jpg | ||
Řádek 102: | Řádek 149: | ||
</gallery> | </gallery> | ||
=== | === [[Atmel Studio]] === | ||
[[Soubor:Atmel-studio.png|IDE|100px]] [[Soubor:Atmel-studio_1.png|IDE|300px]] | |||
[https://www.microchip.com/en-us/tools-resources/develop/microchip-studio#Downloads download] | |||
=== [https://wokwi.com/ wokwi] === | |||
<gallery> | |||
Soubor:wokwi_AVR_01.jpg|[https://wokwi.com/projects/392695146694098945 7segment] | |||
</gallery> | |||
=== Ovládání 7segmentovky s [[ATmega328]] na desce [[Arduino]] === | |||
<Gallery> | |||
Soubor:ARD21-sch.png|[[ARD21]][[:Soubor:ARD21-pcb.png|PCB]] | |||
Soubor:Multifunctional Expansion Board.png|[[:Soubor:MFEB-schematic.png|schéma]] + [[:Soubor:MFEB-example.pdf|příklady]] | |||
</Gallery> | |||
=== Popis zapojení a funkce uni desky [[VYV50]] === | |||
<Gallery> | |||
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]] | |||
Soubor:proficad-RD2KIT-01.png|kreslení blokových schémat v [[ProfiCAD]] | |||
</Gallery> | |||
[[Soubor:Arduino-ATmega328Pinout.png|400px|ATmega328 Pinout]] | |||
[[Soubor:ATmega328Pinout.png|400px|ATmega328 Pinout]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
==== Assembly via Arduino ==== | |||
[[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
====How to Flash or Program Arduino from Atmel Studio?==== | |||
https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/ | |||
[[Soubor:HowtoFlash.png|link=https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/]] | |||
[[Soubor:SetAtmmelStudio.png|400px|nastavení Atmmel Studia - Send to Arduino]] | |||
text k vyplnění: | |||
Send to Arduino UNO | |||
C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe | |||
-C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM3 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i | |||
[[Soubor:SetAtmmelStudio-IDE.png|400px|export z Arduino IDE]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== [http://rjhcoding.com/ rjhcoding] === | |||
[[Soubor:rjhcoding.jpg|link=http://rjhcoding.com/]] | |||
* [http://rjhcoding.com/avr-asm-light-an-led.php Example Program #1: LED] | |||
* [http://rjhcoding.com/avr-asm-registers.php Working With Registers R0-R31] | |||
* [http://rjhcoding.com/avr-asm-led-blink.php Example Program #3: Blink] | |||
* [http://rjhcoding.com/avr-asm-sreg.php The Status Register] | |||
* [http://rjhcoding.com/avr-asm-program-flow.php Conditional Branching] | |||
* [http://rjhcoding.com/avr-asm-delay-subroutine.php Example Program #4: Delay Subroutine] | |||
* [http://rjhcoding.com/avr-asm-io.php Working With I/O Registers] | |||
* [http://rjhcoding.com/avr-asm-sram.php Working With Extended I/O And SRAM] | |||
* [http://rjhcoding.com/avr-asm-pm.php Loading Data from Program Memory] | |||
--------------------------------------------------------------------------------------------------------------- | |||
[[Soubor:AVRdelay.png|500px|link=http://darcy.rsgc.on.ca/ACES/TEI4M/AVRdelay.html]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== Blink in C === | |||
https://wokwi.com/projects/354469641572834305 | |||
[[Soubor:atmega328p-blink_C.png|200px|right]] | |||
<source lang="c"> | |||
//#include <avr/io.h> //iom328p.h | |||
#include <util/delay.h> | |||
int main(){ | |||
_SFR_IO8(0x0A) = 0xFF; // #define DDRD _SFR_IO8(0x0A) | |||
// DDRB = 0xFF; | |||
_SFR_IO8(0x0B) = 0x00; // PORTD= 0x00; | |||
while(1){ | |||
PORTD |= (1 << PD0); | |||
PORTD |= (1 << PD2) | (1 << PD1); | |||
PORTD ^= (1 << PD3); | |||
PORTD |= (1 << PD5) & ~(1 << PD4); | |||
_delay_ms(1000); | |||
PORTD &= ~(1 << PD0); | |||
PORTD &= ~(1 << PD2) & ~(1 << PD1); | |||
PORTD ^= (1 << PD5) ^ (1 << PD4); | |||
_delay_ms(1000); | |||
} | |||
return 0; | |||
} | |||
</source> | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== Blink with Timer === | |||
https://wokwi.com/projects/354046396997507073 https://wokwi.com/projects/354556802672660481 | |||
[[Soubor:atmega328p-timers1.gif|200px|right]] | |||
{| | |||
|- | |||
| | |||
<source lang="asm"> | |||
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327 | |||
;https://wokwi.com/projects/354046396997507073 | |||
;funkční ;sbi PORTB,5 zde nefunguje | |||
#define __SFR_OFFSET 0x20 | |||
#include "avr/io.h" | |||
.global main | |||
main: rcall setup // zavolání funkce setup | |||
loop: | |||
COM R17 ; Complement R17 register | |||
STS PORTD, R17 ; Toggle the LED output | |||
rcall delay | |||
rjmp loop | |||
delay: | |||
LDI R16, 0xC2 | |||
STS TCNT1H, R16 ; Writing 0xC2 into TCNT1H (8-bit) | |||
LDI R16, 0xF7 | |||
STS TCNT1L, R16 ; Writing 0xF7 into TCNT1H (8-bit) | |||
LDI R16, 0x05 | |||
STS TCCR1B, R16 ; Writing 0x05 into TCCR1B | |||
L:LDS R0, TIFR1 ; Load the value of TIFR1 into R0 | |||
SBRS R0, 0 ; Skip the next statement if overflow has occured. | |||
RJMP L ; Loop until overflow occurs. | |||
LDI R16, 0x00 | |||
STS TCCR1B, R16 ; Stop the Timer/Counter1 | |||
LDI R16, 0x01 | |||
STS TIFR1, R16 ; Clear the overflow flag by writing 1 to it | |||
ret | |||
setup: | |||
LDI R16, 0xFF ; Setting bits of PORTD as output | |||
STS DDRD, R16 | |||
LDI R17, 0x55 | |||
STS PORTD, R17 ; Writing 0 to PORTD | |||
ret | |||
</source> | |||
| | |||
<source lang="c"> | |||
//https://wokwi.com/projects/354556802672660481 | |||
#include <avr/io.h> //iom328p.h | |||
#include <util/delay.h> | |||
int main(){ | |||
DDRD = 0xFF; // #define DDRD _SFR_IO8(0x0A) | |||
PORTD= 0x55; | |||
while(1){ | |||
PORTB ^= (1 << PD5); | |||
PORTD = ~PORTD; | |||
delay(); | |||
} | |||
return 0; | |||
} | |||
int delay(){ | |||
TCNT1H = 0xC2; | |||
TCNT1L = 0xF7; | |||
TCCR1B = 0x05; //prescaler 1024 | |||
while (!(TIFR1 & (1<< TOV1))); | |||
TCCR1B = 0x00; | |||
TIFR1 = 0x01; | |||
} | |||
</source> | |||
|- | |||
|} | |||
=== [https://www.arxterra.com/9-atmega328p-timers/ Interrupts and 16-bit Timer/Counter 1: ATmega328P Timing Subsystems] === | |||
https://www.arxterra.com/9-atmega328p-timers/ | |||
[[Soubor:atmega328p-timers3.png|600px|link:https://www.arxterra.com/9-atmega328p-timers/]] | |||
--------------------------------------------------------------------------------------------------------------- | |||
===[https://www.youtube.com/watch?v=B-BsqpgtQWI IO interface of AVR]=== | |||
[[Soubor:IO_interface.jpg|500px|link=https://www.youtube.com/watch?v=B-BsqpgtQWI]] | |||
{{#widget:YouTube|id=B-BsqpgtQWI|height=270|width=360|IO interface of AVR|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== AVR Interrupts === | |||
{{#widget:YouTube|id=zViw6mMzEoA|height=270|width=360|AVR Interrupts|right}} | |||
--------------------------------------------------------------------------------------------------------------- | |||
=== www === | |||
* [https://www.spshronov.cz/eusoubory2/dum_atmega32.pdf SPS Hronov - Atmega32] | |||
* [https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327 Arduino Blink Example in Assembly using Timer/Counter1] | |||
* [https://www.hackster.io/yeshvanth_muniraj/accessing-i-o-in-atmega328p-arduino-using-assembly-and-c-10e063#toc-sts---store-direct-to-data-space-5 Accessing I/O in ATmega328P (Arduino) using Assembly and C] | |||
* [http://www.elektromys.eu/clanky/avr_timer1/clanek.html Čítač / časovač 1 nejen na Attiny] | |||
* [http://www.8bit-era.cz/arduino-timer-interrupts-calculator.html Arduino Timer Interrupts Calculator] | |||
* [https://www.arduinoslovakia.eu/application/timer-calculator AVR Timer Interrupts Calculator (slovakia)] | |||
* [http://www.avr-asm-tutorial.net/avr_en/micro_beginner/4_Led_Timer/4_Led_Timer.html Lecture 4: Blinking a LED with a timer] | |||
* [https://svetelektro.com/clanky/pokrocile-programovanie-mikropocitacov-v-jazyku-c-diel-c1-763/ Pokročilé programovanie mikropočítačov v jazyku C. Diel č.1] | |||
--------------------------------------------------------------------------------------------------------------- | |||
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br> | |||
'''== Archiv ==''' | |||
=== [[MCU]]: [[8051]]: === | |||
<gallery> | <gallery> | ||
Soubor: | Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]] pro vývoj aplikací v asm/C | ||
Soubor: | Soubor:juego de instrucciones MCS-51.jpg|[http://www.alciro.org/alciro/microcontroladores-8051_24/guia-referencia-microcontroladores-8051_232.htm Instrucciones] | ||
Soubor: | Soubor:EDSIM-screen.png|[https://www.edsim51.com/ EdSim51] | ||
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> | </gallery> | ||
Řádek 148: | Řádek 425: | ||
** [http://www.ges.cz/ GES Electronic] Společnost s prodejnami a zásilkovým prodejem. | ** [http://www.ges.cz/ GES Electronic] Společnost s prodejnami a zásilkovým prodejem. | ||
** [http://www.farnell.com Farnell] [http://www.rothsware.cz/web/farnell/ zastoupení] | ** [http://www.farnell.com Farnell] [http://www.rothsware.cz/web/farnell/ zastoupení] | ||
== Témata na cvičení do roku 2016 == | == Témata na cvičení do roku 2016 == | ||
Řádek 211: | Řádek 457: | ||
--------------------------------------------------------------------------------------------------------------- | |||
=== Otázky k opakování do roku 2016 === | === Otázky k opakování do roku 2016 === |
Aktuální verze z 18. 3. 2024, 11:42
Tématický plán | |
T0 - BOZP – řády odborných učeben T1 – Popis vývoje mikropočítačové aplikace T2 – V/v brány, jejich vlastnosti a využití T3 – Tvorba programu pro výstupní moduly T4 – Vývoj mikroprocesorové aplikace – LED T5 – Časové zpoždění T6 – Vstupní moduly – tvorba programu pro vstupní moduly T7 – Vývoj mikroprocesorové aplikace – test vstupů T8 – Programování aplikace T9 – Naprogramování mikropočítače T10 – Vývoj mikroprocesorové aplikace – čidlo světla T11 – Vývoj mikroprocesorové aplikace – 7 segment T12 – Vývoj mikroprocesorové aplikace – motory T13 – Vývoj mikroprocesorové aplikace – čidlo teploty T14 - Opakování |
Otázky k opakování | |
|
Domácí úkoly 2021-22: | |
22.2 dle návodu na http://wiki.sps-pi.cz/index.php/IBM-IoT#postup si nainstalujte v cloudu nebo lokálně Node-RED. Odevzdejte výsledné PrtScr dle vzoru v příloze (samozřejmě s vašimi údaji "d:org:device_type:device_ID"; např.: "d:3yaaz5:wemos:metostanice"; 1.3. V Tinkercadu vyzkoušejte postupně zapojení s LED, Button, LDR, 18B20, TMP35 ......tak, aby zjištěná hodnota výstupní proměnné nebo její stav byla vyposílána na seriový port (monitor). Lze otestovat i s ESP8266 v Wokwi. YT: Arduino Online Simulator Free Arduino and ESP32 by Wokwi Odevzdejte všechny výsledné PrtScr.
|
Domácí úkoly 2020-21: | |
14.9. Dohledat SP z předmětů HW a PRAI, přinést sešit od pondělí 12.10.2020 zítra (a příští týden skupina PSP) se koná dle rozvrhu prezenční výuka předmětu "praktická cvičení" v PC učebně VYT5. Kdyby jste se (z nějakých důvodů) nemohli dostavit, budu rád, když se zúčastníte výuky alespoň distančně a budete mít na svých PC nainstalován program Deeds (testování seminární práce na návrh SLO) a IDE (vývojové prostředí) pro tvorbu programu v JSA (jazyk symbolických adres - assembler) procesoru 8051 (např. MCU 8051 IDE, EdSIM51, Ride..............) a pro skupinu PSP také IDE pro ATmega328 (je v Arduinu). Výuka poběží tedy paralelně a do třídní knihy zapíši absenci jen těm, kteří nebudu ani prezenčně (určitě upřednostňuji) a ani distančně na vyučování.
21.12. Nakreslit blok. schéma CPU s jádrem AVR včetně popisu funkce jednotlivých částí (obr. ve stylu jako v příloze). Pozor CPU ne MCU! pozn. DÚ jen pro ty, kteří nejsou spokojeni se známkou z dnešního testu. 18.1. V odpovědi odevzdejte PrtScr ukázky práce s aritmetickou operací ADD. Příklady: -84 +60, -84+100, 84+100, -84-100 atd. Sledujte hlavně C a OV. 22.2. odevzdejte minimálně jedno řešení z úkolů: 1) vyzkoušení log. funkcí v asm (ANL, ORL, XRL, CPL) - natočit videoscreen testování programu (MT, OBS, Bandicam) 2) bin čítač s omezením do 500us (videscreen) 3) desítkový čítač 0->9 (videscreen) 4) desítkový čítač 00 -> 99 (videscreen) 5) modifikované *.ino pro DHT11 + json 6) přidané zařízení (PrtScr) 7) nastavení CloudFoundry apps/services (PrtScr) 8) nastavení Node-Red pro DHT11 15.3.Test-PRA3rPSPv01 31.3.Odevzdejte řešení ukazující využití zpoždění s dvěma (alt. 3mi) registry v IDE pro MCU ATmeg328 7.6.2021: program v asm pro blikání LED o f = 5Hz. 21.6.2021: program v asm, kde po zmáčknutí tlačítka připojené na pin 2. LED na pinu 13 3x zabliká a opět čeká na aktivaci od tlačítka
Pozn.: Jak odevzdávat domácí úkoly |
Domácí úkoly 2019-20: | |
1. Postupně v aplikaci TinkerCad vyzkoušejte úkoly tak, aby jste zvládli (např. u praktické maturity) zapojit na KNP a naprogramovat mikroprocesorovou aplikaci s LED, RGB, tlačítkem, potenciometrem, PIR, LDR, čidle teploty, PING, servem, krokovým motorem atd. Každý úspěšný experiment zpracujte v postupně rozšiřující dokumentaci. Mikroprocesor lze použit: Arduino, PICAXE, 8051 apod. 2. Podívejte se na výsledky letošního školního a krajského kola SOČ SOČ 2020 3. Do odpovědi na tento úkol zkopírujte link na video prezentaci SOČ práce, která vás nejvíce zaujala. Pozn.: Soutěží se v 18ti vědních oborech. Letos museli soutěžící natočit video o své práci a umístit na YT. (vyhledávací slova: Středoškolská odborná činnost a číslo oboru (10, 18 ....)) . Např. pro obor Elektrotechnika: Středoškolská odborná činnost 10 (https://bit.ly/2yaQ9m7) nebo pro obor Informatika: Středoškolská odborná činnost 18 (https://bit.ly/2Sj8wME) 4. Nakreslete blokové schéma mikroprocesorové aplikace, kterou dokážete sestavit na KNP a naprogramovat (MCU, vstupní čidla, výstupní moduly). Zde v odpovědi odevzdejte PrtScr. |
Cvičení
-
Stabilizovaný zdroj +5V
-
PICAXE - Blik
-
2x IN, 2 x OUT
TinkerCAD
Atmel Studio
wokwi
Ovládání 7segmentovky s ATmega328 na desce Arduino
Popis zapojení a funkce uni desky VYV50
Assembly via Arduino
How to Flash or Program Arduino from Atmel Studio?
https://www.arnabkumardas.com/platforms/atmel/how-to-flash-or-program-arduino-from-atmel-studio/
text k vyplnění: Send to Arduino UNO C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe -C "C:\Program Files (x86)\Arduino\hardware\tools\avr\etc\avrdude.conf" -p atmega328p -c arduino -P COM3 -b 115200 -U flash:w:"$(ProjectDir)Debug\$(TargetName).hex":i
rjhcoding
- Example Program #1: LED
- Working With Registers R0-R31
- Example Program #3: Blink
- The Status Register
- Conditional Branching
- Example Program #4: Delay Subroutine
- Working With I/O Registers
- Working With Extended I/O And SRAM
- Loading Data from Program Memory
Blink in C
https://wokwi.com/projects/354469641572834305
//#include <avr/io.h> //iom328p.h
#include <util/delay.h>
int main(){
_SFR_IO8(0x0A) = 0xFF; // #define DDRD _SFR_IO8(0x0A)
// DDRB = 0xFF;
_SFR_IO8(0x0B) = 0x00; // PORTD= 0x00;
while(1){
PORTD |= (1 << PD0);
PORTD |= (1 << PD2) | (1 << PD1);
PORTD ^= (1 << PD3);
PORTD |= (1 << PD5) & ~(1 << PD4);
_delay_ms(1000);
PORTD &= ~(1 << PD0);
PORTD &= ~(1 << PD2) & ~(1 << PD1);
PORTD ^= (1 << PD5) ^ (1 << PD4);
_delay_ms(1000);
}
return 0;
}
Blink with Timer
https://wokwi.com/projects/354046396997507073 https://wokwi.com/projects/354556802672660481
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327
;https://wokwi.com/projects/354046396997507073
;funkční ;sbi PORTB,5 zde nefunguje
#define __SFR_OFFSET 0x20
#include "avr/io.h"
.global main
main: rcall setup // zavolání funkce setup
loop:
COM R17 ; Complement R17 register
STS PORTD, R17 ; Toggle the LED output
rcall delay
rjmp loop
delay:
LDI R16, 0xC2
STS TCNT1H, R16 ; Writing 0xC2 into TCNT1H (8-bit)
LDI R16, 0xF7
STS TCNT1L, R16 ; Writing 0xF7 into TCNT1H (8-bit)
LDI R16, 0x05
STS TCCR1B, R16 ; Writing 0x05 into TCCR1B
L:LDS R0, TIFR1 ; Load the value of TIFR1 into R0
SBRS R0, 0 ; Skip the next statement if overflow has occured.
RJMP L ; Loop until overflow occurs.
LDI R16, 0x00
STS TCCR1B, R16 ; Stop the Timer/Counter1
LDI R16, 0x01
STS TIFR1, R16 ; Clear the overflow flag by writing 1 to it
ret
setup:
LDI R16, 0xFF ; Setting bits of PORTD as output
STS DDRD, R16
LDI R17, 0x55
STS PORTD, R17 ; Writing 0 to PORTD
ret
|
//https://wokwi.com/projects/354556802672660481
#include <avr/io.h> //iom328p.h
#include <util/delay.h>
int main(){
DDRD = 0xFF; // #define DDRD _SFR_IO8(0x0A)
PORTD= 0x55;
while(1){
PORTB ^= (1 << PD5);
PORTD = ~PORTD;
delay();
}
return 0;
}
int delay(){
TCNT1H = 0xC2;
TCNT1L = 0xF7;
TCCR1B = 0x05; //prescaler 1024
while (!(TIFR1 & (1<< TOV1)));
TCCR1B = 0x00;
TIFR1 = 0x01;
}
|
Interrupts and 16-bit Timer/Counter 1: ATmega328P Timing Subsystems
https://www.arxterra.com/9-atmega328p-timers/
IO interface of AVR
AVR Interrupts
www
- SPS Hronov - Atmega32
- Arduino Blink Example in Assembly using Timer/Counter1
- Accessing I/O in ATmega328P (Arduino) using Assembly and C
- Čítač / časovač 1 nejen na Attiny
- Arduino Timer Interrupts Calculator
- AVR Timer Interrupts Calculator (slovakia)
- Lecture 4: Blinking a LED with a timer
- Pokročilé programovanie mikropočítačov v jazyku C. Diel č.1
== Archiv ==
MCU: 8051:
-
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
Modifikace programu s 8051
-
Křižovatka AUC
-
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
loop:
mov P0,#01010011 ;modifikovat dle LED
mov P2,#11001100 ;modifikovat dle LED
acall delay
.
.
.
sjmp loop
delay: mov R0,#255d ;podprogram zpoždění
skok2: mov R1,#5d
skok1: mov R2,#5d
skok: djnz R2,skok
djnz R1,skok1
djnz R0,skok2
ret ;návrat z podprogramu
end
Objednávka součástek
- Prodejci součástek:
- GME Doporučujeme tuto společnost s prodejnami v Praze, Brně, Ostravě, Plzni a zásilkovým prodejem.
- TME zásilkový prodej.
- SOS Electronic zásilkový prodej.
- GES Electronic Společnost s prodejnami a zásilkovým prodejem.
- Farnell zastoupení
Témata na cvičení do roku 2016
ELE:
-
Stabilizovaný zdroj +5V
MIT:
Bonus:
-
Robot 2WD (arduino)
-
Tank DO (arduino)
-
Car DO (arduino)
Otázky k opakování do roku 2016
TP do roku 2016 | |
|
Otázky k opakování do roku 2016
HW
- Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
- Otestuje AKO s časovačem 555
- Popište funkci operačního zesilovače
- Proveďte návrh schéma zapojení s blikající LED (klasické řešení versus mikroprocesorové)
- Navrhněte připojení 7segmentovky k MCU
SW
- Napište program pro blikání jedné (a více) LED
- Připojte a otestujte čidlo dotyku (vzdálenosti, světla) s MCU
- Napište program pro test funkčnosti čidla světla
- Navrhněte a otestujte aplikaci ovládající motor (stejnosměrný, krokový)
- Popište postup vývoje mikroprocesorové aplikace