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í
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  
; **************************************************************  
; **************************************************************  
  ;include REG51.INC
 
  org 0  
        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   
   ;orl p1,a    ; zhasnuti diody  
  anl a,#00000111b    ; maskovani
   ;acall z_05s  
  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]]
 
zpracoval: ing. Šindelář Petr

Verze z 9. 9. 2017, 12:24

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:

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

8051 s LED a DIP

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

Zdroj informací

MIT3r

8051

http://wiki.sps-pi.cz//8051

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