Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Pic 12 F 508
Pic 12 F 508
Mdulo PIC12F5XX
Descubre todas las posibilidades de
este enano pero potente micro
V 1.00 Junio 2006
INGENIERIA DE MICROSISTEMAS
PROGRAMADOS S.L.
C/ Alda. Mazarredo N 47 - 1 Dpto. 2
48009 BILBAO - BIZKAIA
Tel/Fax: 94 4230651
email: info@microcontroladores.com
www.microcontroladores.com
0.3
0.4
OBJETIVOS
FUNDAMENTOS TEORICOS: El PIC12F508/509
0-1
0-1
0.2.1
0.2.2
0.2.3
0.2.4
0.2.5
0.2.6
0.2.7
0.2.8
0.2.9
0.2.10
0-1
0-2
0-2
0-3
0-4
0-6
0-6
0-7
0-8
0-9
Caractersticas generales
Diagrama de pines
La memoria de programa
El mapa de memoria de datos
Los registros especiales
El contador de programa
Direccionamiento del rea de datos
Los bits del registro de configuracin
Configuracin del oscilador
El reset
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
0-10
0-11
0.4.1
0.4.2
0.4.3
0-11
0-11
0-11
1.3
1.4
1.5
OBJETIVOS
FUNDAMENTOS TEORICOS
1-1
1-1
1.2.1
1.2.2
2.2.3
2.2.4
1-1
1-1
2-5
2-5
El registro TRIS
Conexin de las E/S
Configuracin del software
Tareas mas comunes
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
1-2
1-2
1.4.1
1.4.2
1.4.3
1.4.4
1.4.5
1-2
1-4
1-5
1-6
1-6
TRABAJO PERSONAL
1-7
1.5.1
1.5.2
1.5.3
1-7
1-7
1-7
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
2-1
2-2
2-2
i-1
DESARROLLO DE LA PRACTICA
2-2
2.4.1
2.4.2
2-2
2-3
3.5
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
3-1
3-1
3-2
3-2
3-2
TRABAJO PERSONAL
3-2
3-2
4.5
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
4-1
4-1
4-2
4-2
4.4.1
4.4.2
4.4.3
4-2
4-3
4-4
Modo temporizador
Modo contador de eventos externos
Ejemplo: Bomba de carga (doblador de tensin) mediante onda cuadrada
TRABAJO PERSONAL
4-5
4.5.1
4-5
4-5
4-6
4.5.2
5.5
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
5-1
5-1
5-2
5-2
5.4.1
5.4.2
5.4.3
5-2
5-3
5-3
TRABAJO PERSONAL
5-5
5.5.1
5.5.2
5.5.3
5-5
5-5
5-5
Evitar el desbordamiento
Temporizador
Temporizador programable
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
6-1
6-1
6-2
i-2
DESARROLLO DE LA PRACTICA
6-2
6.4.1
6.4.2
6.4.3
6.4.4
6.4.5
6-3
6-5
6-5
6-6
6-6
Transmitiendo un carcter
Transmitiendo mensajes
Transmisin / recepcin
Visualizacin remota de seales
Control remoto de salidas
7.5
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
7-1
7-1
7-3
7-3
7.4.1
7.4.2
7.4.3
7-3
7-4
7-6
TRABAJO PERSONAL
7-7
7.5.1
7.5.2
7-8
7-8
8.5
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
8-1
8-1
8-3
8-4
8.4.1
8.4.2
8.4.3
8.4.4
8-4
8-6
8-6
8-7
TRABAJO PERSONAL
8-8
OBJETIVOS
FUNDAMENTOS TEORICOS
MATERIALES NECESARIOS
DESARROLLO DE LA PRACTICA
9-1
9-1
9-2
9-2
9.4.1
9-2
9-4
9-5
9-5
9-5
9.4.2
9.4.3
9-6
9-6
OBJETIVOS
TRANSMISOR R.F. DE 4 CANALES
10-1
10-1
i-3
10.2
10-1
10-3
10-3
10-4
10.2.1
10.2.2
10.2.3
10.2.4
10-4
10-4
10-5
10-6
Fundamentos tericos
Materiales necesarios
Desarrollo de la prctica
Trabajo personal
LISTADO DE COMPONENTES
BIBLIOGRAFIA
1.2.3.4.5.6.7.8.-
Microcontroladores PIC, diseo prctico de aplicaciones, Primera parte. Ed. Mac Graw-Hill
Microcontroladores PIC, diseo prctico de aplicaciones, Segunda parte. Ed. Mc Graw-Hill
Curso prctico de Diseo con PIC, 1 parte. Ingeniera de Microsistemas Programados.
Curso prctico de Diseo con PIC, 2 parte. Ingeniera de Microsistemas Programados.
MPASM Users guide. Microchip
MPLAB Users guide. Microchip
PIC12F508 Data Sheet. Microchip
Manual de usuario del laboratorio PICSchool. Ingeniera de Microsistemas Programados.
i-4
i-5
i-6
2
1
18
17
9
16
15
14
5
TxD
D7
D6
D5
D4
E
R/W
RS
VCC
GND
RxD
BAUD
BLIGHT
VPP
DATA
CLK
8
7
3
6
4
13
12
SY M-20AA
N PIN
2
1
18
17
9
16
15
14
5
8
7
3
6
NOMBRE
D7
D6
D5
D4
E
R/W
RS
VCC
GND
TxD
RxD
BAUD
BLIGHT
4
13
12
Vpp
DATA
CLK
DESCRIPCION
Lnea de interface con el LCD
Lnea de interface con el LCD
Lnea de interface con el LCD
Lnea de interface con el LCD
Seal de habilitacin del LCD
Seal para la lectura/escritura del LCD
Seal de comandos y datos del LCD
Tensin de alimentacin de +5Vcc
Tensin de alimentacin GND
Transmisin de datos al Host
Recepcin de datos desde el Host
Seleccin de baudios. 0 = 9600, 1 = 19200
Salida para el control de la luz de fondo (si est
disponible en el LCD)
No conectar
No conectar
No conectar
7-1
15
16
7
8
9
10
11
12
13
14
D0
D1
D2
D3
D4
D5
D6
D7
RS
RW
E
4
5
6
GND
VCC
VLC
1
2
3
La
pantalla
del
laboratorio
PICSchool se va a conectar con el
controlador SYM20AA a travs de las
lneas D4-D7 para la transferencia de
datos y comandos. Tambin se conectan
las seales de control de flujo E, R/W y
RS con sus correspondientes del
controlador.
2
1
18
17
D7
D6
D5
D4
TxD
GP5(RxD)
disponibles.
0x7F 127
0x80 128 Display_ON: Activa el LCD y visualiza el contenido actual. Valor por defecto.
0.5mS
0x81 129 Display_OFF: Desactiva el LCD. La pantalla queda en blanco, pero el contenido
0.5mS
actual permanece intacto.
0x82 130 Cursor_ON: Visualiza el cursor en la posicin actual. Valor por defecto
0.5mS
0x83 131 Cursor_OFF: Desactiva la visualizacin del cursor
0.5mS
0x84 132 Blink_ON: Activa intermitencia del cursor
0.5mS
0x85 133 Blink_OFF: Desactiva la intermitencia del cursor. Valor por defecto
0.5mS
0x86 134 Backlight_ON: Activa la luz de fondo. Slo es vlido en pantallas LCD que dispongan 0.5mS
de dicha luz.
0x87 135 Backlight_OFF: Desactiva la luz de fondo. Valor por defecto
0.5mS
0x88 136 Shift_Right: Desplaza el cursor una posicin a la derecha sin borrar el carcter
0.5mS
actual
7-2
T.MAX.
0.5mS
0.5mS
Formato: 0x8A ff cc
ff = filas (entre 1 y 4)
cc = columnas (entre 1 y 40)
0x8B
Se verifica si las coordenadas indicadas estn fuera del rango establecido por el tipo
de LCD (Set_LCD), en cuyo caso se establecen las coordenadas por defecto (0-0)
139 Set_Char: Genera uno de los posibles caracteres grficos y los almacena en la
memoria interna del LCD.
0.5mS
Formato: 0x8B nn B0 B1 B2 B3 B4 B5 B6 B7
nn = nmero de identificacin del carcter.
B0-B7 = Son los bytes que definen la matriz.
0x8C
Si el sistema queda sin alimentacin los caracteres que haya definidos se borran, con
lo que habr que volver a repetir el proceso.
140 Sel_LCD: Ajusta el modelo de LCD disponible.
6mS
Formato: 0x8C ff cc
ff = Nmero de filas (entre 1 y 4)
cc = Nmero de columnas (entre 1 y 40)
Si un parmetro excede de los lmites, se toma el modelo por defecto (2x16). La
nueva configuracin slo se mantiene mientras el sistema est alimentado. La
ejecucin de este comando implica un borrado total de la pantalla y el
posicionamiento del cursor en la 1 posicin de la 1 fila.
Laboratorio PICSchool
PIC12F508
Controlador de LCD SYM20AA
Cables de conexin
7-3
Evaluacin de la prctica
Como es habitual se procede a ensamblar o compilar el programa fuente contenido en los ficheros ya
mencionados. El dispositivo lo grabaremos mediante el software de grabacin WinPIC800 o similar. El jumper JP4
debe estar en la posicin MCL y el conmutador en la posicin PC.
Una vez grabado podemos poner JP4 en la posicin GP3 (en esta ocasin no hace falta) y el conmutador
en la posicin RUN.
Se recomienda apagar y encender el entrenador para proceder correctamente con la secuencia interna de
inicio de la pantalla LCD. Se observar cmo van apareciendo los distintos caracteres ASCII de forma secuencial
y organizados en pginas de 32 caracteres. El proceso se repite de forma indefinida.
7.4.2 Implementando un Stack por software
Uno de las inconvenientes de los dispositivos PIC de gama baja en general y del PIC12F508 en particular,
es su limitado stack de 2 niveles. Como ya es sabido cada vez que en el programa de aplicacin se ejecuta un
salto a subrutina mediante la instruccin CALL, en el stack se salva automticamente el valor actual del PC y que
representa la direccin de retorno. Cuando al final de la subrutina se ejecuta la instruccin RETLW se recupera la
direccin guardada y el PC retorna al punto de partida.
7-4
0x0e
Cada salto a subrutina consumir una posicin de RAM por lo que es fcil calcular cuntos anidamientos
se pueden realizar segn la memoria disponible.
Para salvar la direccin de retorno empleamos el direccionamiento indirecto que guarda el valor actual del
PCL a partir de la posicin definida como inicio de stack:
;Esta macro implementa un stack por software. Cada vez que se usa, el valor
;actual del PC se salva mediante el reg. INDF, en una posicin RAM
NCALL
macro
movf
movwf
incf
goto
endm
Destino
PCL,W
INDF
FSR,F
Destino
Se carga el valor actual del PCL en el reg. W (movf PCL,W), este se salva de forma indirecta sobre la
posicin de memoria destinada al stack (movwf INDF), a continuacin se incrementa el puntero a la siguiente
direccin (incf FSR,F) y finalmente se salta a la direccin de destino (goto Destino). Estas cuatro instrucciones
sustituyen a la clsica instruccin CALL. Como puede que haya que usarlas en numerosas ocasiones, se agrupan
en torno a una macro llamada NCALL Destinoy as no hay que teclearlas cada vez.
Para recuperar la direccin de retorno se ejecuta siempre la misma secuencia de instrucciones:
;El retorno se produce recuperando de RAM, a travs del reg. INDF, el valor
;del PC al que se le aade +3 para apuntar a la siguiente instruccin justo
;despues de la ltima NCALL ejecutada.
Retorno
decf
movlw
addwf
movwf
FSR,F
3
INDF,W
PCL
7-5
7-6
7-7
AP18
GP5
GP3
GP2
RB6(GP1)
RB7(GP0)
E4
E3
E2
E1
E0
1
2
3
4
5
6
7
8
ENTRADAS DIGITALES
7-8