PP - Návrh MIT aplikace: Porovnání verzí
Skočit na navigaci
Skočit na vyhledávání
Bez shrnutí editace |
|||
Řádek 27: | Řádek 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 | ||
Řádek 47: | Řádek 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 | ||
Řádek 93: | Řádek 125: | ||
námět: ing. Šindelář Petr zpracoval: [[JA]] | |||
Verze z 9. 9. 2017, 12:24
Dokumentace bude obsahovat:
- Zadání
- Blokové schéma
- Výpis programu s komentáři
- Seznam HW, SW
- Zdroj informací
Vzor:
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