ejercicos en atmega 164p uso de timer 0 como contador y interrupciones
-
Upload
wilmer-villegas-codena -
Category
Documents
-
view
138 -
download
1
Transcript of ejercicos en atmega 164p uso de timer 0 como contador y interrupciones
ESCUELA POLITECNICA NACIONALSISTEMAS MICROPROCESADOS
NOMBRES: Wilmer VillegasFECHA: 24 – 04 – 2012
Realizar un contador que se muestre en dos registros, para lo cual vamos a usar int0 para iniciar e int1 para encerar, uti l izar el contador timer0 para realizar el contador interno.
PROGRAMA EN AVR:
. include"m164pdef.inc"
.def aux=r17
.def conta=r18
.def t iempol=r19
.def t iempoh=r20
.def valor=r21
.def aux1=r22;coloco mis vectores de interrupciones.org 0x00
rjmp inicio
.org 0x02rjmp comenzar
.org 0x04rjmp encerar
.org 0x20rjmp incrementar
inicio:
ser auxout ddra,auxout ddrc,aux
clr auxout ddrd,auxldi aux,0b00001100
out portd,aux
in aux,mcucrandi aux,0b11101111out mcucr,aux
ldi r16,high(ramend)out sph,r16ldi r16,low(ramend)out spl ,r16
ldi aux,0b00000011out eimsk,aux
ldi aux,0b00001010sts eicra,aux
ldi conta,50;cargo el valor en el cual quiero que haya la coincidencia
ldi aux1,249out ocr0a,aux1
;habil i tacion del modoldi aux1,0b00000010out tccr0a,aux1
;habil i tacion del prescalerldi aux1,0b00000010out tccr0b,aux1
ldi aux1,0b00000010sts t imsk0,aux1
sei
lazo:
out porta, t iempolout portc, t iempohrjmp lazo
comenzar:
push auxin aux,sregpush aux
rjmp salir
incrementar:
push auxin aux,sregpush auxdec conta
brne salir; incremento el contador y realizo mi operación para mostrar en dos registros
inc valoradd t iempol,valorclr valoradc t iempoh,valorldi conta,50rjmp salir
encerar:
push auxin aux,sregpush auxclr t iempolclr t iempoh
salir:
pop auxout sreg,auxpop auxreti
SIMULACION EN PROTEUS:
DIAGRAMA DE FUJO: