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