Vous êtes sur la page 1sur 7

Atividade A3

Nome: Mateus Garcs de Souza


Local: etb Escola Tcnica de Braslia
Data:02/07/2015

Sequenciador
De leds

Descrio
Times/counters:
Time R0 (16bits)

presente no componentes 8051.

Timer R1 (16bits)
Time R2 (16 bits)
Registradores utilizados (pelo timers/counteres 0e1)
TCON
Configurao controle
TMOD

TH1
TL1

Unidades contadores JKS


TH0
TL0
SFRS
Modo de funcionamento dos timers/conters 0e1.
C/t: escolhe entre timer e couter.
0: timer:
(Frequncia de clock interna ao chip).
1: counter:
(Frequncia de clock externa ao chip).

Gate: controle dos timers


0: controle via software.
1:ser o controle de software e hardware.

Cdigo fonte

ORG 00

; inicio do programa, origem.

MOV P3,#00
baixo

; deixa todas as portas em nvel

INICIO: SETB P3.0

;ligar P3.0

MOV R0,#01
; 01 indica a quantidade de
tempo a ser em pregada no lcall (50ms)
LCALL DELAY ; aguarda 50ms
SETB P3.1
MOV R0,#02
;02 indica a quantidade de
tempo a ser em pregada no lcall (100ms)
LCALL DELAY ; aguarda 100ms
SETB P3.2
MOV R0,#03
;03 indica a quantidade de
tempo a ser em pregada no lcall (150ms)
LCALL DELAY ; aguarda 150ms
SETB P3.3
MOV R0,#04
;04 indica a quantidade de
tempo a ser em pregada no lcall (200ms)
LCALL DELAY ; aguarda 200ms
SETB P3.4
MOV R0,#05
;05 indica a quantidade de
tempo a ser em pregada no lcall (250ms)
LCALL DELAY ; aguarda 250ms

SETB P3.5
MOV R0,#06
;06 indica a quantidade de
tempo a ser em pregada no lcall (300ms)
LCALL DELAY ; aguarda 300ms
SETB P3.6
MOV R0,#07
;07 indica a quantidade de
tempo a ser em pregada no lcall (350ms)
LCALL DELAY ; aguarda 350ms
SETB P3.7
MOV R0,#08
;08 indica a quantidade de
tempo a ser em pregada no lcall (400ms)
LCALL DELAY ; aguarda 400ms
CLR P3.7

;desliga P3.0

MOV R0,#07
;07 indica a quantidade de
tempo a ser em pregada no lcall (350ms)
LCALL DELAY
CLR P3.6
MOV R0,#06
;06 indica a quantidade de
tempo a ser em pregada no lcall (300ms)
LCALL DELAY
CLR P3.5

MOV R0,#05
;05 indica a quantidade de
tempo a ser em pregada no lcall (250ms)
LCALL DELAY
CLR P3.4
MOV R0,#04
;04 indica a quantidade de
tempo a ser em pregada no lcall (200ms)
LCALL DELAY
CLR P3.3
MOV R0,#03
;03 indica a quantidade de
tempo a ser em pregada no lcall (150ms)
LCALL DELAY
CLR P3.2
MOV R0,#02
;02 indica a quantidade de
tempo a ser em pregada no lcall (100ms)
LCALL DELAY
CLR P3.1
MOV R0,#01
; 01 indica a quantidade de
tempo a ser em pregada no lcall (50ms)
LCALL DELAY ;aguarda 50ms
CLR P3.0
MOV R0,#01
; 01 indica a quantidade de
tempo a ser em pregada no lcall (50ms)

LCALL DELAY aguarda 50ms

LJMP INICIO ;Lable que far o ciclo ser repetido


infinitas vezes

DELAY:

; Lable de atraso

MOV TMOD,#11H
endereo 11 em hexadecimal

; move para TMOD o

VOLTA: MOV TH0,#HIGH (65535-50000) ; TH0


conta 50000 vezes
MOV TL0,#LOW (65535-50000)
conta 50000 vezes
SETB TR0
JNB TF0,$
zerado
CLR TF0

; TL0

;seta TR0
;desvia se o flag estiver
; limpa flag de estouro

DJNZ R0,VOLTA ;decrementa e compara se


igual a zero
CLR TR0
RET

;limpa chave on/off


;retorna da sub-rotina

END

;finaliza o programa para compilao

Vous aimerez peut-être aussi