Escolar Documentos
Profissional Documentos
Cultura Documentos
Tony Ribeiro Alves de Sousa, Carlos Bruno Lima Pessoa e Rhuan Carlos
Resumo – Nesse projeto é desenvolvido um código assembly montagem em MPLAB X IDE e os testes no simulador e no
no software MPLAB X IDE e simulado no software SimulIDE, hardware real.
codigo esse que tem a função de acender e controlar o brilho do
LED, tendo a utilização do TIMER0. III. RESULTADOS OBTIDOS
Palavras-chaves – Codigo, LED, brilho, TIMER0. Rodando o codigo no simulador o led inicia apagado,
pois ele inicia com o duty igual a zero, pressionando o botão 1
I. INTRODUÇÃO o PWM é gerado acendendo assim o LED, a medida que o
O objetivo deste experimento é projetar e botão 1 é pressionado vai aumentando o duty cilcle e a
implementar um circuito para controlar o acionamento de um intensidade do brilho tambem, varrendo os botões com o
LED usando um microcontrolador PIC. O circuito deve ser TIMER0. Pressionando o botão 2 diminui o PWM e diminui o
capaz de ligar o LED e controlar sua intensidade a partir do brilho do LED ate que ele apague, pois temos o duty igual a
PWM. O objetivo principal é demonstrar como usar um zero, com a verrudura dos botoes pode manter pressionado os
microcontrolador para controle digital e sua capacidade de botões para o controle do brilho. Logo a baixo está o codigo
controlar programaticamente dispositivos externos, como usado.
LEDs.
;Atividade Avaliativa de Mic Mic
II. METODOLOGIA ;Controle de Brilho de LED por PWM
Neste experimento, um circuito é projetado no ;Foi utilizado o pic16f628a
simulador SimulIde para controlar o acionamento de um
LED usando um microcontrolador PIC. O microcontrolador é list p=16F628A
programado para ligar/desligar e controlar a intensidade do #include <p16F628a.inc>
LED com base no ciclo ativo. Adicionalmente, foi __config _XT_OSC & _WDT_OFF & _PWRTE_ON
desenvolvido um código assembly no software MPLAB X & _BOREN_OFF & _LVP_OFF & _CP_OFF & _CPD_OFF
IDE para configurar as portas digitais, implementar a lógica & _MCLRE_OFF
de controle do LED e utilizar os recursos do
microcontrolador.
O circuito é simulado no SimulIde, onde são ; --- Paginação de Memória ---
realizados testes para verificar se o LED está acionado
corretamente com base no sinal de entrada. O código em #define bank0 bcf STATUS,RP0 ;Cria um
Assembly é compilado no MPLAB X IDE e carregado no mnemônico para selecionar o banco 0 de memória
microcontrolador PIC para testes reais. #define bank1 bsf STATUS,RP0 ;Cria um
A combinação de SimulIde e MPLAB X IDE fornece mnemônico para selecionar o banco 1 de memória
um ambiente completo para desenvolver e testar circuitos
usando microcontroladores PIC. Além de se familiarizar com
as ferramentas amplamente utilizadas na indústria de ; --- Mapeamento de Hardware (PARADOXUS
sistemas embarcados, esta prática de laboratório ajuda a PEPTO) ---
entender os conceitos de programação de
microcontroladores, o uso de portas digitais e a linguagem #define LED1 PORTA,3 ;LED1 ligado ao pino RA3
assembly. #define LED2 PORTA,2 ;LED2 ligado ao pino RA2
Portanto, o laboratório envolveu o desenho do circuito #define S1 PORTB,0 ;Botão S1 ligado ao pino RB0
em SimulIde, a programação de um microcontrolador PIC #define S2 PORTA,5 ;Botão S2 ligado ao pino RA5
para controlar o LED, o desenvolvimento do código de
; --- Registradores de Uso Geral ---
cblock H'20' ;Início da memória disponível para o btfsc STATUS,Z ;CCPR1L = 0?
usuário goto exit_ISR ;Sim, desvia para saída da interrupção
decf CCPR1L,F ;Não, decrementa CCPR1L
W_TEMP ;Registrador para armazenar o conteúdo
temporário de work
STATUS_TEMP ;Registrador para armazenar o ; -- Recupera Contexto (Saída da Interrupção) --
conteúdo temporário de STATUS
exit_ISR:
endc ;Final da memória do usuário
swapf STATUS_TEMP,W ;Copia em Work o
; --- Vetor de RESET --- conteúdo de STATUS_TEMP com os nibbles invertidos
movwf STATUS ;Recupera o conteúdo de STATUS
org H'0000' ;Origem no endereço 00h de memória swapf W_TEMP,F ;W_TEMP = W_TEMP com os
goto inicio ;Desvia para a label início nibbles invertidos
swapf W_TEMP,W ;Recupera o conteúdo de Work
; --- Vetor de Interrupção --- retfie ;Retorna da interrupção
dec_PWM:
IV. CONCLUSÃO
Neste experimento, o código assembly desenvolvido em
MPLAB X IDE permitiu a correta conexão do LED em um
circuito simulado em SimulIDE. O resultado é satisfatório, o
LED acende quando o botão 1 é pressionado e se intensifica
quando se mantem pressionado e dimnui e apaga wuando se
pressiona e mantem pressionado o botão 2. O código se REFERENCES