Info 6 Micros

4
Laboratorio de Sistemas Microprocesados Práctica 6: Programación de los microcontroladores ATMEL(ATMega164P) Objetivo: Aprender a usar correctamente el programador para el Microcontrolador ATMega164p. Implementar un circuito que permita sumar, o restar 2 números de 8 bits utilizando el microcontrolador ATmega164p. INFORME 1. Presentar los resultados de obtenidos del circuito propuesto en el laboratorio. Programa usado: .include"m164pdef.inc" .def aux=r19 .def cosita =r21 .org 0x00 rjmp inicio inicio: ser r16 ;setear r16 clr r17 ;borrar r17 out ddra,r17 ;porta como entrada out ddrb,r17 ;portb como entrada out ddrc,r16 ;portc como salida out ddrd,r16 ;portd como salida sbi ddrc,7 ;portc,7 como entrada cbi ddrd,7 ;portd,7 como entrada lazo: in r18, pina ;leer puerto A in r19, pinb ;leer puerto B sbis pind, 7 ;revisar estado del pin 7 rjmp salto add r18, r19 ;suma brcs led ldi cosita,0b10000000 rjmp mostrar led: ldi cosita, 0b00000000 rjmp mostrar salto: sub r18, r19 ;resta sin carry brcs led1

description

wdasd

Transcript of Info 6 Micros

Laboratorio de Sistemas MicroprocesadosPrctica 6: Programacin de los microcontroladores ATMEL(ATMega164P)Objetivo: Aprender a usar correctamente el programador para el Microcontrolador ATMega164p. Implementar un circuito que permita sumar, o restar 2 nmeros de 8 bits utilizando el microcontrolador ATmega164p.

INFORME1. Presentar los resultados de obtenidos del circuito propuesto en el laboratorio.Programa usado:.include"m164pdef.inc" .def aux=r19 .def cosita =r21 .org 0x00 rjmp inicio inicio:ser r16;setear r16clr r17;borrar r17out ddra,r17 ;porta como entradaout ddrb,r17;portb como entradaout ddrc,r16;portc como salidaout ddrd,r16;portd como salidasbi ddrc,7;portc,7 como entradacbi ddrd,7;portd,7 como entradalazo:in r18, pina ;leer puerto Ain r19, pinb;leer puerto B

sbis pind, 7;revisar estado del pin 7

rjmp saltoadd r18, r19;sumabrcs ledldi cosita,0b10000000rjmp mostrarled:ldi cosita, 0b00000000rjmp mostrarsalto:sub r18, r19;resta sin carrybrcs led1ldi cosita, 0b10000000rjmp mostrarled1:ldi cosita, 0b0000000 mostrar:;parte primera:mov aux, r18;r18 se lo mueve a auxandi aux,0x0f ;se extrae los bits mas BAJOS para mmostrarloscall subrutinaadd aux,cositaout portc,aux;salida del aux por portc;segunda parte:mov aux,r18;r18 se lo mueve a auxandi aux,0xf0 ;se extrae los bits mas ALTOS para mmostrarlosswap aux;para poder mostrarlos en la tabla y en los;displays hay que intercambiar los a bits altos por bajoscall subrutinaout portd,aux;salida del aux por portdrjmp lazosubrutina:ldi Zh,high(tabla