AplTVY3: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Bez shrnutí editace
 
(Není zobrazeno 63 mezilehlých verzí od stejného uživatele.)
Řádek 127: Řádek 127:
<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><br><br><br>


== Témata na cvičení ==
== Cvičení ==


ELE:
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}}
 
---------------------------------------------------------------------------------------------------------------
<Gallery>
<Gallery>
Soubor:logo-elektronika.jpg|[[ELT1]]
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V
</Gallery>
Soubor:PICAXE-vyv-diagram_01.jpg|[[PICAXE]] - Blik
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT
</gallery>
 
=== [https://www.tinkercad.com TinkerCAD] ===
 
[[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]]
 
<gallery>
Soubor:tinkercad02.jpg|https://www.tinkercad.com
Soubor:tinkercad03.jpg
Soubor:tinkercad09.jpg
Soubor:tinkercad10.jpg
</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]


=== [[MCU]]: [[8051]]: ===
=== [https://wokwi.com/ wokwi] ===


<gallery>
<gallery>
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]]  pro vývoj aplikací v asm/C
Soubor:wokwi_AVR_01.jpg|[https://wokwi.com/projects/392695146694098945 7segment]
Soubor:juego de instrucciones MCS-51.jpg|[http://www.alciro.org/alciro/microcontroladores-8051_24/guia-referencia-microcontroladores-8051_232.htm Instrucciones]
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>


=== PICAXE ===
=== Ovládání 7segmentovky s [[ATmega328]] na desce [[Arduino]] ===


<Gallery>
<Gallery>
Soubor:D10_HW_picaxe_01.jpg|[[PICAXE]] - vývojová deska
Soubor:ARD21-sch.png|[[ARD21]][[:Soubor:ARD21-pcb.png|PCB]]
Soubor:PICAXE-vyv-diagram_02.jpg|[[PICAXE]] - vývojový diagram
Soubor:Multifunctional Expansion Board.png|[[:Soubor:MFEB-schematic.png|schéma]] + [[:Soubor:MFEB-example.pdf|příklady]]
Soubor:ProfiCAD_PICAXE.png|[[PICAXE]] - blokové schéma
</Gallery>
</Gallery>


=== Popis zapojení a funkce uni desky [[VYV50]] ===
<Gallery>
<Gallery>
Soubor:PICAXE-vyv-diagram_01.jpg|Blik
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]]
Soubor:PICAXE-vyv-diagram_02.jpg|DICE
Soubor:proficad-RD2KIT-01.png|kreslení blokových schémat v [[ProfiCAD]]
Soubor:PICAXE-vyv-diagram.jpg|2x IN, 2 x OUT
</Gallery>
</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]


=== TinkerCAD ===
---------------------------------------------------------------------------------------------------------------


[[Soubor:LearnArduino.png|right|link=https://1url.cz/kzWKG]]


https://www.tinkercad.com


<gallery>
<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>
Soubor:tinkercad02.jpg
Soubor:tinkercad03.jpg
Soubor:tinkercad09.jpg
Soubor:tinkercad10.jpg
</gallery>


=== Fritzing ===
'''== Archiv =='''


https://fritzing.org/home/
=== [[MCU]]: [[8051]]: ===


<gallery>
<gallery>
Soubor:Fritzing-122.png
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]]  pro vývoj aplikací v asm/C
Soubor:Fritzing-123.png
Soubor:juego de instrucciones MCS-51.jpg|[http://www.alciro.org/alciro/microcontroladores-8051_24/guia-referencia-microcontroladores-8051_232.htm Instrucciones]
Soubor:Fritzing-124.png
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 219: Řá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í]
=== Popis zapojení a funkce uni desky [[VYV50]] ===
<Gallery>
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]]
soubor:VYV-deska-AVR-ATmega16-15.png|Zapojení s [[8051]] a [https://goo.gl/LsEhHa LCD]
Soubor:proficad-RD2KIT-01.png|kreslení blokových schémat v [[ProfiCAD]]
</Gallery>
=== Ovládání 7segmentovky s [[PICAXE]]===
<Gallery>
Soubor:PICAXE18_7segment.png|PICAXE18 + 7segment
Soubor:PICAXE20_2x7segment.png|PICAXE20 + 2x7segment
Soubor:PICAXE20_7segment.png|PICAXE20 + 7segment
Soubor:PIC_counter.jpg|[[PIC]]85 2 digit Up/Down Counter
</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>
[[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]]
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]]
=== Ovládání motorů ===
<Gallery>
Soubor:Umik-popis.png|[[Umík]] - popis
Soubor:Umik-blok-schema.png|[[Umík]] - blokové schéma
</Gallery>
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}}
<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
'''== Archiv =='''


== Témata na cvičení do roku 2016 ==
== Témata na cvičení do roku 2016 ==
Řádek 313: Řádek 457:




== Literatura ==
---------------------------------------------------------------------------------------------------------------
 
<gallery>
Soubor:Arduino-itnetwork.png|[http://www.itnetwork.cz/mikrokontroler-arduino-tutorialy|Arduino tutorial]
Soubor:Robot-arduino_RCB_car.png|[http://www.josefnav.cz/RCB.html|Control Boards by josefnav.cz]
</gallery>
 


=== 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

AplTVY
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í
  1. - Nakreslete vývojový diagram pro log. funkce NOT, AND, OR, XOR
  2. - Nakreslete vývojový diagram pro log. funkci n=3 y = 1 pro i = {1,3,6,7 (4)}
  3. - Nakreslete vývojový diagram pro log. funkci n=4 y = 1 pro i = {1,2,5,6,12,13 (4,11,15)}
  4. - Naprogramujte MCU pro blikání LED (blikačka)
  5. - Naprogramujte MCU pro ovládání akustického měniče (bzučák)
  6. - Modifikujte program pro MCU ovládající křižovatku
  7. - Vyberte vhodného dodavatel elektronických součástek (R,C,D,IO)
  8. - Analyzujte zapojení s MCU na UNi desce VYV50
  9. - Vyzkoušejte program pro ovládání 7segmentovky
  10. - Vyzkoušejte program pro ovládání ss motoru a krokového motoru
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í.


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


TinkerCAD

Atmel Studio

IDE IDE

download

wokwi

Ovládání 7segmentovky s ATmega328 na desce Arduino

Popis zapojení a funkce uni desky VYV50

ATmega328 Pinout ATmega328 Pinout


Assembly via Arduino

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/


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

export z Arduino IDE


rjhcoding



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/

link:https://www.arxterra.com/9-atmega328p-timers/


IO interface of AVR


AVR Interrupts


www
































== Archiv ==

MCU: 8051:

Modifikace programu s 8051

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:

Témata na cvičení do roku 2016

ELE:

MIT:

Bonus:



Otázky k opakování do roku 2016

TP do roku 2016
  • T1 - BOZP – řády odborných učeben
  • Elektronika
    • T2 – Přehled součástek R, C, více info: ELT1
    • T3 - Měřicí přístroje univerzální - měření el. veličin U, R Ohmův zákon
    • T4 – Polovodičové součástky - diody, tranzistory, Zenerova dioda
    • T5 – Stabilizátory - integrované stabilizátory napětí
    • T6 – Integrované obvody analogové – časovač 555
    • T7 – Integrované obvody analogové – operační zesilovač
    • T8 – Možnosti řízení výstupem PC dalších technických zařízení
  • Vývoj MIT aplikace
    • T9 – Popis robota NXT, prezentace robota, ukázka aplikací
    • T10 – Vývoj aplikace s robotem NXT, zadání úloh – bludiště
    • T11 – Realizace robotické sestavy
    • T12 – Vývoj aplikace s robotem NXT zadání úloh – sekačka
    • T13 – Aplikace s robotem pro plnění úkolů „rescue robot“
    • T14 – Popis robota BOB prezentace robota Boe-Bot ukázka aplikací
    • T15 – Vývoj aplikace s robotem BOB zadání úloh – bludiště
  • T16 - Vývoj aplikace s robotickou rukou L601 prezentace
  • T17 - Opakování

Otázky k opakování do roku 2016

HW

  1. Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
  2. Otestuje AKO s časovačem 555
  3. Popište funkci operačního zesilovače
  4. Proveďte návrh schéma zapojení s blikající LED (klasické řešení versus mikroprocesorové)
  5. Navrhněte připojení 7segmentovky k MCU

SW

  1. Napište program pro blikání jedné (a více) LED
  2. Připojte a otestujte čidlo dotyku (vzdálenosti, světla) s MCU
  3. Napište program pro test funkčnosti čidla světla
  4. Navrhněte a otestujte aplikaci ovládající motor (stejnosměrný, krokový)
  5. Popište postup vývoje mikroprocesorové aplikace

White Board do roku 2016

Inspirace

projects.adamh.cz