TrabalhosGratuitos.com - Trabalhos, Monografias, Artigos, Exames, Resumos de livros, Dissertações
Pesquisar

Exercício Semáforo - Assembly (Felipe P.)

Por:   •  26/11/2015  •  Trabalho acadêmico  •  2.281 Palavras (10 Páginas)  •  238 Visualizações

Página 1 de 10

;=====================================================================

;================= ETEC Aristóteles Ferreira. ========================

;============== Prof.: Silvio Clarindo da Silva ======================

;====== 5ºPrograma -SEQUENCIAL Por: Felipe P.M data: 09/10/15. ===3A3=

;=====================================================================

BT0 EQU P3.2 ; NOMEIA P3.2 COMO BT0

ORG 0000H ; INICIO DE PROGRAMA

S1: MOV P0, #0000H ; MOVE O VALOR 0000H PARA P0

SETB P0.5 ; SETA P0.5

SETB P0.2 ; SETA P0.2

SETB P0.7 ; SETA P0.7

JB BT0, TEMPO ; VERIFICA SE BT0 ESTÁ ATIVADO, SE SIM, CONTINUA PROGRAMA, SE NÃO, SALTA PARA TEMPO

LJMP PEDESTRE ; SUB-ROTINA DE TEMPO PEDESTRE

TEMPO: MOV R2, #0FFH ; MOVE O VALOR #00FH PARA O R2

PULO3: MOV R1, #0FFH ; MOVE O VALOR #00FH PARA O R1

PULO2: MOV R0, #0AH ; MOVE O VALOR #0AH PARA O R0

PULO: DJNZ R0, PULO ; DECREMENTA E SALTA PARA PULO

DJNZ R1, PULO2 ; DECREMENTA E SALTA PARA PULO2

DJNZ R2, PULO3 ; DECREMENTA E SALTA PARA PULO3

JB BT0, RE1 ; VERIFICA SE BT0 ESTÁ ACIONADO, SE SIM, CONTINUA PROGRAMA, SE NÃO, VAI PARA RE1

LCALL PEDESTRE ; SUB-ROTINA DE TEMPO

LJMP S1 ; SALTA PARA S1

RE1: CLR P0.2 ; ZERA P0.2

INICIO1: ; NOMEIA PONTO DE PARTIDA

SETB P0.5 ; SETA O BIT P0.5

SETB P0.0 ; SETA O BIT P0.0

TEMPO1: MOV R2, #0FFH ; MOVE PARA R2 O VALOR 0FFH

PULO6: MOV R1, #0FFH ; MOVE PARA R1 O VALOR 0FFH

PULO5: MOV R0, #01EH ; MOVE PARA R0, 01EH

PULO4: DJNZ R0, PULO4 ; DECREMENTA E SALTA PARA PULO4

DJNZ R1, PULO5 ; DECREMENTA E SALTA PARA PULO5

DJNZ R2, PULO6 ; DECREMENTA E SALTA PARA PULO6

JB BT0, RE2 ; VERIFICA SE BT0 ESTÁ ACIONADO, SE SIM, CONTINUA PROGRAMA, SE NÃO, VAI PARA RE2

LCALL PEDESTRE ; SUB-ROTINA DE TEMPO

LJMP S1 ; SALTA PARA S1

RE2: CLR P0.0 ; ZERA P0.0

SETB P0.1 ; SETA O BIT P0.1

TEMPO2: MOV R2, #0FFH ; MOVE O VALOR #00FH PARA O R2

PULO9: MOV R1, #0FFH ; MOVE PARA R1 O VALOR 0FFH

PULO8: MOV R0, #0AH ; MOVE PARA R0, 0AH

PULO7: DJNZ R0, PULO7 ; DECREMENTA E SALTA PARA PULO7

DJNZ R1, PULO8 ; DECREMENTA E SALTA PARA PULO8

DJNZ R2, PULO9 ; DECREMENTA E SALTA PARA PULO9

JB BT0, RE3 ; VERIFICA SE BT0 ESTÁ ACIONADO, SE SIM, CONTINUA PROGRAMA, SE NÃO, VAI PARA RE3

LCALL PEDESTRE ; SUB-ROTINA DE TEMPO

LJMP S1 ; SALTA PARA S1

RE3:

CLR P0.1 ; ZERA P0.1

CLR P0.5 ; ZERA P0.5

SETB P0.2 ; SETA O BIT P0.2

SETB P0.3 ; SETA O BIT P0.3

TEMPO3: MOV R2, #0FFH ; MOVE PARA R2 O VALOR 0FFH

PULO12: MOV R1, #0FFH ; MOVE PARA R1 O VALOR 0FFH

PULO11: MOV R0, #01EH ; MOVE

...

Baixar como (para membros premium)  txt (5.6 Kb)   pdf (42.6 Kb)   docx (12.6 Kb)  
Continuar por mais 9 páginas »
Disponível apenas no TrabalhosGratuitos.com