Led com PIC 16F628
CENTRO DE TECNOLOGIA
DEPARTAMENTO DE ENGENHARIA ELÉTRICA
DISCIPLINA: LABORATÓRIO DE MICROCONTROLADORES
PROFESSOR: FÁBIO ROCHA
EXPERIMENTO 2:
LIGA LED COM INTERRUPTOR
RAIMUNDO N. FRANCO SOBRINHO – 09T12932
Teresina, 25 de fevereiro de 2013
1. Objetivos
Dominar a programação básica em Assembly e observar as vantagens e desvantagens de se programar utilizando-se a linguagem Assembly.
2. Material utilizado
Um led.
Um resistor de 220 Ώ.
Um resistor de 10K Ώ.
Um PIC 16F628.
3. Procedimento experimental
3.1. Código em Assembly
#INCLUDE "P16F628A.INC"
#DEFINE BANCO0 BCF STATUS, RP0
#DEFINE BANCO1 BSF STATUS, RP0 __CONFIG _WDT_OFF
ORG 0x00 GOTO Inicio ORG 0x04
Inicio BANCO1 ; mudança para o banco de memória 1 CLRF PORTA ; limpando os bits de PORTA. Com isso, todos os ; pinos (RA0 a RA7) serão utilizados como saída MOVLW B'00000100' ; utilizando o registrador Work (W) para ; configurar a porta de entrada A. O terceiro bit, que ; corresponde ao pino RA2 está sendo configurado como ; entrada, e o restante dos pinos desta porta como saída MOVWF PORTA ; concluindo a configuração da porta A BANCO0 ; mudando para o banco de memória 0
Loop:
BTFSS PORTA, 2 ; verifica o estado da chave (pino RA2). Se o valor ; for “1”, a próxima linha é pulada, então o LED irá ; acender. Caso contrário o LED irá apagar GOTO Apagar ; se RA2 = 0, apaga o LED GOTO Acender ; se RA2 = 1, acende o LED
Acender: BSF PORTA, 1 ; seta o bit 1 (RA1) da porta A. Isto faz com que o ; LED se acenda. RA1 = 1 GOTO Loop ; volta para verificação da chave
Apagar: BCF PORTA, 1 ; limpa o bit 1 (RA1) da porta A. Isto faz com que o ; LED se apague. RA1 = 0 GOTO Loop ; volta para verificação da chave END ; fim do programa
3.2. Simulação – Proteus
Primeiramente grava-se o código (.HEX), no PIC 16F628A, em seguida