Académique Documents
Professionnel Documents
Culture Documents
Roteiro
Materiais
Pinos do PIC
Fluxograma
Circuito no protoboard
Melhoramentos
Sugesto de Atividades
Materiais
Gravador
PIC 16F628A
1 Led
Resistores: 1 x 1K e 1 x 10k
2 Suportes para Pilhas AA
4 Pilhas AA
Push buttom
Protoboard e Fios
Pinos do PIC
Pinos do Port A
Pinos do Port B
Fluxograma
INICIO
NO
O boto
Foi pressionado?
SIM
O LED
Est ligado?
SIM
Apaga
NO
Acende
Entrada e Sada
+
+
+
1K
10K
Pino
BIT PORTB
Pino
17
18
10
11
15
12
16
13
Configurando E/S
Configurando E/S
18
1
05H PORT A
17
16
15
5
6
85H TRISA
86H TRISB
14
13
12
11
10
06H PORT B
Configurando E/S
18
1
05H PORT A
2
17
16
15
INPUT
OUTPUT
6
7
85H TRISA
86H TRISB
0
14
13
12
11
10
06H PORT B
Configurando E/S
1
05H PORT A
18
17
16
1
15
85H TRISA
LED
14
6
7
86H TRISB
0
13
12
11
10
06H PORT B
Configurando E/S
05H PORT A
18
3
16
17
15
85H TRISA
LED
14
6
7
BSF 06h,0
8
9
13
86H TRISB
0
12
1
11
06H PORT B
10
511
0h
1FFh
0 127
0h 7Fh
Banco 0
128 255
80h Ffh
Banco 1
256-383
100h-17Fh
Banco 2
06h: PortB
05h: PortA
03h: STATUS
86h: TRISB
85h: TRISA
83h: STATUS
103h: STATUS
IRP RP1
RP0RP0
RP1
RP0 TO PD DC
3h: STATUS
384-511
180h-1FFh
Banco 3
183h: STATUS
8BITS
511
0h
1FFh
00127
127
0h
7Fh
0h 7Fh
Banco
Banco00
1
06h: PortB
05h: PortA
03h: STATUS
7
AO LIGAR
IRP
128 255
80h Ffh
Banco 1
256-383
100h-17Fh
Banco 2
86h: TRISB
85h: TRISA
83h: STATUS
103h: STATUS
0 0
TO PD DC
3h: STATUS
384-511
180h-1FFh
Banco 3
183h: STATUS
8BITS
511
0h
1FFh
0 127
0h 7Fh
Banco 0
128
128
128255
255
255
80h
Ffh
80h
80hFfh
Ffh
Banco
Banco
Banco111
256-383
100h-17Fh
Banco 2
06h: PortB
05h: PortA
03h: STATUS
86h: TRISB
85h: TRISA
83h: STATUS
103h: STATUS
BSF 03h,5
IRP
0 1
TO PD DC
3h: STATUS
384-511
180h-1FFh
Banco 3
183h: STATUS
8BITS
511
0h
1FFh
256-383
256-383
100h-17Fh
100h-17Fh
Banco
Banco22
0 127
0h 7Fh
Banco 0
128 255
80h Ffh
Banco 1
06h: PortB
05h: PortA
03h: STATUS
86h: TRISB
85h: TRISA
83h: STATUS
BCF 03h,5
BSF 03h,6
IRP
1 0
384-511
180h-1FFh
Banco 3
103h: STATUS
TO PD DC
3h: STATUS
183h: STATUS
8BITS
511
0h
1FFh
0 127
0h 7Fh
Banco 0
128 255
80h Ffh
Banco 1
256-383
100h-17Fh
Banco 2
06h: PortB
05h: PortA
03h: STATUS
86h: TRISB
85h: TRISA
83h: STATUS
103h: STATUS
BSF 03h,5
BSF 03h,6
IRP
1 1
TO PD DC
3h: STATUS
384-511
384-511
180h-1FFh
180h-1FFh
Banco
Banco33
183h: STATUS
8BITS
Configurao
Cdigo: Configurao
CONFIGURACAO
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
Fluxograma
INICIO
CONFIGURAO
LOOP
NO
O boto
Foi pressionado?
SIM
O LED
Est ligado?
SIM
Apaga
NO
Acende
Fluxograma
INICIO
CONFIGURACAO
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
LOOP
NO
BTFSS 6H,0
GOTO LOOP
SIM
BTFSS 5H,6
GOTO ACENDE
SIM
APAGA
BCF 5H,6
GOTO LOOP
NO ACENDE
BSF 5H,6
GOTO LOOP
Cdigo (ex2-0.asm)
INICIO
Cdigo: ex2-0.asm
CONFIGURACAO
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
LOOP
NO
BTFSS 6H,0
GOTO LOOP
SIM
BTFSS 5H,6
GOTO ACENDE
SIM
APAGA
BCF 5H,6
GOTO LOOP
NO ACENDE
BSF 5H,6
GOTO LOOP
__CONFIG 0x3D18
ORG 0x00
INICIO
CONFIGURACAO
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
CLRF 05H
LOOP
BTFSS 6H,0 ; Pula se boto Pressionado
GOTO LOOP
BTFSS 5H,6 ; Pula se Luz acessa
GOTO ACENDE
GOTO APAGA
ACENDE
BSF 5H,6
GOTO LOOP
APAGA
BCF 5H,6
GOTO LOOP
END
Processo de Montagem
Cdigo
Cdigo
executvel: ex1-0.hex
executvel: ex1-0.hex
Montagem
:020000040000FA
:020000040000FA
:100000008316051586118512051D0028861D0928F1
:100000008316051586118512051D0028861D0928F1
:0A0010000B2886150028861500282D
:0A0010000B2886150028861500282D
:02400E00182D6B
:02400E00182D6B
:00000001FF
:00000001FF
Simulao
$ gpsim ex2-0.cod
Inicie a simulao
Verifique a Breadboad
Clique no pino correspondente a RB0 para que ele fique vermelho (1), Verifique o que o
pino RA6 fica piscando. Clique novamente em RB0 e verifique que RA6 parou de piscar,
mas pode tanto estar ligado como desligado. Na aplicao real, enquanto o boto estiver
pressionado o led estar sendo aceso e apagado 1 milho de vezes por segundo. Desta
forma o Led ficar aceso ou apagado dependendo do tempo que o boto ficar pressionado.
Observe que no isso que queremos.
Ento como resolver esse problema? Resp: Proximo slide
Resposta: Interrupo
Interrupes
Tipos de Interrupo
Interrupo externa:
Mudana de Estado
3 Timers (TDVI)
2 Comunicao Serial
1 de comparador
1 de CPP
ORG 0X04
Tratamento da
interrupo
LOOP DO
PROGRAMA
PRINCIPAL
Desligar a Flag
Correspondente
RETFIE
Configurando as interrupes
Funo
GIE PEIE
Acesso
RW
RW
RW
RW
RW
RW
RW
POR
T0IE
RBIF
SFR INTCON
(interrupt controler)
Funo
GIE
PEIE
T0IE
INTE
RBIE
T0IF
INTF
RBIF
Acesso
RW
RW
RW
RW
RW
RW
RW
RW
POR
Cdigo
Cdigo
Cdigo (ex2-0.asm)
INICIO
Cdigo: ex2-0.asm
CONFIGURACAO
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
LOOP
NO
BTFSS 6H,0
GOTO LOOP
SIM
BTFSS 5H,6
GOTO ACENDE
SIM
APAGA
BCF 5H,6
GOTO LOOP
NO ACENDE
BSF 5H,6
GOTO LOOP
__CONFIG 0x3D18
ORG 0x00
INICIO
CONFIGURACAO
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
CLRF 05H
LOOP
BTFSS 6H,0 ; Pula se boto Pressionado
GOTO LOOP
BTFSS 5H,6 ; Pula se Luz acessa
GOTO ACENDE
GOTO APAGA
ACENDE
BSF 5H,6
GOTO LOOP
APAGA
BCF 5H,6
GOTO LOOP
END
Programando interrupes
Cdigo: ex2-1.asm
INICIO
CONFIGURAO
Lao
Principal
LOOP
INICIO
BTFSS 5H,6
Tratador
de
interrupo
NO
BSF 5H,6
SIM
BCF 5H,6
BCF 0Bh,1
REFIE
__CONFIG 0x2D18
ORG 0x00
GOTO CONFIGURACAO
ORG 0x04
BTFSS 5H,6 ; Pula se Luz acessa
GOTO ACENDE
GOTO APAGA
ACENDE
BSF 5H,6
; Acende Led
GOTO SAIINT
APAGA
BCF 5H,6
;Apaga o Led
SAIINT
BCF 0Bh,1
; Desliga a Flag INTF
RETFIE
CONFIGURACAO
BSF 0BH, 7; GIE=1 (Habilita int geral)
BSF 0BH, 4; INTE=1 (habilita int externa)
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA6 (RA6 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
LOOP
GOTO LOOP
END
Economizando energia
Economizando energia
INICIO
Lao
Principal
CONFIGURAO
LOOP
SLEEP
A instruo SLEEP
Provoca uma parada
do sistema e s volta
Em caso de interrupo
INICIO
BTFSS 5H,6
Tratador
de
interrupo
NO
BSF 5H,6
SIM
BCF 5H,6
BCF 0Bh,1
REFIE
Cdigo: ex2-2.asm
__CONFIG 0x2D18
ORG 0x00
GOTO CONFIGURACAO
ORG 0x04
BTFSS 5H,6 ; Pula se Luz acessa
GOTO ACENDE
GOTO APAGA
ACENDE
BSF 5H,6
GOTO SAIINT
APAGA
BCF 5H,6
SAIINT
BCF 0Bh,1
RETFIE
CONFIGURACAO
BSF 0BH, 7; GIE=1 (Habilita int geral)
BSF 0BH, 4; INTE=1 (habilita int externa)
BSF 03H,5 ; Seleciona banco 1 (seta RP0)
BCF 85H,6 ; Reseta RA3 (RA3 como saida)
BSF 86H,0 ; Seta RB0 (RB0 como entrada)
BCF 03H,5 ; Seleciona banco 0 (reseta RP0)
LOOP
SLEEP
; Poe o sistema em standby
GOTO LOOP
END
Processo de gravao
Linha de comando para
Montagem no Live CD.
Arquivos gerados:
ex2-2.lst, ex2-2.cod, ex2-2.hex
Cdigo
$ gpasm -p16f628a ex2-2.asm
ex2-2.asm
Montagem
Porta Serial
executvel: ex2-2.hex
:020000040000FA
:020000000C28CA
:08000800051F07280928051750
:100010000A2805138B1009008B170B16831605137E
:0800200006148312630012288C
:02400E00182D6B
:00000001FF
Arquivo
HEX
Linha de comando para
Gravao no Live CD.
O gravador deve est
Conectado na porta serial
Atividades Sugeridas
1) Modifique o programa de forma que fique mais precisa
a atividade de acender e apagar do boto. (inserir
verificao para se o boto foi solto)
2) Modifique o programa para que com um toque acenda
um led verde (em RA3), com outro toque acenda o
vermelho (em RA2) e apague o verde.
2) Depois voc poder modificar o programa para que
com um toque acenda o verde, um segundo toque
acenda o vermelho e o terceiro toque apague os dois.