Sequenciador de luzes msb-lsb e vice-versa
Sequenciador de luzes
MSB-LSB e vice-versa
Microprocessadores
Introdução:
Neste primeiro trabalho pratico pretende-se construir um programa em linguagem Assembly de modo a obter um sequenciador de luzes MSB-LSB e vice versa. É implementado um microprocessador (atmega8535), utilizando o software “Avr studio” para o desenvolvimento de um código em Assembly necessário para a implementação pratica no hardware.
Uma vez terminado, efectuou-se a conversão do código em linguagem Assembly para código Intel Hex que foi utilizado no programa Ponyprog para se programar o microprocessador.
Para que fosse possível visualizar o resultado final no hardware foi também configurado e utilizado um timer.
Esquema de montagem:
Através de uma ligação RS232, programou-se o microprocessador com o código necessário.
Utilizou-se o microprocessador ATmega8535 com um cristal(XTAL) de 5Mhz e uma barra de Leds com de 10(dez) segmentos, em que apenas são utilizados 8 (oito) segmentos.
O ATMEGA8535 é um microprocessador de CMOS 8-bit de baixo consumo com base no AVR arquitectura RISC reforçada. Ao executar instruções em um único ciclo de clock, o ATMEGA8535 alcança débitos aproximando 1 MIPS por MHz permitindo que o sistema designer para optimizar o consumo de energia em função da velocidade de processamento.
Sendo que o resultado final da montagem é o seguinte:
Código implementado:
.include "8535def.inc"
.org $0000 ; reset externo rjmp Inicio ; salta para o ciclo inicio
.org $0009 ; linha reservada a interrupção do timer rjmp Atendi ; salta para o ciclo de atendimento
Inicio:
ser r16 ; Carrega o registo com 0xFF out DDRA, r16; configura a porta A como saída
ldi r16, 0x00 ; carrega o registo com tudo a zero out DDRB, r16 ; configura a porta B como entrada ldi r17, 0x05 ; carrega o registo cm 0x05 out TCCR0, r17 ; configuração do timer couter 0 out TIMSK,r17 ;Activa/configura a interrupção ldi r18, 0x07;carrega o registo clr r16;