Académique Documents
Professionnel Documents
Culture Documents
Alunos:
Dionatan Avila Rangel
Douglas Silva Nunes Ferreira
ALEGRETE
OUTUBRO DE 2012
Sumrio
1.
Introduo ........................................................................................................................ 3
2.
3.
Interrupes...................................................................................................................... 7
4.
Modo PWM....................................................................................................................... 9
5.
6.
O programa ..................................................................................................................... 13
7.
Montagem ...................................................................................................................... 19
8.
9.
Referncias ..................................................................................................................... 23
1.
Introduo
2.
Conhecendo o PIC
Para conhecimento e melhor entendimento das portas e configuraes que deveriam ser
utilizadas usou-se o seguinte conceito para a programao e implementao do PIC.
importante salientar que o PIC tem a porta Master Clear (reset MCLR/Vpp) externo do
micro controlador e s funciona quando este pino encontra-se em nvel alto.
A estrutura interna do PIC apresentada com a figura 2:
Uma parte muito importante a ser observada no PIC a frequncia de operao que
nesse caso foi implementada com um Cristal Oscilador de 4MHz, o clock interno do PIC
equivalente ao clock externo dividido por 4.
6
Desta forma, quando trabalhamos, por exemplo, com um cristal de 4 MHz, o PIC estar
trabalhando internamente com uma frequncia de 1 MHz. Para ns, mais importante que o
clock interno, o perodo dessa frequncia (o inverso da mesma), que equivalente ao tempo
de durao de um ciclo de mquina, popularmente chamado de CM ou TCY.
Ento com um clock de 4 MHz externo, nosso ciclo de mquina (CM) ser de 1s.
3.
Interrupoes
Este PIC possui um total de 15 interrupes diferentes, como nos demais modelos, todas
geraro o desvio do programa para o mesmo vetor de interrupo (0004h), desde que
devidamente configuradas para isso. Essas interrupes podem ser divididas em dois grupos,
as convencionais (as mesmas existentes em modelos menores, como o 16F84), e as de
perifricos, que esto diretamente relacionadas aos demais perifricos existentes neste
modelo. As trs interrupes descritas na sequencia so as convencionais, enquanto as demais
so as de perifricos.
Interrupo de Timer 0: Esta interrupo acontece sempre que o contador TMR0(Timer 0)
estoura, ou seja, como ele um contador de 8 bits, sempre que ele passar de 0xFF para 0x00.
Interrupo externa: Esta interrupo gerada por um sinal externo ligado ao pino RB0, caso
ele esteja configurado como entrada. Desta maneira, podemos identificar e processar
imediatamente um sinal externo. Ela utilizada para diversas finalidades, corno por exemplo,
para a comunicao entre micros, garantindo o sincronismo, para o reconhecimento de boto
ou outro sinal cio sistema que necessite de uma ao imediata.
Interrupo por mudana de estado: Ao contrrio da interrupo externa, a interrupo por
mudana de estado acontece em ambas as bordas (subida e descida).
Interrupo do Timer 2: O Timer2 um contador de 8 bits, relacionado somente ao clock
interno, que possui um Prescaler um postscale, sendo ambos configurveis. Esta interrupo
acontecer sempre que o Timer 2 (TMR2) acrescido do seu Postscaler estourar. Este um
contador de 8 bits que possu um Prescaler para incrementar o registrador e um Postscaler
para gerar a interrupo.
Interrupo do Timer 1: Esta interrupo acontecer sempre que o Timer 1 (TMR1) estourar.
Obs: Este um contador de 16 bits. Este timer bem mais poderoso que o Tirner0 por uma
srie de motivos. Primeiramente, trata-se de um timer de 16 bits, composto de dois
registradores de 8 bits (TMR1H e TMR1 L) que podem ser escritos e lidos pelo programador.
Interrupo do Timer0: Tambm conhecido como TMR0, um contador de 8 bits, cujo valor
atual encontra-se disponvel no registrador TMR0. Entretanto, para incremento externo ou
interno, ser aplicado um Prescaler (PS) antes do registrador TMR0 ser realmente alterado.
Para aumentar o poder de operao do TMR0, associado a ele existe uma interrupo
acontecendo toda vez que o registrador TMR0 estourar, isto , sempre que o limite de 8 bits
(FFh ou 255d) for ultrapassado. Quando isso acontecer, o flag INTCON<T0IF> ser setado.
Para utilizar esta interrupo, a chave INTCON<T0IE> deve ser ligada, assim como a chave geral
INTCON<GIE>. No esquecer de limpar o flag (T0IF) manualmente durante o tratamento da
interrupo.
Interrupo do CCP1 (Capture/Compare/PWM): Esta interrupo est vinculada ao primeiro
sistema CCP, que engloba os seguintes recursos: Capturei, Compare! e PWM1
Como a chave GIE desligada antes de desviar para o vetor de interrupo, duas
interrupes no sero tratadas ao mesmo tempo, isto , uma interrupo no gerar um
desvio caso outra interrupo j esteja sendo tratada. Entretanto, o flag da segunda
interrupo ser marcado, e quando o tratamento da primeira terminar, o GIE ser novamente
ligado (atravs da instruo RETFIE) e o sistema voltar a ser desviado para o vetor de
interrupo (devido ao flag).
4.
Modo PWM
Modo PWM: O Modo PWM provavelmente o recurso mais poderoso dos mdulos CCPs, pois
com ele podemos obter uma tenso analgica a partir de um sinal digital. Na verdade, esta
sada meramente digital, isto e. somente pode assumir os estados O e 1. Porm, pelo
conceito aplicado ao PWM, podemos transform-la em uma tenso varivel. Obviamente isso
exigir um hardware complementar (filtros) depois da sada do PIC, mas isso uma outra
histria. Por enquanto, vamos entender melhor o que um PWM.
O nome PWM tem sua origem no ingls Pulse Width Modulation que em Portugus
pode ser considerado como Modulao por Largura de Pulso.
Esse PIC possui dois canais de PWMs (CCP1 e CCP2). Cada canal possui uma resoluo
mxima de 10 bits. Isso significa que a razo cclica do PWM poder ser regulada de 0 a 100%
com uma resoluo de 1024 (210) pontos.
O timer 2 controla diretamente o perodo do PWM, pelo registrador PR2. Como o
timer zera sempre que o contador chega ao valor do perodo, a freqncia do PWM pode ser
definida pelas seguintes frmulas.
10
11
12
N DE ACIONAMENTOS:
FREQUENCIA:
0
<20
1
160
2
160
3
160
4
160
5
160
6
160
PWM com sinal em 80% no max
TENSAO RMS:
23mv
1.45v
2.03v
2.55v
2.92v
3.25v
3.59v
13
6.
O progrm
#DEFINE CH_INC
PORTB,4
#DEFINE CH_DEC
PORTB,6
DUTY_CYCLE EQU 50
TEMP1 EQU 51
TEMP2 EQU 52
;============================INICIO DO CDIGO==============================
ORG 0x00
GOTO MAIN
ORG 0X04
GOTO INTERRUPT
14
;=====================CONFIGURAO DO MICROCONTROLADOR=================
MAIN ; SUBROTINA QUE CONFIGURA O PIC
MOVLW .255
MOVWF PR2 ; CONFIGURA PERIODO DO PWM
; T = (PR2+1).4.Tosc.TMR2_PRESCALE
; T = 256.4.250ns.16
; T = 4,096ms -> F244,14Hz
BCF STATUS,5 ; SETA BANCO 0
MOVLW .31
MOVWF DUTY_CYCLE ; SETA O CICLO ATIVO PARA 12,5%
MOVWF CCPR1L
15
MOVLW B'00000111'
MOVWF T2CON
; CONFIGURA TIMER 2
; TIMER2 LIGADO
; PRESCALE = 1:16
; POSTSCALE = 1:1
BSF INTCON, 7
BSF INTCON, 3
;=============================LOOP PRINCIPAL===============================
LOOP
GOTO LOOP
;========================SUBROTINA DE INTERRUPO=========================
INTERRUPT
TESTE_DEC
16
GOTO FIM_INTERRUPT ; NAO, ENTAO SAI DA INTERRUPAO
FIM_INTERRUPT
;BCF PIR2, 0
;BCF PIR1, 1
BSF INTCON,7 ; HABILITA INTERRUPAO GLOBAL
BCF INTCON,0 ; HABILITA INTERRUPAO POR PORTAS RB
goto LOOP
;======================SUBROTINA DE INCREMENTO=========================
INCREMENTO
bsf PORTC, 6
MOVF DUTY_CYCLE,0
SUBLW .248
BTFSC STATUS,2
GOTO FIM_INTERRUPT
; SE O RESULTADO DA SUBTRAO FOR DIFERENTE
; DE ZERO INCREMENTA O DUTY_CYCLE
MOVLW .31
ADDWF DUTY_CYCLE,1
MOVF DUTY_CYCLE,0
MOVWF CCPR1L
MOVWF CCPR2L
17
GOTO FIM_INTERRUPT
;========================SUBROTINA DE DECREMENTO=========================
DECREMENTO
bsf PORTC, 7
MOVF DUTY_CYCLE,0
SUBLW .0
BTFSC STATUS,2
GOTO FIM_INTERRUPT
MOVLW .31
SUBWF DUTY_CYCLE,1
MOVF DUTY_CYCLE,0
MOVWF CCPR1L
MOVWF CCPR2L
GOTO FIM_INTERRUPT
;============================ROTINA DE ESPERA==========================
DELAY65MS
MOVLW .255
MOVWF TEMP2
; TEMP2=W
GOTO L1
18
DECFSZ TEMP2, 1
END
GOTO L2
RETURN
; FIM DA FUNO
19
7.
Montgem
Tivemos problemas durante a montagem pois o oscilador deveria ficar bem prximo suas
portas respectivas no PIC, pois a frequncia de incremento e a largura do pulso do PWM
estavam ligadas diretamente com sua frequncia. Para obter um melhor ganho na estabilidade
do sinal, fez-se placas de circuito impresso (PCI), que primeiramente tinham a finalidade de
diminuir os rudos e garantir os contatos com os componentes. Foi necessrio fazer 3 modelos
de placas para chegar a um que atendesse as nossas expectativas.
20
21
22
8.
Consideroes Finis
23
9.
Referencis
*1+ Souza, David Jos.Lavinia, Ncolas Czar. Conectando o PIC 167877A Recursos Avanados.
3 ed. Rio de Janeiro RJ, rica,2004
[2] Notas de aula da disciplina de Microcontroladores Laboratrio de Eletrotcnica,
Unipampa Centro de Tecnologia de Alegrete.
[3]http://www.datasheetcatalog.org/datasheet/mcc/548B.pdf Acesso em 17/6/2011.