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 134 mezilehlých verzí od stejného uživatele.)
Řádek 1: Řádek 1:
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 25em"
[[Soubor:D10_AplTVYII_s.jpg|thumb|left|AplTVY]]
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''AplTVY3'''''
 
{| 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;" | '''''Tématický plán'''''
|-
|-
| colspan="2" style="text-align: center;" | {{#TwitterFBLike:|small}}
|- style="vertical-align: top;"
||
|- style="vertical-align: top;"
|
|
Navazuje na výuku:
T0 - BOZP – řády odborných učeben
||
T1 – Popis vývoje mikropočítačové aplikace
* [[AplTVY2|AplTVY 2.roč]]  
T2 – V/v brány, jejich vlastnosti a využití
* ex [http://old.sps-pi.cz/AplTVY2-ukoly B3 úkoly do výuky]
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í
 
[[Soubor:PovinnaPrace_NavrhMIT_aplikace.png|150px|link=PP_-_Návrh_MIT_aplikace]]
 
[[Soubor:PovinnaPrace_VyvojMIT_aplikace.png|50px|link=Vývoj MIT aplikace]]  
|}


|- style="vertical-align: top;"  
{| 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;" | '''''Otázky k opakování'''''
Výuka:
|-
||
|
v učebně [[D07]] 2 hodiny týdně a směřuje  k úspěchům v [[SOČ]] a přípravou na [[Maturitní práce]]
# - Nakreslete vývojový diagram pro log. funkce NOT, AND, OR, XOR
# - Nakreslete vývojový diagram pro log. funkci n=3 y = 1 pro i = {1,3,6,7 (4)}
# - Nakreslete vývojový diagram pro log. funkci n=4 y = 1 pro i = {1,2,5,6,12,13 (4,11,15)}
# - Naprogramujte MCU pro blikání LED (blikačka)
# - Naprogramujte MCU pro ovládání akustického měniče (bzučák)
# - Modifikujte program pro MCU ovládající křižovatku
# - Vyberte vhodného dodavatel elektronických součástek (R,C,D,IO)
# - Analyzujte zapojení s MCU na UNi desce [[VYV50]]
# - Vyzkoušejte program pro ovládání 7segmentovky
# - Vyzkoušejte program pro ovládání ss motoru a krokového motoru


|- style="vertical-align: top;"
|}
| '''Vývoj''' || mikroprocesorových aplikací
|- style="vertical-align: top;"
| '''[[Robotika]]:''' || Vývoj aplikace s robotem (či realizace nového) [[NXT]] (NXT-G, BricxCC, Robot C) [[BOB]] s robotickou rukou L601 [[ROR]] robotem [[Ju-Ju]]


|- style="vertical-align: top;"
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em"
|'''Povinná práce:'''
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Domácí úkoly 2021-22:'''''
||
|-
[[Soubor:PovinnaPrace_VyvojMIT_aplikace.png|[[Vývoj MIT aplikace]]]]
|


'''Odevzdání  do:''' příslušného adresáře  [ftp://obelix.sps-pi.cz/n/janousek/Temp zde]
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";


|- style="vertical-align: top;"
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.
     


| '''Úkoly:'''
|}
||
# Zopakovat látku z [[MIT]] [[ELT2]] [[INS2]]
# Při hodinách používat sešit z předmětu [[PRA]] (lze pokračovat)
# Vybrat si ročníkovou povinnou práci z témat [[Zajímavá zapojení s MCU|zde]]
# Po každém splněném úkolu z hodin provést zápis do deníku předmětu [[PRA|PRA,PRC]] a odevzdat do adresáře [ftp://obelix.sps-pi.cz/n/janousek/Temp/ zde], ke stažení [[Soubor:Icon-doc.gif]][[:Soubor:Trida_PoradoveCislo_Prijmeni_Jméno_Verze_NazevUkolu.doc|předloha]], a [[Soubor:Icon-doc.gif]] [[:Soubor:C4_07_Novak_Jan_v01_NXT.doc|vzor]]


|- style="vertical-align: top;"
{| class="toccolours" cellpadding="5" style="float: right; clear: right; margin: 0 0 1em 1em; font-size: 85%; width: 35em"
| '''Užitečné odkazy:'''
| colspan="2" style="text-align: center; font-size: larger; background-color: lightgreen;" | '''''Domácí úkoly 2020-21:'''''
|-
|
|
*[ftp://obelix.sps-pi.cz/janousek/mikroLAB N:/janousek/mikroLAB]


|- style="vertical-align: top;"
14.9.
|'''SW:'''
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:'''''
|-
|
|
*[http://www.screentoaster.com/record  screentoaster]  videoprezentace rychle a jednoduše        [http://technet.idnes.cz/navod-jako-videoprezentace-rychle-a-jednoduse-nauci-vas-to-screentoaster-1ln-/sw_internet.asp?c=A090817_201240_sw_internet_dvr  návod]
*[http://www.wpanorama.com/wpanorama.php?r=1253989723  WPanorama]  tvorba panoramatických snímků  [http://technet.idnes.cz/vytvorte-fotogalerie-s-moznosti-vystavit-je-na-web-ci-denicek-pro-diabetika-173-/software.asp?c=A090819_183038_software_dvr  popis]
*[http://sourceforge.net/projects/pdfcreator/ PDFCreator]    [http://lorenc.info/navod-na-instalaci-PDFCreatoru.htm návod na  istalaci]      [http://lorenc.info/spojeni-pdf-dokumentu-v-pdfcreatoru.htm spojení více  doc a pdf]


1. Postupně v aplikaci [https://www.tinkercad.com/learn/project-gallery;collectionId=OMOZACHJ9IR8LRE 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.
[[Soubor:LearnArduino.png|link=https://1url.cz/kzWKG]]
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.


|}
|}


[[Soubor:D10_AplTVYII_s.jpg|thumb|left|AplTVY]]
 
 
 




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


== Cvičení ==
{{#widget:YouTube|id=8yAOTUY9t10|height=270|width=360|Popis|right}}
---------------------------------------------------------------------------------------------------------------
<Gallery>
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V
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]
=== [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]] ===


== Témata na cvičení ==
<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>


Basic:
=== 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>
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]]  pro vývoj aplikací v asm/C
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>
 
=== Modifikace programu s 8051 ===
<Gallery>
Soubor:Traffic_Light_auc.png|Křižovatka AUC
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]]  pro vývoj aplikací v asm/C
Soubor:VYV50_LED_Traffic_Light2.jpg
</Gallery>
 
<source lang="asm">
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
</source>
 
=== Objednávka součástek ===
[[soubor:prehled_soucastek.png|400px]]
* Prodejci součástek:
** [http://www.gme.cz/ GME]  Doporučujeme tuto společnost s prodejnami v Praze, Brně, Ostravě, Plzni a zásilkovým prodejem.
** [http://www.tme.cz/TME TME] zásilkový prodej.
** [http://www.soselectronic.cz/ SOS Electronic] zásilkový prodej.
** [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í]
 
== Témata na cvičení do roku 2016 ==
 
ELE:
<Gallery>
<Gallery>
Soubor:logo-elektronika.jpg|[[ELT1]]
Soubor:logo-elektronika.jpg|[[ELT1]]
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V
Soubor:Stabilizovany_zdroj_+5V.jpg|Stabilizovaný zdroj +5V
Soubor:OPVK_ZS_Elektronika_Blikac_05.jpg|[[Blikačka|555]]
Soubor:OPVK_ZS_Elektronika_Blikac_05.jpg|[[Blikačka|555]]
</Gallery>
MIT:
<Gallery>
Soubor:Vyvoj-mit-001.jpg|[[8051]] s [[RD2 kit]]
Soubor:nxt-2.jpg|[[NXT]]
Soubor:nxt-2.jpg|[[NXT]]
Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|[[PICAXE|Robot Umík s PICAXE]]
Soubor:MAT-POZADAVKY-PRA-ROBOT-UMIK.jpg|[[PICAXE|Robot Umík s PICAXE]]
Soubor:Arduino_01.jpg|[[Arduino]]
</Gallery>
</Gallery>


Řádek 75: Řádek 447:
Soubor:Registrace_OP01.jpg|[[Registrace na odborné praxe]]
Soubor:Registrace_OP01.jpg|[[Registrace na odborné praxe]]
Soubor:Logo.JPG|[[LOGO]]
Soubor:Logo.JPG|[[LOGO]]
Soubor:Vyvoj-mit-001.jpg|[[8051]] s [[RD2 kit]]
Soubor:AVR-PRG-01.jpg|[[AVR]] s [[Vývojová deska ATMEL včetně AVR ATmega16 v2|Vývojovou deskou]]
Soubor:Arduino_01.jpg|[[Arduino]]
Soubor:PIC_counter.jpg|[[PIC]]85 2 digit Up/Down Counter
Soubor:boebot.jpg|[[BOB]]
Soubor:boebot.jpg|[[BOB]]
Soubor:MOB03_05.png|[[Mobilní robot]]
Soubor:MOB03_05.png|[[Mobilní robot]]
Řádek 88: Řádek 456:
</Gallery>
</Gallery>


== Plán činností ==


---------------------------------------------------------------------------------------------------------------
=== Otázky k opakování do roku 2016 ===
{| 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;" | '''''TP do roku 2016'''''
|-
|
* T1 - BOZP – řády odborných učeben
* T1 - BOZP – řády odborných učeben
** 1. pomoc [http://goo.gl/wABr1c Instruktážní video resuscitace ] z odkazem ze stránek [http://www.resuscitace.cz/%20%20 http://www.resuscitace.cz/]   
** 1. pomoc [http://goo.gl/wABr1c Instruktážní video resuscitace ] z odkazem ze stránek [http://www.resuscitace.cz/%20%20 http://www.resuscitace.cz/]   
Řádek 114: Řádek 489:
* T16 - Vývoj aplikace s robotickou rukou L601 prezentace
* T16 - Vývoj aplikace s robotickou rukou L601 prezentace
* T17 - Opakování
* T17 - Opakování
|}


 
== Otázky k opakování do roku 2016==
<gallery>
Soubor:D10_HW_picaxe_01.jpg|[[PICAXE]] - vývojová deska
Soubor:PICAXE-vyv-diagram_02.jpg|[[PICAXE]] - vývojový diagram
Soubor:ProfiCAD_PICAXE.png|[[PICAXE]] - blokové schéma
Soubor:Umik-blok-schema.png|[[Umík]] - blokové schéma
Soubor:Umik-popis.png|[[Umík]] - popis
 
 
</gallery>
 
== 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>
 
== White Board ==
 
<gallery>
Soubor:AplTVY3_Board_01.jpg
Soubor:AplTVY3_Board_02.jpg
Soubor:AplTVY3_Board_03.jpg
Soubor:AplTVY3_Board_04.jpg
Soubor:AplTVY3_Board_05.jpg
Soubor:AplTVY3_Board_06.jpg
Soubor:AplTVY3_Board_07.jpg
Soubor:AplTVY3_Board_09.jpg
 
</gallery>
 
== Otázky k opakování ==
 
===HW===
===HW===
# Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
# Navrhněte napájecí zdroj pro napájení mikroprocesorové aplikace
Řádek 163: Řádek 506:
# Popište postup vývoje mikroprocesorové aplikace
# Popište postup vývoje mikroprocesorové aplikace


== Inspirace ==
== White Board do roku 2016 ==


[[Soubor:projects-adamh-cz.png|link=http://projects.adamh.cz/|Projects.adamh.cz > start]]
<gallery>
Soubor:AplTVY3_Board_01.jpg
Soubor:AplTVY3_Board_02.jpg
Soubor:AplTVY3_Board_03.jpg
Soubor:AplTVY3_Board_04.jpg
Soubor:AplTVY3_Board_05.jpg
Soubor:AplTVY3_Board_06.jpg
Soubor:AplTVY3_Board_07.jpg
Soubor:AplTVY3_Board_09.jpg
</gallery>


== Inspirace ==


 
[http://projects.adamh.cz/ projects.adamh.cz]
 
== Archiv ==
 
[[APLTVY3 - archiv]]

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