PIC16F84

Anuncio
Practica de PIC 16F84
Los PIC son circuitos que pueden controlar dispositivos y diferentes sistemas, son
como los PLC (controles lógico programable), además debo decir que es un circuito que
tiene todas las características de una computadora. Puedes con
foco, hasta un tanque industrial o un motor de una banda transportadora.
Es una computadora completa aunque de limitadas prestaciones, que esta contenido
en un chip de un circuito integrado y se destina a gobernar una sola tarea.
Un microprocesador es un sistema abierto con el que puede construirse un sistemas
con las características que desee, acoplándole los módulos necesarios.
Un microcontrolador es un sistema cerrado que tiene una computadora completa y
de prestaciones limitadas.
El microcontrolador tiene un chip dentro de el que es el banco me memoria, tiene
memoria RAM y ROM, tiene puertos de entrada y salida, tiene una parte central de
procesamiento y su circuito de reloj, además de otras características.
Debo mencionar que el microcontrolador maneja instrucciones tipo RISC, es decir
que son muy rápidos pero con pocas instrucciones en sus librerías.
Algunas de las cuales se mencionan aquí.
INTRUCCION PARAMETROS
ACCION
Intrucciones con los registros
FLAGS
addwf
f, d
Suma de W con f
C, DC,
Z
andwf
f, d
AND de W con f
Z
clrf
f
Borra registro f
Z
Borra registro W
Z
clrw
comf
f, d
Complemento de f
Z
decf
f, d
Decremento de f
Z
incf
f, d
Incrementa registro f
Z
iorwf
f, d
OR de W con f
Z
movf
f, d
Traslado de f
Z
movwf
f
rlf
f, d
Rotacion a izquierda con carry
C
rrf
f, d
Rotacion a derecha con carri
C
Traslado de W a f
subwf
f, d
Resta W de f
swapf
f, d
Intercambio de los 4 bits de mas peso con los
4 de menos peso
xorwf
f, d
OR exclusivo de W y f
C,DC,C
Z
Instucciones que manejan bits
bcf
f, b
Pone a 0 el bit b del registro f
bsf
f, b
Pone a 1 el bit b del registro f
Instrucciones de operandos inmediatos
addlw
k
Su ma el literal a W
C,DC,Z
andlw
k
AND del literal con W
Z
iorlw
k
OR de literal con W
Z
movlw
k
Mueve el literal k a W
sublw
k
Resta W del literal k
C,DC,Z
xorlw
k
OR exclusivo del literal con W
Z
Instrucciones de salto
btfsc
f, b
Testea bit b de f , salta si es 0
btfss
f, b
Testea bit b de f, salti si es 1
decfsz
f, d
Decremento de f, salta si es 0
incfsz
f, d
Incrremento de f, salta si es 1
Instrucciones de control y especiales
call
k
Borra el Watchdoc
clrwdt
goto
Llama a una subrrutina
k
Salta a una direccion (etiqueta)
nop
No hace nada
retfie
Retorno de interrupcion
retlw
k
TO#,
PD#
Retorna y devuelve literal k en w
return
Retorno de subrrutina
sleep
Puesta en estado de reposo
TO#,
PD#
Un programa que resida en el PIC, se necesita hacer en un compilador, en este caso,
como el que manejamos el PIC 16f84, de la familia de microchip, maneja su compilador
MPLAB, además de haber otros compiladores.
Para grabar un programa en el PIC, debemos de tener el programa que tenga
extensión HEX, y este se hace cuando uno compila el programa que hace uno en el
MPLAB, y este mismo lo genera. Este programa tenemos que introducirlo en el PIC, por lo
que hay varias maneras de hacerlo.
Una de las cuales es el tener un grabador tipo industrial, otra es hacer uno un
grabador, ya sea serial o paralelo.
A continuación el diagrama de conexión serial.
para aprender a programar es necesario practicar, es la única manera de hacerlo.
Ahora empezaremos con los programas.
Programa 3 del libro de microcontroladores.
;programa que introduce un dato por el puerto a y es complementado y
sacado por puerto b
list p=16f84
w
equ
0
porta equ
0x05
portb equ
0x06
trisa
equ
0x05
trisb equ
0x06
status equ
0x03
org
goto
org
inicio bsf
clrf
movlw
movfw
bcf
ciclo
0
inicio
5
status,5
trisb
0xff
trisa
status,5
movf porta,w
comf porta,w
movwf portb
goto ciclo
end
programa 4 del libro de microcontroladores
;programa que realiza un salto condicional, si la condicion es verdadera
se realiza
;un salto de una linea, de otra manera continua la ejecucion normal del
programa
list p=16f84
w
equ
f
equ
portb equ
trisb equ
status equ
conta
equ
org
goto
org
inicio
bsf
0x00
0x01
0x06
0x06
0x03
0x0c
0
inicio
5
status,5
clrf
bcf
clrf
bucle
trisb
status,5
conta
incf conta,f
movf conta,w
movwf portb
movlw 0x5f
subwf conta,w
btfss status,2
goto bucle
sleep
end
programa 5 del libro de microcontroladores
;programa que hace un timer
list p=16f84
portb equ
0x06
trisb equ
0x06
status equ
0x03
;option equ
0x01
tmr0_opt equ
0x01
org
goto
org
0
inicio
5
inicio bsf
movlw
movwf
clrf
bcf
status,5
b'11010110'
tmr0_opt
trisb
status,5
clrf
parpa bsf
call
bcf
call
goto
portb
portb,7
retardo
portb,7
retardo
parpa
retardo
clrf tmr0_opt
explora btfss tmr0_opt,4
goto explora
return
end
y pulsa un led en el puerto b
Programa 6 del libro de microcontroladores
;programa que maneja interrupciones, lee datos de un puerto y los
transmite al otro puerto
list p=16f84
w
equ
0
f
equ
1
tmr_opt equ
0x01
porta equ
0x05
portb equ
0x06
trisa
equ
0x05
trisb equ
0x06
status equ
0x03
intcon equ
0x0b
conta equ
0x10
org
goto
org
goto
org
inicio bsf
clrf
movlw
movwf
movlw
movwf
bcf
movlw
0
inicio
4
inter
5
status,5
trisb
b'00000011'
trisa
b'00000111'
tmr_opt
status,5
b'10100000'
movwf intcon
movlw 0x10
movwf conta
movlw 0x0c
movwf tmr_opt
ciclo btfsc porta,0
goto ra0_1
bcf
portb,0
goto ralx
ra0_1
bsf
portb,0
ralx
btfsc porta,1
goto ral_1
bcf
portb,1
goto ciclo2
ral_1
bsf
portb,1
ciclo2 goto ciclo
inter decfsz conta,1
goto seguir
conta_0 movlw 0x10
movwf conta
btfsc portb,7
goto rb7_1
bsf
portb,7
goto seguir
rb7_1
bcf
portb,7
seguir movlw b'10100000'
movwf intcon
movlw 0x0c
movwf tmr_opt
retfie
end
programa 7 del libro de microcontroladores
;programa que maneja un display de 7 segmentos por el puerto B
list p=16f84
w
equ
0
f
equ
1
pcl
equ
0x02
porta equ
0x05
portb equ
0x06
trisa
equ
0x05
trisb equ
0x06
status equ
0x03
valor
equ
0x12
org
goto
org
0
inicio
5
inicio bsf
clrf
movlw
movwf
bcf
explora
status,5
trisb
b'11111111'
trisa
status,5
movf porta,w
movwf
comf
clrw
btfss
goto
addlw
bit_1 btfss
goto
addlw
bit_2 btfss
goto
addlw
visual
movwf
sleep
valor
valor,f
valor,0
bit_1
0x01
valor,1
bit_2
0x02
valor,2
visual
0x04
call display
portb
display addwf pcl,f
retlw 0x3f
retlw 0x06
retlw 0x5b
retlw
retlw
retlw
retlw
retlw
end
0x4f
0x66
0x6d
0x7d
0x07
Estos son algunas aplicaciones que se pueden hacer con los programas.
A continuación la forma básica de usar un PIC.
Descargar