ejercicos en atmega 164p uso de interrupciones y teclado matricial

January 23, 2018 | Author: Wilmer Villegas Codena | Category: Areas Of Computer Science, Computer Engineering, Computing, Technology, Computing And Information Technology
Share Embed Donate


Short Description

Download ejercicos en atmega 164p uso de interrupciones y teclado matricial...

Description

ESCUELA POLITECNICA NACIO NAL SISTEMAS MICROPROCESADOS NOMBRE: Wil mer Villegas FECHA: 10 – 04 – 2012 1. Realice un programa para contar objet os mediante interrupciones .

12 botellas 1 caja

1. Cuento el número de botellas

2. Muestro en displays el número de caj as, usar Barrido de displays

.include" m164pdef.inc" .def .def .def .def

con un pulsante

tempo=r17 aux=r18 conta=r19 conta1=r20

.org 0x00 j mp main .org 0x02 j mp contar main: ; defino como salidas ser tempo out ddra,tempo ; defino como entrada clr tempo out ddrd,tempo ; activo pull -up ldi tempo,0b00000100 out portd,tempo ; garanti zo pull -up in tempo,mcucr

andi tempo,0b11101111 out mcucr,tempo ; declaro el stack pointer ldi tempo,hi gh(ramend) out sph,tempo ldi tempo,low(ramend) out spl,tempo ; habilito la int0 ldi tempo,0b00000001 out ei msk,tempo ;especifico como se desencadena la interrupción como flanco de baj ada ldi tempo,0b00000010 sts EICRA,tempo ;habilitacion global de interrupciones sei clr conta clr conta1 lazo: out porta,conta1 rj mp lazo contar: push tempo

in tempo,sreg push tempo inc conta cpi conta,12 brne contador clr conta inc conta1

contador: pop tempo out sreg,tempo pop tempo reti

Lo pri mero que voy hacer es revisar si el programa me funciona con el uso de leds a la salida para luego usar una subrutina para el barrido de displays.

Como podemos ver al presionar el pulsador y llegue hasta 12 botellas en los leds a salida me va dar sol amente el número de caj as.

Diagrama de f lujo:

2. Programa que m uestre en un display la tecla presionada del teclado matricial 4x4 Segundo método: .include" m164pdef.inc"

ldi tecla,12

.def .def .def .def .def

ldi tempo,0b00001111 out ddra,tempo ldi tempo,0b11110000 out porta,tempo

.equ .equ .equ .equ .equ .equ .equ .equ

tempo=r17 tecla=r18 aux=r19 dato=r20 aux1=r21 fila1=3 fila2=2 fila3=1 fila4=0 colum1=7 colum2=6 colum3=5 colum4=4

.cseg ldi tempo,0b11111111 out ddrb,tempo ldi tempo,0b11110000 out ddra,tempo ldi tempo,0b00001111 out porta,tempo ldi r30,low(tabla
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF