PP - Návrh MIT aplikace: Porovnání verzí

Z MediaWiki SPŠ a VOŠ Písek
Skočit na navigaci Skočit na vyhledávání
Založena nová stránka: Zadání Dokumentace bude obsahovat: # Zadání # Blokové schéma # Výpis programu s komentáři # Seznam HW, SW # Zdroj informací
 
Bez shrnutí editace
Řádek 8: Řádek 8:
# Seznam HW, SW
# Seznam HW, SW
# Zdroj informací
# Zdroj informací
Vzor:
K portu P1 mikropočítače je připojen modul 8xLED, k portu P3 modul 8xDIP. Napište a odlaďte program, 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
Vybraná dioda bude svítit 0,8 s a zhasnuta bude 0,5 s. Uvažujte kmitočet oscilátoru 12 MHz.
[[Soubor:MCU-blok-schema-01.png|8051 s LED a DIP]]
<source lang="asm">
; **************************************************************
; blikani diody vybrane dolnimi tremi bity na DIP prepinaci
; **************************************************************
  ;include REG51.INC
  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
</source>

Verze z 7. 9. 2017, 12:28

Zadání

Dokumentace bude obsahovat:

  1. Zadání
  2. Blokové schéma
  3. Výpis programu s komentáři
  4. Seznam HW, SW
  5. Zdroj informací


Vzor:

K portu P1 mikropočítače je připojen modul 8xLED, k portu P3 modul 8xDIP. Napište a odlaďte program, 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 

Vybraná dioda bude svítit 0,8 s a zhasnuta bude 0,5 s. Uvažujte kmitočet oscilátoru 12 MHz.

8051 s LED a DIP

; ************************************************************** 
; blikani diody vybrane dolnimi tremi bity na DIP prepinaci 
; ************************************************************** 
  ;include REG51.INC 
  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