domingo, 22 de febrero de 2015

Configurando el Atmega 164P como salidas y entradas

El atmega 164p  posee 4 puertos de I/O  aqui se expone una breve explciacion de como configurar los puertos de este como salidas y entradas digitales en assembler.



.include"m164pdef.inc"
 .def    tempo = r16    ; defino el registro r16 como tempo


 .cseg        ; empieza segemento de codigo
 .org    0x00    ; direccion de inicio 0x00


 inicio:
 // configuro los pines como entrada y salida

 ldi    tempo,0x00        ; configuro como salida el puerto A
 out    ddrb,tempo
 out    portb,tempo

 ldi    tempo,0xff        ; cargo el valor 255 en hexadecimal
 out    ddra,tempo        ; configuro como salida
 out    porta,tempo
 ldi    tempo,0x00
 out    porta,tempo        ;saco mi valor de cero leds apagados

 // activo el pull up del microcontroaldor
 ldi    tempo,0xff
 out    portb,tempo

 in        tempo,mcucr
 andi    tempo,0b11101111    ; activo pull up interno no necesito
 out    mcucr,tempo            ; de resistencia para el dipswith

 // lazo infinito
 lazo:
 in        tempo,pinb            ; lee el estado del puerto b y lo guarda en tempo
 out    porta,tempo            ; saca mi valor de tempo por el puerto a       
 rjmp    lazo                ; regresa a lazo

















No hay comentarios.:

Publicar un comentario