AplTVY3: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
 
(Není zobrazeno 49 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
 
=== [[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>
 
=== PICAXE ===
 
<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
</Gallery>
 
<Gallery>
Soubor:PICAXE-vyv-diagram_01.jpg|Blik
Soubor:PICAXE-vyv-diagram_02.jpg|DICE
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]]
https://www.tinkercad.com


<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 173: Řádek 149:
</gallery>
</gallery>


=== Fritzing ===
=== [[Atmel Studio]] ===


https://fritzing.org/home/
[[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>
<gallery>
Soubor:Fritzing-122.png
Soubor:wokwi_AVR_01.jpg|[https://wokwi.com/projects/392695146694098945 7segment]
Soubor:Fritzing-123.png
Soubor:Fritzing-124.png
</gallery>
</gallery>


=== Modifikace programu s 8051 ===
=== Ovládání 7segmentovky s [[ATmega328]] na desce [[Arduino]] ===
 
<Gallery>
<Gallery>
Soubor:Traffic_Light_auc.png|Křižovatka AUC
Soubor:ARD21-sch.png|[[ARD21]][[:Soubor:ARD21-pcb.png|PCB]]
Soubor:MCU-8051-IDE-screen.png|IDE: [[MCU 8051 IDE]] pro vývoj aplikací v asm/C
Soubor:Multifunctional Expansion Board.png|[[:Soubor:MFEB-schematic.png|schéma]] + [[:Soubor:MFEB-example.pdf|příklady]]
Soubor:VYV50_LED_Traffic_Light2.jpg
</Gallery>
</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í]


=== Popis zapojení a funkce uni desky [[VYV50]] ===
=== Popis zapojení a funkce uni desky [[VYV50]] ===
<Gallery>
<Gallery>
soubor:VYV-deska-AVR-ATmega16-07.jpg|UNI deska [[VYV50]]
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]]
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>
</Gallery>


[[Soubor:Arduino-ATmega328Pinout.png|400px|ATmega328 Pinout]]
[[Soubor:Arduino-ATmega328Pinout.png|400px|ATmega328 Pinout]]
[[Soubor:ATmega328Pinout.png|400px|ATmega328 Pinout]]
[[Soubor:ATmega328Pinout.png|400px|ATmega328 Pinout]]
---------------------------------------------------------------------------------------------------------------


==== Assembly via Arduino ====
==== Assembly via Arduino ====


[[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]]
[[Soubor:Anas_Kuzechie_Projects.png|300px|link=https://akuzechie.blogspot.com/|Anas Kuzechie Projects]]
---------------------------------------------------------------------------------------------------------------


====How to Flash or Program Arduino from Atmel Studio?====
====How to Flash or Program Arduino from Atmel Studio?====
Řádek 259: Řádek 194:
[[Soubor:SetAtmmelStudio.png|400px|nastavení Atmmel Studia - Send to Arduino]]
[[Soubor:SetAtmmelStudio.png|400px|nastavení Atmmel Studia - Send to Arduino]]


text k vyplnění:
  Send to Arduino UNO
  Send to Arduino UNO
  C:\Program Files (x86)\Arduino\hardware\tools\avr\bin\avrdude.exe  
  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
  -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]]
[[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}}
 


=== [http://rjhcoding.com/ rjhcoding] ===
=== [http://rjhcoding.com/ rjhcoding] ===
Řádek 282: Řádek 208:


* [http://rjhcoding.com/avr-asm-light-an-led.php Example Program #1: LED]
* [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]
* [http://rjhcoding.com/avr-asm-pm.php Loading Data from Program Memory]


---------------------------------------------------------------------------------------------------------------


[[Soubor:AVRdelay.png|400px|link=http://darcy.rsgc.on.ca/ACES/TEI4M/AVRdelay.html]]
[[Soubor:AVRdelay.png|500px|link=http://darcy.rsgc.on.ca/ACES/TEI4M/AVRdelay.html]]


[http://darcy.rsgc.on.ca/ACES/TEI4M/AVRdelay.html AVR Delay Loop Calculator]
---------------------------------------------------------------------------------------------------------------


=== Blink in C ===
=== Blink in C ===
Řádek 320: Řádek 254:
</source>
</source>


 
---------------------------------------------------------------------------------------------------------------
 


=== Blink with Timer ===
=== Blink with Timer ===
https://wokwi.com/projects/354046396997507073
https://wokwi.com/projects/354046396997507073   https://wokwi.com/projects/354556802672660481


[[Soubor:atmega328p-timers1.gif|200px|right]]
[[Soubor:atmega328p-timers1.gif|200px|right]]
Řádek 334: Řádek 267:
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327
;https://www.hackster.io/yeshvanth_muniraj/arduino-blink-example-in-assembly-using-timer-counter1-e2a327
;https://wokwi.com/projects/354046396997507073
;https://wokwi.com/projects/354046396997507073
;funkční
;funkční ;sbi PORTB,5 zde nefunguje
#define __SFR_OFFSET 0x20
#define __SFR_OFFSET 0x20
#include "avr/io.h"
#include "avr/io.h"
Řádek 344: Řádek 277:
     COM R17          ; Complement R17 register
     COM R17          ; Complement R17 register
     STS PORTD, R17    ; Toggle the LED output
     STS PORTD, R17    ; Toggle the LED output
    ;sbi PORTB,5      zde nefunguje
     rcall delay
     rcall delay
     rjmp loop
     rjmp loop
Řádek 367: Řádek 299:


setup:   
setup:   
       LDI R16, 0x01     ; Setting 1st bit of PORTB as output
       LDI R16, 0xFF     ; Setting bits of PORTD as output
       STS DDRD, R16
       STS DDRD, R16
       LDI R17, 0x55
       LDI R17, 0x55
       STS PORTD, R17    ; Writing 0 to PORTB
       STS PORTD, R17    ; Writing 0 to PORTD
       LDI R16, 0x00
       ret
      STS TCCR1A, R16  ; Setting all bits of TCCR1A as 0
        ret
</source>
</source>
|
|
<source lang="c">
<source lang="c">
//https://wokwi.com/projects/354556802672660481
//https://wokwi.com/projects/354556802672660481
//nedokončená transformace


#include <avr/io.h>  //iom328p.h  
#include <avr/io.h>  //iom328p.h  
Řádek 384: Řádek 313:
      
      
int main(){     
int main(){     
         DDRB = 0xFF; // #define DDRD _SFR_IO8(0x0A)  
         DDRD = 0xFF; // #define DDRD _SFR_IO8(0x0A)  
         PORTD= 0x00;
         PORTD= 0x55;


while(1){   
while(1){   
           PORTD ^= (1 << PD3);
           PORTB ^= (1 << PD5);
          PORTD = ~PORTD;
           delay();
           delay();
         }   
         }   
     return 0;
     return 0;
          }
}


int delay(){
int delay(){
_delay_ms(1000); //toto poté odstavit
   TCNT1H =  0xC2;  
   TCNT1H =  0xC2;  
   TCNT1L =  0xF7;  
   TCNT1L =  0xF7;  
   TCCR1B =  0x05;  
   TCCR1B =  0x05; //prescaler 1024
  /* následující je řeba nahradit
   while (!(TIFR1 & (1<< TOV1)));
   L:LDS R0, TIFR1
   TCCR1B =  0x00;  
   SBRS R0, 0       
  TIFR1 =  0x01;   
  RJMP L           
  */
    TCCR1B =  0x00;  
    TIFR1 =  0x01;   
}
}
    
    
Řádek 418: Řádek 343:
[[Soubor:atmega328p-timers3.png|600px|link:https://www.arxterra.com/9-atmega328p-timers/]]
[[Soubor:atmega328p-timers3.png|600px|link:https://www.arxterra.com/9-atmega328p-timers/]]


Delay 250 ms (neověřeno):
---------------------------------------------------------------------------------------------------------------
[[Soubor:atmega328p-timers.png|150px|right]]
 
{|
===[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">
<source lang="asm">
Delay:
loop:  
  push r15
mov P0,#01010011            ;modifikovat dle LED
  in  r15, SREG
mov P2,#11001100            ;modifikovat dle LED
  push r16
acall delay
wait:
.
  sbis TIFR1, TOV1
.
  rjmp wait
.
  sbi TIFR1, TOV1 // clear flag bit by writing a one (1)
sjmp loop
  ldi r16,0x0B    // load value high byte 0x0B
 
  sts TCNT1H,r16
delay: mov R0,#255d            ;podprogram zpoždění
  ldi r16,0xDC    // load value low byte 0xDC
skok2: mov R1,#5d
  sts TCNT1L,r16
skok1: mov R2,#5d
  pop r16
skok: djnz R2,skok
  out SREG, r15
djnz R1,skok1
  pop r15
djnz R0,skok2
  ret
ret                     ;návrat z podprogramu
</source>
 
|
end
<source lang="c">
void T1Delay()
{
  while (!(TIFR & (1<  TIFR = 1<
  TCNT1H = 0x0B;
  TCNT1L = 0xDC;
}
</source>
</source>
|-
|}


<br><br><br><br><br><br><br><br><br><br><br><br><br><br><br><br>
=== Objednávka součástek ===
'''== Archiv =='''
[[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 ==
== Témata na cvičení do roku 2016 ==
Řádek 487: Řá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