PP - Návrh MIT aplikace
(Rozdíly mezi verzemi)
(→Zadání:) |
|||
Řádka 27: | Řádka 27: | ||
===Výpis programu s komentáři=== | ===Výpis programu s komentáři=== | ||
+ | |||
+ | 1) | ||
+ | |||
<source lang="asm"> | <source lang="asm"> | ||
; ************************************************************** | ; ************************************************************** | ||
; blikani diody vybrane dolnimi tremi bity na DIP prepinaci | ; blikani diody vybrane dolnimi tremi bity na DIP prepinaci | ||
; ************************************************************** | ; ************************************************************** | ||
− | + | ||
− | + | org 0 | |
;--------------------------------------------------------------- | ;--------------------------------------------------------------- | ||
start: mov a,p3 ; nacteni stavu prepinace | start: mov a,p3 ; nacteni stavu prepinace | ||
Řádka 47: | Řádka 50: | ||
rozsv: mov a,r7 | rozsv: mov a,r7 | ||
xrl p1,a ; rozsviceni odpovidajici diody | xrl p1,a ; rozsviceni odpovidajici diody | ||
− | ;acall z_08s | + | mov a,p3 ; nove nacteni stavu prepinace |
− | + | anl a,#00000111b ; maskovani | |
− | + | cjne a,b,prevod ; zadana nova kombinace? - ano, novy prevod | |
+ | sjmp rozsv ; ne, rozsviceni teze diody | ||
+ | ;-------------------------------------------------------------- | ||
+ | end | ||
+ | </source> | ||
+ | |||
+ | 2) | ||
+ | <source lang="asm"> | ||
+ | ; ************************************************************** | ||
+ | ; blikani diody vybrane dolnimi tremi bity na DIP prepinaci | ||
+ | ; ************************************************************** | ||
+ | |||
+ | org 0 | ||
+ | ;--------------------------------------------------------------- | ||
+ | start: mov a,p3 ; nacteni stavu prepinace | ||
+ | anl a,#00000111b ; maskovani nepouzivanych bitu | ||
+ | prevod: mov b,a ; uschovani prectene informace | ||
+ | mov r0,a ; poradi blikajici diody do r0 | ||
+ | inc r0 ; v r0 pocet rotaci | ||
+ | mov a,#10000000b ; pocatecni byte do akumulatoru | ||
+ | ;--------------------------------------------------------------- | ||
+ | rotuj: rl a ; prevod bin. kodu na kod 1 z 8 | ||
+ | djnz r0,rotuj | ||
+ | mov r7,a ; uschovani kodu 1 z 8 do r7 | ||
+ | ;--------------------------------------------------------------- | ||
+ | rozsv: mov a,r7 | ||
+ | xrl p1,a ; rozsviceni odpovidajici diody | ||
+ | acall z_08s | ||
+ | orl p1,a ; zhasnuti diody | ||
+ | acall z_05s | ||
mov a,p3 ; nove nacteni stavu prepinace | mov a,p3 ; nove nacteni stavu prepinace | ||
anl a,#00000111b ; maskovani | anl a,#00000111b ; maskovani | ||
Řádka 93: | Řádka 125: | ||
− | + | námět: ing. Šindelář Petr zpracoval: [[JA]] | |
− | + | ||
− | + |
Verze z 9. 9. 2017, 13:24
Dokumentace bude obsahovat:
- Zadání
- Blokové schéma
- Výpis programu s komentáři
- Seznam HW, SW
- Zdroj informací
Vzor:
Obsah |
Zadání:
K portu P1 mikropočítače je připojen modul 8xLED, k portu P3 modul 8xDIP. Napište a odlaďte program,
1) který zajistí blikání té diody, která bude vybrána dolními třemi bity přepínače (na dalších bitech nezáleží):
000 …………… bliká dioda na P1.0 001 …………… bliká dioda na P1.1 : 111 …………… bliká dioda na P1.7
2) vybraná dioda bude svítit 0,8 s a zhasnuta bude 0,5 s.
Blokové schéma
Výpis programu s komentáři
1)
; ************************************************************** ; blikani diody vybrane dolnimi tremi bity na DIP prepinaci ; ************************************************************** org 0 ;--------------------------------------------------------------- start: mov a,p3 ; nacteni stavu prepinace anl a,#00000111b ; maskovani nepouzivanych bitu prevod: mov b,a ; uschovani prectene informace mov r0,a ; poradi blikajici diody do r0 inc r0 ; v r0 pocet rotaci mov a,#10000000b ; pocatecni byte do akumulatoru ;--------------------------------------------------------------- rotuj: rl a ; prevod bin. kodu na kod 1 z 8 djnz r0,rotuj mov r7,a ; uschovani kodu 1 z 8 do r7 ;--------------------------------------------------------------- rozsv: mov a,r7 xrl p1,a ; rozsviceni odpovidajici diody mov a,p3 ; nove nacteni stavu prepinace anl a,#00000111b ; maskovani cjne a,b,prevod ; zadana nova kombinace? - ano, novy prevod sjmp rozsv ; ne, rozsviceni teze diody ;-------------------------------------------------------------- end
2)
; ************************************************************** ; blikani diody vybrane dolnimi tremi bity na DIP prepinaci ; ************************************************************** org 0 ;--------------------------------------------------------------- start: mov a,p3 ; nacteni stavu prepinace anl a,#00000111b ; maskovani nepouzivanych bitu prevod: mov b,a ; uschovani prectene informace mov r0,a ; poradi blikajici diody do r0 inc r0 ; v r0 pocet rotaci mov a,#10000000b ; pocatecni byte do akumulatoru ;--------------------------------------------------------------- rotuj: rl a ; prevod bin. kodu na kod 1 z 8 djnz r0,rotuj mov r7,a ; uschovani kodu 1 z 8 do r7 ;--------------------------------------------------------------- rozsv: mov a,r7 xrl p1,a ; rozsviceni odpovidajici diody acall z_08s orl p1,a ; zhasnuti diody acall z_05s mov a,p3 ; nove nacteni stavu prepinace anl a,#00000111b ; maskovani cjne a,b,prevod ; zadana nova kombinace? - ano, novy prevod sjmp rozsv ; ne, rozsviceni teze diody ;-------------------------------------------------------------- z_08s: mov r3,#8 ; zpozdovaci podprogram sjmp cek1 z_05s: mov r3,#5 cek1: mov r2,#200 cek2: mov r1,#250 djnz r1,$ djnz r2,cek2 djnz r3,cek1 ret ;-------------------------------------------------------------- end
Seznam HW, SW
IDE: MCU 8051 IDE pro vývoj aplikací v asm/C
Zdroj informací
http://wiki.sps-pi.cz/ProfiCAD
http://wiki.sps-pi.cz/Z%C3%A1klady_programov%C3%A1n%C3%AD_v_8051
Simulace
námět: ing. Šindelář Petr zpracoval: JA