Vous êtes sur la page 1sur 49

TECNOLOGIA ELECTRONICA

UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

ndice
Introduccin ------------------------------------------------------------------------

Descripcin

------------------------------------------------------------------------

Programa en assembler --------------------------------------------------------

Diagrama de flujo -------------------------------------------------------------------

23

Diagrama del circuito ------------------------------------------------------------

24

Presentacin del proyecto terminado --------------------------------------

25

Problemas en la realizacin del proyecto --------------------------------

27

Apndice A

-------------------------------------------------------------------------

28

Apndice B

-------------------------------------------------------------------------

30

Apndice C

-------------------------------------------------------------------------

32

Apndice D

-------------------------------------------------------------------------

34

Conclusin

-------------------------------------------------------------------------

36

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Introduccin
El proyecto consiste en un cartel electrnico programable de matrices de leds.
Mediante un teclado de PC-AT se podrn ir ingresando los distintos caracteres, el
cual se podrn ir visualizando en la pantalla.
Esta compuesta de ocho matrices de leds 7x5 ctodo comn, lo cual formara una
matriz de 7 filas por 80 columnas.
El tamao mximo de caracteres del mensaje es de 128, que pueden ser desde
nmeros del 0-9, y letras desde A-Z minsculas y maysculas.
Dispondr de un microcontrolador PIC 16F873, el cual posee 4K de memoria de
programa, 192 bytes de memoria de datos, 128 bytes de memoria RAM, adems de
puertos de entrada/salida, etc. Este se utilizara para manejar todos los componentes
del proyecto como la memoria, las matrices, los codificadores, etc.
Se pueden visualizar dos tipos de mensajes, uno mensaje giratorio y otro de a frases
instantneas.
Se utilizara una memoria EEPROM de 2K byte, en ella se irn guardando los
distintos mensajes ingresados.
Posee 8 lugares de memoria, 4 para cada modo. Una vez apagado se volver a
mostrar el ultimo mensaje ingresado.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Descripcin
El objetivo del trabajo es poder visualizar dos tipos de mensajes, un mensaje
giratorio y otro que va aparecer de a frases instantneas. Los mensajes se
guardaran en la memoria I2C EEPROM (24C16), para poder ser utilizados
nuevamente, la conexin y funcionamiento se describe en el Apndice C. La
cantidad mxima de caracteres que se pueden escribir es de 128. El control del
cartel se har mediante un teclado de PC-AT, la descripcin de este es detallado en
el Apndice A. Los caracteres que se pueden visualizar son maysculas de la (A) a
la (Z), minsculas de la (a) a la (z) y los nmeros del (0) al (9). El control se va a
realizar mediante el microcontrolador PIC 16F873, (Apndice D), que ser el
encargado de manejar la memoria I2C EEPROM, el teclado, los decodificadores y
las matrices de leds.
Diseo Hardware
En el presente se describe el proceso que se ha llevado a cabo en el diseo lgico,
elctrico de la placa que contiene el Display objeto del trabajo.
El hardware que se quiere construir es un Cartel luminoso. Su tamao vendr
impuesto por el de las matrices de leds que se van a usar en su construccin. Una
descripcin detallada de estas matrices puede encontrarse en el Apndice B de este
trabajo. Para el diseo inicial se utilizo 8 matrices, no se utilizo mas matrices por
razn de costo, de forma que se tendr el control sobre 280 leds (7 x 5 x 8) por lo
que quedaran 13 seales digitales que son controladas por el microcontrolador PIC
16F873. El montaje final queda por tanto con 40 columnas y 7 filas.
El control de las matrices es multiplexado, de forma que las matrices se controlan
por filas y por columnas. Adems se debe tener en cuenta la conexin de los leds
en la matriz, que es de ctodo comn.
El diseo debe ser seguro. Esto quiere decir que ante una manipulacin incorrecta el
estado de los componentes no se vea alterado, ni destruido.
Diseo lgico y elctrico
Diseo lgico
Teniendo en cuenta las restricciones anteriores se comienza el diseo lgico del
circuito de control. En primer lugar se debe escoger la forma en que se va a realizar
el control sobre las matrices, teniendo en cuenta que se va a crear un display
lineal. Lo ideal sera poder controlar individualmente cada uno de los 280 leds, pero
para ello seran necesarias 47 seales de control, una por cada columna (40) y uno
por cada fila (7). El nmero es excesivo, as que se tendr que plantear otro
esquema de control. Se plantearon dos soluciones, codificar las columnas o las filas,
de forma que en un momento dado slo por una columna o por una fila pudiera
pasar corriente, permitiendo eso s el control individual de los leds de la fila o
columna por la que pasar corriente. De las dos opciones se ha escogido la
codificacin de las 40 columnas, con lo que en un instante determinado, slo en 1
columna de las 40, se puede iluminar alguno de los 7 leds que la componen. A
continuacin se procede a la codificacin de todas las seales de control necesarias.
Para codificar las 40 columnas se necesitan 6 seales de control. Lo normal sera

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

usar un decodificador de 6 a 48, pero al hacer el diseo fsico con una herramienta
beta, se usarn componentes ms sencillos que seguro estarn disponibles. En vez
de decodificadores 6 a 48, se usarn decodificadores 3 a 8, y en vez de un slo
decodificador se necesitarn 5 para codificar las 40 columnas. Esto no es suficiente
para mantener una sola columna activa, as que es necesario introducir un segundo
nivel de codificacin, en este caso, lo que se codifica son las seales enable de los
decodificadores anteriores para que slo 1 de los 5 anteriores este activo en un
momento dado. Con un decodificador 3 a 8 es suficiente para controlar los 5. Para el
primer nivel de codificacin introducido se necesitan 3 seales de control que se
conectaran a las entradas A, B y C de los 5 decodificadores. Los 5 comparten las
mismas seales. Para el segundo nivel de codificacin se necesitarn 3 seales,
para las entradas A, B y C del decodificador. Las salidas de este decodificador se
conectan con las entradas enable de los 5 decodificadores anteriores. El resto de
entradas se conectan a GND. Por otro lado se necesitan 7 seales, una por cada fila
del Display.
Una vez que se conoce el nmero de seales necesarias para el diseo se debe
realizar la conexin con los componentes, para ello se debe tener en cuenta el nivel
lgico de las seales. En primer lugar recordar que para iluminar un led es
necesario introducir una seal lgica alta (1) por el nodo y tener una seal lgica
baja (0) por el ctodo. Por tanto, dado que los ctodos estn unidos por las
columnas y son estas las que se han codificado, se situar la salida de cada
decodificador conectado a la columna de la matriz.
La salida ser activa a nivel bajo as que ser el decodificador 74138. Para el
decodificador de las seales enable al ser sta activa a nivel alto, se usar el
decodificador 74238. El resultado de las conexiones entre componentes y el diseo
lgico inicial se puede ver en la figura 1.
Diseo elctrico
Con la solucin anterior se ha resuelto el problema lgico de control usando un total
de 13 seales, si bien, ahora se debe resolver el problema elctrico, es decir el tema
de corrientes, resistencias y voltajes. Para ello, en primer lugar se elige la tecnologa
de los componentes auxiliares (decodificadores, ...) que se necesitarn, en este caso
se uso tecnologa TTL.
La forma que se ha escogido de control es por columnas y cada una esta conectada
a la salida de un decodificador. Cada decodificador debe manejar como mximo 7
leds por lo que se ha decidido introducir entre los ctodos y el codificador un par
darlington que es capaz de manejar hasta 550 mA. El circuito integrado que
proporciona estos darlington es el ULN2003.
El uso del par darlington provoca que se cambie el nivel de la seal lgica de
control. Antes, para que el led se encendiera deba entrar un 0 y este era
proporcionado directamente por el decodificador, en cambio, ahora es el darlington
el que se lo proporciona pero ste requiere de un 1 a su entrada por lo que se
deben de cambiar los 5 decodificadores con salidas a nivel bajo por decodificadores
con salida a nivel alto (74238). En la figura 2 se ve el conexionado.
Por otro lado las seales que controlan las filas como mximo alimentan a un led,
por lo que fue necesario colocar entre las filas y el puerto B del PIC un 74HC241 que
es un amplificador de corriente. En la figura 3 se muestra el puerto B del PIC
conecto con el 74HC241 y las filas de los leds.
Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

U2

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

15
14
13
12
11
10
9
7

SEAL 08
SEAL 09
SEAL 10

U3

SEAL 11
SEAL 12
SEAL 13

FIGURA 1

E1
E2
E3
6
4
5

1
2
3

A
B
C

74HC238

E1
E2
E3
6
4
5

1
2
3

A
B
C

E1
E2
E3

74ALS138

6
4
5

A
B
C
1
2
3

COL 40

COL 39

COL 37

15
14
13
12
11
10
9
7
Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

U1
74ALS138

Cingolani Ariel Jorge

COL 38

FILA07

COL 01

SEAL 07

FILA06

15
14
13
12
11
10
9
7

SEAL 06

FILA05

COL 06

SEAL 05

FILA04

COL 05

SEAL 04

FILA03

COL 04

SEAL 03

FILA02

COL 03

SEAL 02

FILA01

COL 02

SEAL 01

TECNOLOGIA ELECTRONICA

COM
1C
2C
3C
4C
5C
6C
7C

COL 40

COL 39

ULN2003A

1
2
3
4
5
6
7
15
14
13
12
11
10
9
7

U3

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

Y0
Y1
Y2
Y3
Y4
Y5
Y6
Y7

15
14
13
12
11
10
9
7

1
2
3
4
5
6
7

U4

E1
E2
E3
6
4
5

1
2
3

A
B
C

E1
E2
E3

74HC238

6
4
5

A
B
C

U2

1B
2B
3B
4B
5B
6B
7B

ULN2003A

74HC238

1
2
3

COL 38

9
16
15
14
13
12
11
10

COL 37

COL 06

COL 04

COL 03

COL 02

COL 05

U1

1B
2B
3B
4B
5B
6B
7B

COM
1C
2C
3C
4C
5C
6C
7C

9
16
15
14
13
12
11
10

COL 01

UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

FIGURA 2

FILA01

FILA02

U2
9
10
1
2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT

21
22
23
24
25
26
27
28
11
12
13
14
15
16
17
18

U1
SEAL 01
SEAL 02
SEAL 03
SEAL 04
SEAL 05
SEAL 06
SEAL 07

2
4
6
8
11
13
15
17

1A0
1A1
1A2
1A3
2A0
2A1
2A2
2A3

1
19

1OE
2OE

1Y0
1Y1
1Y2
1Y3
2Y0
2Y1
2Y2
2Y3

18
16
14
12
9
7
5
3

FILA03

FILA04

FILA05

74ALS241

FILA06

PIC16F873

COL 01

FILA07

FIGURA 3

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Programa en assembler
List p=16F873
INCLUDE "P16F873.INC" ;Definiciones de registros internos
errorlevel -302
Doble_DATAIN EQU
0x20
ASCII
EQU
0x21
BANDERAS
EQU
0x22
SALTO
EQU
0x23
GIRAR
EQU
0x24
CONTADOR2
EQU
0x25
#DEFINE
BANDERAS_CAPS BANDERAS,0
Nbits
EQU
0x26
Nbytes
EQU
0x27
NO_ROTAR
EQU
0x28
KeyRtn
EQU
0x29
DATAIN
EQU
0x2a
#DEFINE
KBD_CLK PORTB,0
#DEFINE
KBD_DATO PORTC,0
#DEFINE
BIT_ACTUAL DATAIN,7
STATUS_TEMP EQU
0x2b
W_TEMP
EQU
0x2c
CUENTAS
EQU
0x2d
CARACTER
EQU
0x2e
RESTADOR
EQU
0x2f
RESTADOR1
EQU
0x30
TIEMPO
EQU
0x31
SAL
EQU
0x32
saltar
EQU
0x33
Delay_Cont EQU
0x34
#DEFINE banco_0 bcf STATUS,5 ; Banco 1 de RAM
#DEFINE banco_1 bsf STATUS,5 ; Banco 0 de RAM
cblock 0x35
Direccion,Dato,Banderas,Copia,restador,retardo,valor,cont,fila,fila1,GIRAR1,cuanto,memoria,comp
endc
org

0x00

goto
INICIO
org
0x04
MOVWF W_TEMP
SWAPF STATUS,W
MOVwf STATUS_TEMP
CALL
LEER_TECLADO
bcf
INTCON,INTF
SWAPF STATUS_TEMP,W
MOVWF STATUS
SWAPF W_TEMP,F
SWAPF W_TEMP,W
RETFIE
TABLA0

addwf 02h,1
RETLW 0xFE
RETLW 0xFF
RETLW 0xFD
RETLW 0xFC
RETLW 0xA9
RETLW 0
RETLW 0
RETLW 0x50 ;q
RETLW 0x86 ;1
RETLW 0
RETLW 0
RETLW 0
RETLW 0x7e ;z

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW

0x59 ;s
0x01 ;a
0x6d ;w
0x8A ;2
0
0
0X0b ;c
0x73 ;x
0x10 ;d
0x15 ;e
0X94 ;4
0X8F ;3
0
0
0x83 ;ESPACIO
0x67 ;v
0x1a ;f
0x5e ;t
0x55 ;r
0X9A ;5
0
0
0x40 ;n
0x06 ;b
0x23 ;h
0x1e ;g
0x79 ;y
0XA0 ;6
0
0
0
0x3a ;m
0x2c ;j
0x62 ;u
0XA6 ;7
0XAB ;8
0
0
0
0x31 ;k
0x28 ;i
0x45 ;o
0XB7 ;0
0XB1 ;9
0
0
0
0
0x36 ;l
0
0x4b ;p
0
0
0
0
0
0
0
0
0
0
0
0
0X0A
0
0
0x08
0
0
0
0

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
RETLW
RETLW
RETLW
RETLW
RETLW

Tabla

0
0
0
0
0x08 ;borrar

addwf 02h,1
nop
RETLW 3Fh
RETLW 48h
RETLW 48h
RETLW 48h
RETLW 3Fh
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 49h
RETLW 3Eh
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 41h
RETLW 41h
RETLW 22h
RETLW 00h
RETLW 7Fh
RETLW 41h
RETLW 41h
RETLW 41h
RETLW 3Eh
RETLW 00h
RETLW 7Fh
RETLW 49h
RETLW 49h
RETLW 49h
RETLW 41h
RETLW 00h
RETLW 7Fh
RETLW 48h
RETLW 48h
RETLW 48h
RETLW 40h
RETLW 00h
RETLW 3Eh
RETLW 41h
RETLW 49h
RETLW 49h
RETLW 2Eh
RETLW 00h
RETLW 7Fh
RETLW 08h
RETLW 08h
RETLW 08h
RETLW 7Fh
RETLW 00h
RETLW 41h
RETLW 41h
RETLW 7Fh
RETLW 41h
RETLW 41h
RETLW 00h
RETLW 02h
RETLW 01h
RETLW 41h
RETLW 7Eh
RETLW 40h
RETLW 00h
RETLW 7Fh
RETLW 08h
RETLW 14h
RETLW 22h

;A

;B

;C

;D

;E

;F

;G

;H

;I

;J

;K

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW

41h
00h
7Fh
01h
01h
01h
01h
00h
7Fh
20h
18h
20h
7Fh
00h
7Fh
10h
08h
04h
7Fh
00h
3Eh
41h
41h
41h
3Eh
00h
7Fh
48h
48h
48h
30h
00h
3Eh
41h
45h
42h
3Dh
00h
7Fh
48h
4Ch
4Ah
31h
00h
32h
49h
49h
49h
26h
00h
40h
40h
7Fh
40h
40h
00h
7Eh
01h
01h
01h
7Eh
00h
7Ch
02h
01h
02h
7Ch
00h
7Eh
01h
0Eh
01h
7Eh

;L

;M

;N

;O

;P

;Q

;R

;S

;T

;U

;V

;W

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
NOP

TABLA1

00h
63h
14h
08h
14h
63h
00h
70h
08h
07h
08h
70h
00h
43h
45h
49h
51h
61h
00h

;X

;Y

;Z

addwf 02h,1
RETLW 0
RETLW 0
RETLW 0
RETLW 0
RETLW 0xA9
RETLW 0
RETLW 0
RETLW 0x61 ;Q
RETLW '1'
RETLW 0
RETLW 0
RETLW 0
RETLW 0x97 ;Z
RETLW 0x6d ;S
RETLW 0x01 ;A
RETLW 0x85 ;W
RETLW '2'
RETLW 0
RETLW 0
RETLW 0X0d ;C
RETLW 0x8b ;X
RETLW 0x13 ;D
RETLW 0x19 ;E
RETLW '4'
RETLW '3'
RETLW 0
RETLW 0
RETLW 0x9d ;espacio
RETLW 0x7f ;V
RETLW 0x1f ;F
RETLW 0x73 ;T
RETLW 0x67 ;R
RETLW '5'
RETLW 0
RETLW 0
RETLW 0x4f ;N
RETLW 0x07 ;B
RETLW 0x2b ;H
RETLW 0x25 ;G
RETLW 0x91 ;Y
RETLW '&'
RETLW 0
RETLW 0
RETLW 0
RETLW 0x49 ;M
RETLW 0x37 ;J
RETLW 0x79 ;U
RETLW '7'
RETLW '8'
RETLW 0

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW

Tabla1

0
0
0x3d ;K
0x31 ;I
0x55 ;O
0
0
0
0
0
0
0x43 ;L
0
0x5b ;P

addwf 02h,1
nop
RETLW 02h
RETLW 15h
RETLW 15h
RETLW 0Eh
RETLW 00h
RETLW 7Fh
RETLW 11h
RETLW 11h
RETLW 0Eh
RETLW 00h
RETLW 0Eh
RETLW 11h
RETLW 11h
RETLW 11h
RETLW 00h
RETLW 0Eh
RETLW 11h
RETLW 11h
RETLW 7Fh
RETLW 00h
RETLW 0Eh
RETLW 15h
RETLW 15h
RETLW 0Ch
RETLW 00h
RETLW 08h
RETLW 3Fh
RETLW 48h
RETLW 00h
RETLW 18h
RETLW 25h
RETLW 25h
RETLW 1Eh
RETLW 00h
RETLW 7Fh
RETLW 10h
RETLW 10h
RETLW 0Fh
RETLW 00h
RETLW 11h
RETLW 5Fh
RETLW 01h
RETLW 00h
RETLW 02h
RETLW 01h
RETLW 11h
RETLW 5Eh
RETLW 00h
RETLW 7Fh
RETLW 04h
RETLW 0Ah
RETLW 11h
RETLW 00h
RETLW 41h
RETLW 7Fh

;a

;b

;c

;d

;e

;f

;g

;h

;i

;j

;k

;l

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW

01h
00h
1Fh
10h
0Ch
10h
0Fh
00h
1Fh
08h
10h
0Fh
00h
0Eh
11h
11h
11h
0Eh
00h
1Fh
14h
14h
08h
00h
08h
14h
14h
1Fh
00h
1Fh
08h
10h
00h
09h
15h
15h
12h
00h
10h
7Eh
11h
00h
1Eh
01h
01h
1Fh
00h
1Ch
02h
01h
02h
1Ch
00h
1Eh
01h
06h
01h
1Eh
00h
11h
0Ah
04h
0Ah
11h
00h
1Dh
05h
05h
1Eh
00h
11h
13h
15h

;m

;n

;o

;p

;q

;r

;s

;t

;u

;v

;w

;x

;y

;z

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW
RETLW

19h
00h
80h
80h
00h
21h
7Fh
01h
00h
23h
45h
49h
31h
00h
41h
51h
69h
46h
00h
0Ch
14h
24h
7Fh
04h
00h
72h
51h
51h
51h
4Eh
00h
1Eh
29h
49h
49h
06h
00h
40h
47h
48h
70h
00h
36h
49h
49h
49h
36h
00h
30h
49h
49h
4Ah
3Ch
00h
3Eh
45h
49h
51h
3Eh
00h

;espacio

;1

;2

;3

;4

;5

;6

;7

;8

;9

;0

INICIO
clrf
PORTB
clrf
PORTA
bsf
STATUS,RP0
MOVLW b'00000001'
MOVWF TRISB
movlw b'00000110'
movwf ADCON1
MOVLW b'00000000'
MOVWF TRISA
MOVLW b'11111111'
MOVWF TRISC

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

borrar

MOVLW b'10000111'
MOVWF OPTION_REG
movlw b'10000000' ; La velocidad para la EEPROM sera de 100 Kc.
movwf SSPSTAT
movlw .9
movwf SSPADD
bcf
STATUS,RP0
movlw b'00101000'
movwf SSPCON
clrf
BANDERAS
clrf
cuanto
clrf
PCLATH
clrf
Nbits
clrf
Nbytes
clrf
fila
clrf
GIRAR1
clrf
fila1
clrf
DATAIN
clrf
NO_ROTAR
clrf
saltar
clrf
SALTO
movlw 0x02
movwf GIRAR
clrf
Direccion
clrf
valor
MOVLW b'10010000'
MOVWF INTCON
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
borrar
GOTO
LAZO_LECTURA

mal
decf fila
decf Direccion
decf Direccion
CLRF KeyRtn
CLRF ASCII
CLRF Nbytes
goto Ru12

Cambiar clrf RESTADOR


Cambiar1 incf RESTADOR
movlw 0x02
subwf cont,1
btfsc STATUS,Z
goto Cam
btfsc STATUS,C
goto Cambiar1
Cam
movf RESTADOR,0
sublw 0x14
btfss STATUS,C
goto mal
btfsc STATUS,Z
goto LIMPIAR
movwf RESTADOR

Cambiar2
call ROTO1
clrf 0x4E
decfsz RESTADOR
goto Cambiar2
goto LIMPIAR

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
Ru12

movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
bor
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
bor
clrf PCLATH
movf fila,0
movwf fila1
clrf cont
clrf Direccion
movf GIRAR1,0
addwf Direccion,1
Ru121
call Recibir_Byte
movf Dato,0
movwf saltar
xorlw 0x01
btfss STATUS,Z
goto Ru112
incf PCLATH
incf Direccion
call Recibir_Byte
incf Direccion
Ru32
incf cont
call ROTO1
movf Dato,0
call Tabla1
movwf CARACTER
;W contains table data - put it in 15h
movwf 0x4E
incf Dato,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto Ru32
clrf PCLATH
decfsz fila1
goto Ru121
goto Cambiar
Ru112

incf Direccion
call Recibir_Byte
incf Direccion
movf Dato,0
xorlw 0x97
btfsc STATUS,Z
incf PCLATH
Ru312
incf cont
call ROTO1
movf Dato,0
call Tabla
movwf CARACTER
movwf 0x4E
incf Dato,1
movf CARACTER,0
clrf PCLATH
decfsz fila1,1
goto Ru121
goto Cambiar
A12

bsf
movf
bcf
movwf
movlw
movwf
movlw
movwf
Aor1
clrf
incf
decfsz
goto

;W contains table data - put it in 15h

STATUS,RP1
;Pasamos al banco 2
EEADR,0
;Siguiente direccin EEPROM
STATUS,RP1
cuanto
0x4E
FSR
0x28
RESTADOR
INDF
FSR,F
RESTADOR
Aor1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
bsf
INTCON,GIE
clrf
PCLATH
clrf
cont
A121
bsf STATUS,RP1
call
EE_Read
bsf STATUS,RP1
movf EEDATA,0
bcf STATUS,RP1
xorlw 0xFF
,RP1
movf EEDATA,0
bcf STATUS,RP1
movwf CUENTAS
A32
call ROTO1
movf CUENTAS,0
call Tabla1
movwf CARACTER
;W contains table data - put it in 15h
movwf 0x4E
incf CUENTAS
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto A32
bsf STATUS,RP1
;Pasamos al banco 2
incf
EEADR,F ;Siguiente direccin EEPROM
bcf STATUS,RP1
clrf PCLATH
goto A121
escribir1

movf
GIRAR1,0
xorlw 0x00
btfsc STATUS,Z
goto
LIMPIAR2
movf
fila1,0
xorlw 0x07
btfsc STATUS,Z
goto
LIMPIAR2
incf
fila1
goto
SIGUE

escribir2

CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
movlw 0xFF
bsf STATUS,RP1
movwf EEDATA

Z
goto
escribir3
movf
GIRAR,0
xorlw 0x04
btfsc STATUS,Z
clrf
GIRAR
clrf
GIRAR
clrf
GIRAR1
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
Aor123
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
Aor123
goto
LIMPIAR
escribir3
movlw 0x01
movwf GIRAR
clrf
GIRAR1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
Aor124
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
Aor124
goto
LIMPIAR
lim1

CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
clrf
comp
bsf
INTCON,GIE
goto
muestra

escribir

bcf
INTCON,GIE
MOVF
KeyRtn,W
xorwf comp
btfsc STATUS,Z
goto
lim1
MOVF
KeyRtn,W
movwf comp
MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
goto
INICIO
movf
GIRAR1,0
xorlw 0x00
btfss STATUS,Z
goto
escribir2
incf
GIRAR1
movf
cuanto,0
bsf
STATUS,RP1
;Pasamos al banco 2
movwf EEADR
;Siguiente direccin EEPROM
bcf
STATUS,RP1
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
Aor12
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
Aor12
goto
LIMPIAR2
Rn1
incf PCLATH
movf CUENTAS,0
bsf STATUS,RP1
movwf EEDATA
bcf STATUS,RP1
call EE_Write
bsf
STATUS,RP1
;Pasamos al banco 2
incf
EEADR,F
;Siguiente direccin EEPROM
bcf
STATUS,RP1
Rn3
call ROTO1
movf CUENTAS,0
call Tabla1
movwf CARACTER
movwf 0x4E
incf CUENTAS,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto Rn3
clrf PCLATH
goto LIMPIAR2
escribir21

bsf

;W contains table data - put it in 15h

INTCON,GIE

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
movf
xorlw
btfsc
goto
movf
xorlw
btfsc
clrf
clrf
CLRF
CLRF
CLRF
goto

GIRAR,0
0x03
STATUS,Z
escribir31
GIRAR,0
0x04
STATUS,Z
GIRAR
GIRAR
KeyRtn
ASCII
Nbytes
GIRATORIO1

escribir31 CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
movlw 0x01
movwf GIRAR
goto
repro1
lim

CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
clrf
comp
bsf
INTCON,GIE
goto
muestra1

escr

bcf
INTCON,GIE
MOVF
KeyRtn,W
xorwf comp
btfsc STATUS,Z
goto
lim
MOVF
KeyRtn,W
movf
comp
MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
goto
INICIO
MOVF
KeyRtn,W
xorlw 0x04
btfsc STATUS,Z
goto
escribir21
MOVF
KeyRtn,W
xorlw 0x0C
btfsc STATUS,Z
goto
escribir
MOVF
KeyRtn,W
xorlw 0x16
btfsc STATUS,Z
goto
escr1
MOVF
KeyRtn,W
xorlw 0x1E
btfsc STATUS,Z
goto
escr1
MOVF
KeyRtn,W
xorlw 0x26
btfsc STATUS,Z
goto
escr1
MOVF
KeyRtn,W
xorlw 0x25
btfsc STATUS,Z
goto
escr1
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
goto
muestra1
movf
GIRAR,0
xorlw 0x03
btfsc STATUS,Z
goto
fase10
goto
fase20

escr1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
muestra1
CLRWDT
clrf
fila1
DECFSZ Nbytes,W
goto
Bis4
goto
escr
Bis4
clrf
comp
movf
GIRAR,0
xorlw 0x02
btfsc STATUS,Z
goto
LAZO_LECTURA
movf
GIRAR,0
xorlw 0x01
btfsc STATUS,Z
goto
fase1
movf
GIRAR,0
xorlw 0x00
btfsc STATUS,Z
goto
fase2
Bis3
movlw 0x05
movwf retardo
movlw 0x10
movwf RESTADOR1
Bis2
movlw 0x23
movwf PORTA
movlw 0x28
movwf RESTADOR
movlw 0x75
movwf FSR
Bis1
rlf INDF,0
movwf PORTB
call RETARDO
decf FSR,F
decfsz RESTADOR,1
goto Bis1
decfsz RESTADOR1,1
goto Bis2
goto muestra1
muestra

Ais4

Ais3

CLRWDT
DECFSZ Nbytes,W
goto
Ais4
goto
escribir
movf
GIRAR,0
xorlw 0x02
btfsc STATUS,Z
goto
LAZO_LECTURA
movf
GIRAR,0
xorlw 0x01
btfsc STATUS,Z
goto
fase1
movf
GIRAR,0
xorlw 0x00
btfsc STATUS,Z
goto
fase2
movlw 0x05
movwf retardo
movlw 0x10
movwf RESTADOR1

Ais2

Ais1

movlw 0x23
movwf PORTA
movlw 0x28
movwf RESTADOR
movlw 0x75
movwf FSR
rlf INDF,0
movwf PORTB
call RETARDO
decf FSR,F
decfsz RESTADOR,1
goto Ais1
decfsz RESTADOR1,1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
goto Ais2
goto muestra

fase1
fase10

DECFSZ Nbytes,W
goto
fase1
MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
goto
INICIO
MOVF
KeyRtn,W
xorlw 0x16
btfsc STATUS,Z
goto
fase11
MOVF
KeyRtn,W
xorlw 0x1E
btfsc STATUS,Z
goto
fase12
MOVF
KeyRtn,W
xorlw 0x26
btfsc STATUS,Z
goto
fase13
MOVF
KeyRtn,W
xorlw 0x25
btfsc STATUS,Z
goto
fase14
goto
fase1

fase11

movlw 0x03
movwf GIRAR
movlw 0x00
movwf memoria
bsf
STATUS,RP1
clrf
EEADR
bcf
STATUS,RP1
goto
A12

fase12

movlw 0x03
movwf GIRAR
movlw 0x02
movwf memoria
movlw 0x08
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

fase13

movlw 0x03
movwf GIRAR
movlw 0x04
movwf memoria
movlw 0x10
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

fase14

movlw 0x03
movwf GIRAR
movlw 0x06
movwf memoria
movlw 0x18
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

fase2

DECFSZ Nbytes,W
goto
fase2
MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
goto
INICIO

fase20

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
MOVF
xorlw
btfsc
goto
MOVF
xorlw
btfsc
goto
MOVF
xorlw
btfsc
goto
MOVF
xorlw
btfsc
goto
goto

KeyRtn,W
0x16
STATUS,Z
fase21
KeyRtn,W
0x1E
STATUS,Z
fase22
KeyRtn,W
0x26
STATUS,Z
fase23
KeyRtn,W
0x25
STATUS,Z
fase24
fase2

fase21

movlw 0x04
movwf GIRAR
movlw 0x08
movwf memoria
movlw 0x20
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

fase22

movlw 0x04
movwf GIRAR
movlw 0x0A
movwf memoria
movlw 0x28
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

fase23

movlw 0x04
movwf GIRAR
movlw 0x0C
movwf memoria
movlw 0x30
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

fase24

movlw 0x04
movwf GIRAR
movlw 0x0E
movwf memoria
movlw 0x38
bsf
STATUS,RP1
movwf EEADR
bcf
STATUS,RP1
goto
A12

LAZO_LECTURA
Vis

Vis4

Vis3

CLRWDT
DECFSZ Nbytes,W
goto
Vis4
goto
SIGUE1
movf
GIRAR,0
xorlw 0x02
btfsc STATUS,Z
goto
LAZO_LECTURA
movlw 0x05
movwf retardo
movlw 0x10
movwf RESTADOR1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
Vis1

rlf INDF,0
movwf PORTB
call RETARDO
decf FSR,F
decfsz RESTADOR,1
goto Vis1
decfsz RESTADOR1,1
goto Vis2
goto Vis

F1

movlw 0x09
addwf KeyRtn,1
return

F2

movlw 0x0C
addwf KeyRtn,1
return

F3

movlw 0x65
subwf KeyRtn,1
return

SIGUE1
bcf
INTCON,GIE
MOVF
KeyRtn,W
xorlw 0x04
btfsc STATUS,Z
call
F2
MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
call
F3
MOVF
KeyRtn,W
xorlw 0x05
btfsc STATUS,Z
call
F1
MOVF
KeyRtn,W
xorlw 0x06
btfsc STATUS,Z
call
F1
MOVF
KeyRtn,W
subwf SALTO
btfsc STATUS,Z
goto
LIMPIAR1
MOVF
KeyRtn,W
movwf SALTO
SUBLW 0x0d
BTFSC STATUS,C
goto
LIMPIAR
MOVF
KeyRtn,W
SUBLW 0x67
BTFSC STATUS,C
goto
SIGUE
goto
LIMPIAR
SIGUE
MOVLW 0x0e
subwf KeyRtn,0
BTFSC BANDERAS_CAPS
goto
TBL_MAY
TBL_MIN
CALL
movwf
xorlw
btfsc
xorlw
btfsc
goto
movf
xorlw
btfsc

TABLA0
CUENTAS
0xB7
STATUS,Z
0x03
STATUS,Z
Rn1
GIRAR,0
0x04
STATUS,Z

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
goto
Rn1
goto
FIN_TABLA
TBL_MAY
incf
PCLATH
clrf
BANDERAS
CALL
TABLA1
movwf CUENTAS
xorlw 0x97
btfss STATUS,Z
clrf
PCLATH
clrf
saltar
movf
CUENTAS,0
goto
FIN_TABLA
retardo2 movlw 0xff
movwf Delay_Cont
call Delay_var ;Temporiza 1 segundo
return
retardo1
movlw 0x10
movwf Delay_Cont
call Delay_var ;Temporiza 1 segundo
return
Delay_var: bcf INTCON,T0IF ;Desconecta el flag de rebosamiento
movlw d'248'
;Complemento hex. de 195
movwf TMR0
;carga el TMR0
Intervalo
btfss INTCON,T0IF ;Rebasamiento del TMR0 ??
goto Intervalo ;Todava no
decfsz Delay_Cont,F ;Decrementa contador de intervalos
goto Delay_var ;Repite el intervalo de 50 mS
return
FIN_TABLA
movf
xorlw
btfsc
goto
movf
xorlw
btfsc
goto
movf
xorlw
btfsc
goto
xorlw
btfsc
goto
movf
xorlw
btfsc
goto
goto
FIN_TABLA1
comf
andlw
movwf
btfsc
nop
btfsc
goto
nop
goto
ESCAPE
ejecutar

CUENTAS,0
0xA9
STATUS,Z
FIN_TABLA1
CUENTAS,0
0x0A
STATUS,Z
ENTER
CUENTAS,0
0xFC
STATUS,Z
ESCAPE
0xFE
STATUS,Z
ejecutar
CUENTAS,0
0xFF
STATUS,Z
ejecutar1
CARACTER_ASCII
BANDERAS,W
0x01
BANDERAS
BANDERAS_CAPS
BANDERAS_CAPS
LIMPIAR
LIMPIAR

goto

INICIO

NOP
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
bsf
decf
goto

INTCON,GIE
GIRAR
fase1

ejecutar1

NOP
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
bsf
INTCON,GIE
clrf
GIRAR
goto
fase2

repro

bsf
CLRF
CLRF
CLRF
movf
xorlw
btfsc
goto
movf
xorlw
btfsc
goto
movf
xorlw
btfsc
goto
movlw
movwf
call
call
incf
movlw
movwf
call
call

INTCON,GIE
KeyRtn
ASCII
Nbytes
GIRAR,0
0x00
STATUS,Z
ENTER
GIRAR,0
0x04
STATUS,Z
GIRATORIO1
GIRAR,0
0x03
STATUS,Z
repro1
0xFF
Dato
Enviar_Byte
retardo1
Direccion
0xFF
Dato
Enviar_Byte
retardo1

repro1

Viss3

viss31

clrf
Direccion
goto
R12
DECFSZ Nbytes,W
goto
viss31
goto
esc1
movlw 0x05
movwf retardo
movlw 0xFF
movwf RESTADOR1

Viss2

Viss1

V1

movlw 0x23
movwf PORTA
movlw 0x28
movwf RESTADOR
movlw 0x75
movwf FSR
rlf
INDF,0
movwf PORTB
call
RETARDO
decf
FSR,F
decfsz RESTADOR,1
goto
Viss1
decfsz RESTADOR1,1
goto
Viss2
call
Recibir_Byte
movf
Dato,0
xorlw 0xFF
btfss STATUS,Z
goto
R12
movlw 0x03
movwf RESTADOR1
call
retardo2
decfsz RESTADOR1
goto
V1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
goto
esc1

repro1

MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
goto
INICIO
goto
viss31

Cambia incf Direccion


clrf RESTADOR
Cambia1 incf RESTADOR
movlw 0x02
subwf cont,1
btfsc STATUS,Z
goto Ca
btfsc STATUS,C
goto Cambia1
Ca
movf RESTADOR,0
sublw 0x14
btfss STATUS,C
goto Viss3
btfsc STATUS,Z
goto Viss3
movwf RESTADOR

Cambia2
call ROTO1
clrf 0x4E
decfsz RESTADOR
goto Cambia2
goto Viss3
R12

movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
bor1
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
bor1
clrf PCLATH
clrf cont
R121
call Recibir_Byte
movf Dato,0
xorlw 0xFF
btfsc STATUS,Z
goto Cambia
,Z

R32

R112

goto R112
incf PCLATH
incf Direccion
call Recibir_Byte
incf Direccion
incf cont
call ROTO1
movf Dato,0
call Tabla1
movwf CARACTER
movwf 0x4E
incf Dato,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto R32
clrf PCLATH
goto R121

incf Direccion

Cingolani Ariel Jorge

;W contains table data - put it in 15h

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
call Recibir_Byte
incf Direccion
movf Dato,0
xorlw 0x97
btfsc STATUS,Z
incf PCLATH
R312
incf cont
call ROTO1
movf Dato,0
call Tabla
movwf CARACTER
movwf 0x4E
incf Dato,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto R312
clrf PCLATH
decfsz fila1,1
goto R121

;W contains table data - put it in 15h

ENTER
NOP
CLRF
CLRF
CLRF
bsf
movlw
movwf
call
call
movf
xorlw
btfsc
goto
movf
xorlw
btfsc
goto
goto

KeyRtn
ASCII
Nbytes
INTCON,GIE
0xFF
Dato
Enviar_Byte
retardo1
GIRAR,0
0x00
STATUS,Z
GIRATORIO1
GIRAR,0
0x01
STATUS,Z
ENTER1
LIMPIAR

ENTER1

borr1

BOR

borr

incf
Direccion
movf
Direccion,0
movwf GIRAR1
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
borr1
clrf
fila
goto
LIMPIAR
movf
fila,0
xorlw 0x00
btfsc STATUS,Z
movlw 0x28
movwf RESTADOR
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
borr
clrf
Direccion
goto
LIMPIAR

BORRAR
movf
GIRAR,0
xorlw 0x01
btfsc STATUS,Z
goto
BOR

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
movlw 0x09
movwf RESTADOR
clrf
cont
movf
Direccion,0
movwf valor
xorlw 0x02
btfsc STATUS,Z
goto
BORRAR1
movf
Direccion,0
movwf valor
xorlw 0x00
btfsc STATUS,Z
goto
BORRAR1
BORRAR2
movlw 0x02
subwf valor,1
incf
cont
movf
valor,0
xorlw 0x00
btfsc STATUS,Z
goto
BORRAR3
decfsz RESTADOR,1
goto
BORRAR2
goto
BORRAR3
BORRAR1
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
borrar1
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
borrar1
clrf
Direccion
goto
LIMPIAR
BORRAR3
decf
cont,1
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
borrar3
clrf
INDF
incf
FSR,F
decfsz RESTADOR
goto
borrar3
movf
valor,0
movwf Direccion

Ru1

Ru3

call Recibir_Byte
movf Dato,0
movwf saltar
xorlw 0x01
btfss STATUS,Z
goto Ru11
incf PCLATH
incf Direccion
call Recibir_Byte
incf Direccion
call ROTO1
movf Dato,0
call Tabla1
movwf CARACTER
movwf 0x4E
incf Dato,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto Ru3
clrf PCLATH
decfsz cont,1
goto Ru1
goto LIMPIAR

Cingolani Ariel Jorge

;W contains table data - put it in 15h

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Ru11

incf Direccion
call Recibir_Byte
incf Direccion
movf Dato,0
xorlw 0x97
btfsc STATUS,Z
incf PCLATH
Ru31
call ROTO1
movf Dato,0
call Tabla
movwf CARACTER
movwf 0x4E
incf Dato,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto Ru31
clrf PCLATH
decfsz cont,1
goto Ru1
goto LIMPIAR

CARACTER_ASCII
Run1
movf
GIRAR,0
xorlw 0x04
btfsc STATUS,Z
goto
LIMPIAR2
movf
GIRAR,0
xorlw 0x03
btfsc STATUS,Z
goto
LIMPIAR2
incf fila
movf saltar,0
call retardo1
incf Direccion
movf CUENTAS,0
movwf Dato
call Enviar_Byte
call retardo1
incf Direccion
movf GIRAR,0
xorlw 0x01
btfsc STATUS,Z
goto Ru12
Run3
call ROTO1
movf CUENTAS,0
call Tabla1
movwf CARACTER
movwf 0x4E
incf CUENTAS,1
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto Run3
clrf PCLATH
goto LIMPIAR

movf
xorlw
btfsc
goto

;W contains table data - put it in 15h

;W contains table data - put it in 15h

GIRAR,0
0x01
STATUS,Z
Ru12

Run31
call ROTO1
movf CUENTAS,0
call Tabla
movwf CARACTER
movwf 0x4E
incf CUENTAS,1
movf CARACTER,0

Cingolani Ariel Jorge

;W contains table data - put it in 15h

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
xorlw
btfss
goto
goto

0x00
STATUS,Z
Run31
LIMPIAR

ROTO1
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
movf
movwf
return
grabar

74h,0
75h
73h,0
74h
72h,0
73h
71h,0
72h
70h,0
66h,0
67h
65h,0
66h
64h,0
65h
63h,0
64h
62h,0
63h
61h,0
62h
60h,0
61h
5Fh,0
60h
5Eh,0
5Fh
5Dh,0
5Eh
5Ch,0
5Dh
5Bh,0
5Ch
5Ah,0
5Bh
59h,0
5Ah
58h,0
59h
57h,0
58h
56h,0
57h
55h,0
56h
54h,0
55h
53h,0
54h
52h,0
53h
51h,0
52h
50h,0
51h
4Fh,0
50h
4Eh,0
4Fh

movf 50h,0
movwf 51h
movf 4Fh,0
movwf 50h
movf 4Eh,0

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
movwf 4Fh
movf 4Dh,0
movwf 4Eh
return
restar

CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
decf
fila
goto
gira

sumar

CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
incf
fila
goto
gira

esc

MOVF
KeyRtn,W
xorlw 0x03
btfsc STATUS,Z
goto
restar
MOVF
KeyRtn,W
xorlw 0x0B
btfsc STATUS,Z
goto
sumar
MOVF
KeyRtn,W
xorlw 0x76
btfsc STATUS,Z
goto
escapar
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
goto
gira

escapar CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
goto
INICIO

GIRATORIO
goto LAZO_LECTURA
GIRATORIO1 movlw 0x020
movwf fila
movlw 0x05
movwf retardo
movlw 0x4E
movwf FSR
movlw 0x28
movwf RESTADOR
borrar2 clrf INDF
incf FSR,F
decfsz RESTADOR
goto borrar2
GIRATORIO3
clrf Direccion
GIRATORIO2
call Recibir_Byte
movf Dato,0
movwf saltar
xorlw 0xFF
btfsc STATUS,Z
goto fin
incf Direccion
call Recibir_Byte
movf saltar,0
xorlw 0x01
btfsc STATUS,Z
goto MIN
goto MAY
fin

movlw 0x28
movwf saltar

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
fin1

call ROTO1
clrf 0x4E
call Cartel
decfsz saltar
goto fin1
goto GIRATORIO3

MIN

incf PCLATH
movf Dato,0
xorlw 0xB7
btfsc STATUS,Z
incf PCLATH
MIN1
call ROTO1
movf Dato,0
call Tabla1
movwf CARACTER
movwf 0x4E
incf Dato
call Cartel
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto MIN1
clrf PCLATH
incf Direccion
goto GIRATORIO2
MAY

movf Dato,0
xorlw 0x97
btfsc STATUS,Z
incf PCLATH
MAY1
call ROTO1
movf Dato,0
call Tabla
movwf CARACTER
movwf 0x4E
incf Dato
call Cartel
movf CARACTER,0
xorlw 0x00
btfss STATUS,Z
goto MAY1
clrf PCLATH
incf Direccion
goto GIRATORIO2
Cartel

gira

DECFSZ Nbytes,W
goto
gira
goto
esc
movlw 0x05
movwf retardo
movf fila,0
movwf RESTADOR1

Cartel2
movlw 0x23
movwf PORTA
movlw 0x28
movwf RESTADOR
movlw 0x75
movwf FSR
Cartel3
rlf INDF,0
movwf PORTB
call RETARDO
decf FSR,F
decfsz RESTADOR,1
goto Cartel3
decfsz RESTADOR1,1
goto Cartel2
return
RETARDO movlw 0x5F
movwf TIEMPO
RET
decfsz TIEMPO,1

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
goto RET
decfsz retardo
goto RET2
call RET1
RET2
clrf PORTB
incf PORTA
return
RET1

clrf PORTB
movlw 0x0A
subwf PORTA
movlw 0x05
movwf retardo
return

LIMPIAR
NOP
clrf
PCLATH
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
bsf
INTCON,GIE
GOTO
LAZO_LECTURA
LIMPIAR1
NOP
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
clrf
SALTO
bsf
INTCON,GIE
GOTO
LAZO_LECTURA
LIMPIAR2
NOP
CLRF
KeyRtn
CLRF
ASCII
CLRF
Nbytes
clrf
SALTO
bsf
INTCON,GIE
GOTO
muestra

LEER_TECLADO
BTFSC KBD_DATO
GOTO
KBD_ES1
BCF
BIT_ACTUAL
GOTO
SEGUIR
KBD_ES1
BSF
BIT_ACTUAL
SEGUIR
INCF
Nbits,F
DECFSZ Nbits,W
GOTO
BIT_REAL
BTFSS BIT_ACTUAL
RETURN
GOTO
CLEANUP
BIT_REAL
MOVF
Nbits,W
XORLW 0x09
BTFSC STATUS,Z
goto
ES_9NO_BIT
NO_ES_9NO_BIT
DECFSZ NO_ROTAR,W
RRF
DATAIN,1
MOVF
Nbits,W
XORLW 0x0B
BTFSC STATUS,Z
GOTO
aceptar_byte
RETURN
ES_9NO_BIT
BTFSC BIT_ACTUAL
GOTO
CLEANUP

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
MOVF
DATAIN,W
BTFSC STATUS,Z
GOTO
CLEANUP
MOVWF KeyRtn
MOVLW 0x01
MOVWF NO_ROTAR
RETURN
aceptar_byte
MOVLW 0x01
MOVWF Nbytes
CLRF
NO_ROTAR
CLEANUP
CLRF
Nbits
CLRF
DATAIN
RETURN
;*************************************************************************
Recibir_Byte
clrf PIR1
call Send_Start ; Pone la condicin de Inicio
movlw b'10100000' ; Prepara el Byte de control para la EEPROM
addwf memoria,0
call Send_Byte ; Enva el byte de control a la memoria serial
movf Direccion,w ; Enva la direccin donde se leer la EEPROM
call Send_Byte
call Send_Stop
call Send_Start ; Pone la condicin de re-inicio
movlw b'10100001' ; Se enva el byte de control indicando una lectura
addwf memoria,0
call Send_Byte
call Leer_Byte ; Se lee lo enviado por la EPROM
call Send_Stop ; Se enva la condicin de STOP
return
;**********************************************************************
Enviar_Byte
clrf PIR1
call Send_Start ; Se pone la condicin de inicio
movlw b'10100000' ; Se enva el byte de control
addwf memoria,0
call Send_Byte
movf Direccion,w ; Se enva la Direccin donde guardar el dato
call Send_Byte
movf Dato,w ; Se enva el Dato
call Send_Byte
call Send_Stop ; Condicin de STOP
return
;**********************************************************************
Send_Start2
banco_1 ; Selecciona banco 1 de RAM
bsf SSPCON2,RSEN ; Activa secuencia RE-INICIO
banco_0 ; Regresa al banco cero de RAM
btfss PIR1,SSPIF ; Fin de secuencia de re-inicio ??
goto $-1 ; No, seguir esperar
bcf PIR1,SSPIF
return
;**********************************************************************
Send_Start
banco_1 ; Selecciona el banco 1 de RAM
bsf SSPCON2,SEN ; Activa secuencia de inicio
banco_0 ; Regresa al banco 0 de RAM
btfss PIR1,SSPIF ; Fin de secuencia de inicio ??
goto $-1 ; No, seguir esperar
bcf PIR1,SSPIF
return
;**********************************************************************
Send_Stop
banco_1 ; Pasa al banco 1
bsf SSPCON2,PEN ; Activa secuencia de stop
banco_0 ; Regresa al banco 0

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA
btfss PIR1,SSPIF ; Fin de secuencia de Stop ??
goto $-1 ; No, seguir esperado
bcf PIR1,SSPIF
return
;**********************************************************************
Send_Byte
movwf SSPBUF ; Byte a transmitir pasa al buffer de salida
btfss PIR1,SSPIF ; Termino de Transmitir??
goto $-1 ; No, seguir esperando
bcf PIR1,SSPIF
banco_1 ; Selecciona el banco 0
btfsc SSPCON2,ACKSTAT ; Mira el estado del bit ACK
goto ERROR_I2C
banco_0 ; Regresa al banco 0
return
;**********************************************************************
Leer_Byte
banco_1 ; Selecciona pgina 1
bsf SSPCON2,RCEN ; Activa el modo receptor
banco_0 ; Selecciona pgina 0
btfss PIR1,SSPIF ; Recibidos los 8 bits ??
goto $-1 ; No, seguir esperado
bcf PIR1,SSPIF ; Borra la bandera del mdulo MSSP
movf SSPBUF,w ; Mover los datos recibido
movwf Dato ; al registro Datos para usarlos luego
return
;**********************************************************************
ERROR_I2C
; Un ERROR grave ha ocurrido
banco_0 ; Abortar todo y colocar el bit 7 del puerto B
call Send_Stop ; en "1" para indicar el error.
nop
; PROGRAMA DETENIDO POR UN ERROR!!!!
EE_Write bsf STATUS,RP1
bsf STATUS,RP0
;Pasamos al banco 3
bcf EECON1,EEPGD ;Seleccionamos la EEPROM de datos
bsf EECON1,WREN ;Permitimos la escritura de sta
movlw 0x55
movwf EECON2
movlw 0xaa
movwf EECON2
;Secuencia obligatoria
bsf EECON1,WR
;Empezamos la escritura
bcf STATUS,RP0
bcf STATUS,RP1
;Volvemos al banco 0
ESPERA btfss PIR2,EEIF
;esperamos a que acabe la escritura
goto ESPERA
bcf PIR2,EEIF
;Reseteamos el flag de la EEPROM
return
;**************************************************************************************
;EE_Read: Leer un byte de la EEPROM. Se supone al registro EEADR cargado con la direc;cin a leer. En EEDATA aparecer el dato ledo.
EE_Read bsf STATUS,RP0
bsf STATUS,RP1
;Pasamos al banco 3
bcf EECON1,EEPGD ;Seleccionamos la EEPROM de datos
bsf EECON1,RD
;Permitimos la lectura de sta
bcf STATUS,RP1
bcf STATUS,RP0 ;Seleccin de banco 0
return

END

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Diagrama de flujo
Inicializacin de
variables

(Frase instantnea) F1 =1

Presionar
F1 o F2

F2=1 (Mensaje giratorio)

Selecc. Memoria
Tecla 1,2,3,4

Selecc. Memoria
Tecla 1,2,3,4

Visualiza nombre
Memoria selecc.

Visualiza nombre
Memoria selecc.

Presionar
F3 o F4

F3=1 (Ejecuta mensaje guardado) F3=1 Presionar


F3 o F4

F4=1 (grabar nuevo mensaje)


Grabar nombre
memoria selecc.

F4=1(grabar nuevo
mensaje)
Grabar nombre
memoria selecc.

Presionar F4 para
finalizar

Presionar F4 para
finalizar

Escribir rengln

Escribir mensaje

Enter =0
F3=0
Presionar
Enter o F3

Enter=0
F3=1

Presionar
F3

Enter=1
F3=0
Siguiente
rengln

F3=1

Visualizar
mensaje

Incrementar
velocidad del
mensaje

Cingolani Ariel Jorge

F5=1

Presionar
F5 o F6

F6=1

Decrementar
velocidad del
mensaje

F3=0

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Diagrama del Circuito


U21
10
11
12
13
14
15
16
9

7C
6C
5C
4C
3C
2C
1C
COM

7
6
5
4
3
2
1

7B
6B
5B
4B
3B
2B
1B

U13

U7

10
11
12
13
14
15
16
9

ULN2003A
7C
6C
5C
4C
3C
2C
1C
COM

7B
6B
5B
4B
3B
2B
1B

10
11
12
13
14
15
16
9

ULN2003A
7C
6C
5C
4C
3C
2C
1C
COM

7B
6B
5B
4B
3B
2B
1B

10
11
12
13
14
15
16
9

ULN2003A
7C
6C
5C
4C
3C
2C
1C
COM

10
11
12
13
14
15
16
9

ULN2003A
7C
6C
5C
4C
3C
2C
1C
COM

7B
6B
5B
4B
3B
2B
1B

10
11
12
13
14
15
16
9

ULN2003A
7C
6C
5C
4C
3C
2C
1C
COM

7B
6B
5B
4B
3B
2B
1B

7
6
5
4
3
2
1

7
9
10
11
12
13
14
15

7
6
5
4
3
2
1

7
9
10
11
12
13
14
15

74HC238
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0

7
6
5
4
3
2
1

7
9
10
11
12
13
14
15

74HC238
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0

7
6
5
4
3
2
1

7
9
10
11
12
13
14
15

74HC238
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0

7
6
5
4
3
2
1

7
9
10
11
12
13
14
15

74HC238
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0

U11

U10

7B
6B
5B
4B
3B
2B
1B

U9

U8

ULN2003A

2A3
2A2
2A1
2A0
1A3
1A2
1A1
1A0

U4

U3

24LC16B

17
15
13
11
8
6
4
2

SCK
SDA
WP

2Y3
2Y2
2Y1
2Y0
1Y3
1Y2
1Y1
1Y0

U5

U1

19
1

R1
10k

R2
10k

1
3
5

3
5
7
9
12
14
16
18

U6

74HC238

U14
2OE
1OE

Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0

74HC241

R5

11
12
13
14
15
16
17
18
RC0/T 1OSO/T 1CKI
RC1/T 1OSI/CCP2
RC2/CCP1
RC3/SCK/SCL
RC4/SDI/SDA
RC5/SDO
RC6/T X/CK
RC7/RX/DT

2
3
4
5
6
7

OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/T HV
9
10
1

13pF

X1
CRYSTAL

13pF

R3
10k

Cingolani Ariel Jorge

PIC16F873

10k

C2

C1

U2

R4

RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T 0CKI
RA5/AN4/SS

RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD

3
4 5
2
1

Conector PC-AT

21
22
23
24
25
26
27
28

10k

C3
1uF

E3
E2
E1

C
B
A
E3
E2
E1

C
B
A
E3
E2
E1

C
B
A
E3
E2
E1

C
B
A
E3
E2
E1

C
B
A

5
4
6

3
2
1
5
4
6

3
2
1
5
4
6

3
2
1
5
4
6

3
2
1
5
4
6

3
2
1

U12
7
9
10
11
12
13
14
15

Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
74HC238

E3
E2
E1

C
B
A

5
4
6

3
2
1

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Presentacin del proyecto terminado


En la siguiente fotografa se ve como quedo terminado el trabajo:

Manejo del cartel electrnico:


Una vez conectado a la alimentacin, aparecer el ultimo mensaje que se ejecuto
antes de cortar la alimentacin. Luego se debe presionar F1 si se desea ejecutar el
modo frase instantnea o F2 si desea mensaje giratorio:
Si selecciono F1:
1. Seleccionar memoria mediante las teclas 1,2,3,4.
2. Elegir si se va a ejecutar frase guardada con F3, o grabar nueva frase
mediante F4.
3. Si se eligi F3 se ejecutara la frase guardada, en cambio si se eligi F4, lo
primero que hay que hacer es darle un nombre al lugar de memoria y finalizar
con la tecla F4.
4. Una vez elegido el nombre se debe empezar a escribir la frase, una vez que
se termino de escribir el primer rengln, si desea pasar al siguiente rengln
presionar ENTER y as sucesivamente, pero si desea finalizar presione F3 y
comenzara a reproducir la frase.
Si selecciono F2:
1. Seleccionar memoria mediante las teclas 1,2,3,4.
2. Elegir si se va a ejecutar frase guardada con F3, o grabar nueva frase
mediante F4.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

3. Si se eligi F3 se ejecutara la frase guardada, en cambio si se eligi F4, lo


primero que hay que hacer es darle un nombre al lugar de memoria y finalizar
con la tecla F4.
4. Una vez elegido el nombre se debe empezar a escribir el mensaje, cuando se
termino de escribir, para finalizar presionar F3 y comenzara a reproducir el
mensaje.
5. Si se desea variar la velocidad de reproduccin del mensaje, si presiona la
tecla F5 aumentara la velocidad, y si se presiona F6 disminuir la velocidad.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Problemas en la realizacin del proyecto


Los problemas que se me presentaron al realizar el proyecto no han sido muchos
pero es importante mencionarlos, en primer lugar puedo mencionar que se me hizo
un poco complicado poder desarrollar el ``software que gobierna al
microcontrolador pic.
Otro de los problemas que se me ha presentado fue el problema de la corriente de
la que entregaba la fuente, al principio vea que no se iluminaban mucho las
matrices, despus de hacer varias pruebas, lo solucione cambiando la fuente de
alimentacin por una mas grande.
Al realizar otra prueba las matrices iluminaban poco, era porque las matrices
necesitan un pico de corriente de 140mA, ya que el puerto B del PIC no puede
entregar esa corriente, tuve que poner un amplificador de corriente.
Estos problemitas surgen por no leer antes las hojas de datos de los componentes.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Apndice A
Teora del teclado PC-AT
El teclado es un perifrico bidireccional que se conecta al ordenador por medio de
un cable que contiene 4 hilos tiles: uno de alimentacin, uno de tierra, uno para
datos y otro para reloj. Los conectores externos mas conocidos se muestran a
continuacin:

Donde las lneas del reloj y de datos son bidireccionales de E/S con colector abierto
capaces de manejar una corriente de hasta de 300mA.
Identificacin de la tecla pulsada:
Al pulsar una tecla se genera un nico cdigo, denominado tambin cdigo de
rastreo, el cual identifica la tecla pulsada y la enva a travs de su lnea de data
serial. Al soltar la tecla, los teclados de AT generan dos cdigos que se envan
consecutivamente (0F0h y despus el mismo cdigo que al pulsarla). Por ejemplo, si
se pulsa la tecla A aparecer en la lnea de dato serial del teclado el byte 1Ch, y al
soltar la A se genera un cdigo F0h y luego 1Ch. La figura siguiente muestra el
teclado bsico del PC-AT de 83/84 teclas y sus cdigos de escaneo:

El teclado es libre de transmitir hacia el host mientras ambas lneas del reloj del
teclado y datos permanezcan en alto. En este momento la transmisin de datos
hacia el host se realiza a travs de un protocolo de comunicacin en serie que en
el AT consta de un marco de 11 bits, el primer bit de inicio, los 8 siguientes de datos
(el LSB primero), 1 bit de paridad impar y el ltimo de fin o parada. En el siguiente
diagrama se representa un byte de datos transmitidos desde el teclado:
Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

El teclado no cambia necesariamente el dato en la lnea en el flanco de subida del


reloj como se muestra aqu, pero el dato en la lnea debe ser siempre valido en el
flanco de bajada del reloj. As, cada bit debe ser ledo en el flanco de bajada de reloj.
Teniendo en cuenta que el bit menos significativo siempre es enviado primero. El
teclado genera la seal de reloj que por lo general esta entre 20Khz y 30Khz.
Comunicacin con el Microcontrolador PIC:
El programa en este caso se debe encargar de detectar las interrupciones
generados por el teclado, determinar la tecla pulsada y hallar su valor equivalente
ASCII.
Este programa se limitara a recibir los cdigos de las teclas pulsadas. Para ello se
debe leer el cdigo binario producido en los flancos de bajado del reloj, se debe
colocar el reloj del teclado como la entrada de interrupcin RB0, y cada vez que esta
se activa se lee en RC0 un bit del dato.
Como la lnea de reloj y de dato del teclado son a colector abierto, hay que
configurar la entrada RB0 como pull up, y a la entrada RC0 hay que colocarle una
resistencia a Vcc.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Apndice B
Matriz de 5x7 LEDs
El modelo de matriz de leds elegido para el proyecto es el 5x7 Dot Matrix Display
(red) del fabricante Para Light.
La identificacin del elemento es: Part Number: C-5570E
Algunas de las caractersticas [20] generales que presenta son las siguientes:
Disposicin interna de los leds de Ctodo Columna.
Tamao del punto de 5mm.
2 pulgadas de altura (50 mm).
Baja corriente de operacin.
Alto contraste de luz.
Compatibles con cdigos EBCDIC y ASCII.
Horizontalmente escalable.
Fcil montaje en placas o sockets.
Punto de color blanco y carcasa de color gris.
Otras caractersticas pueden verse en la siguiente tabla y para ms informacin ver
su datasheet.
La siguiente tabla muestra los rangos de valores absolutos.
Parmetro

Valor

Potencia disipada

105 mW

Corriente continua

30 mA

Pico de corriente(1/10 Duty Cycle, 0,1ms) 140 mA


Voltaje

5V

Temperatura de Uso/almacenaje

-400C hasta +85C

Temperatura de soldadura

260C durante 5 segundos

La siguiente imagen muestra las dimensiones de la matriz as como las dos posibles
disposiciones internas de sus leds.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Apndice C
MEMORIA I2C EEPROM 24C16
Estos dispositivos se caracterizan por su tamao reducido, normalmente
implementados en encapsulados de 8 pines, sin importar la capacidad de
almacenamiento. Los encapsulados tpicos van desde montaje superficial hasta los
clsicos PDIP, tiles stos para los prototipos en protoboards, apreciados por los
aficionados y estudiantes de electrnica. La etiqueta que las identifican comienza
con el nmero 24, acompaada del nmero que indica la capacidad de
almacenamiento en Kbits y el tipo de encapsulado.
La capacidad de almacenamiento implementada por los fabricantes de estos
dispositivos oscila desde 1Kbit hasta 1024Kbit, permitiendo una conexin en
cascada entre ellos; un dispositivo maestro como un microcontrolador de gama
media, puede manejar hasta 7 dispositivos de este tipo mediante el protocolo,
permitiendo un potencial de acceso de 8192Kbits de informacin (1MByte). Las
memorias EEPROM basadas en el protocolo SPI tienen una capacidad tope de
256Kbits en la actualidad, pero no permiten la posibilidad de conectarse en cascada,
al igual que las basadas en Microwire, las cuales solo tienen una capacidad mxima
de almacenamiento de 16Kbits.
Caractersticas:
Voltaje de operacin bajo y estndar
5.0 (VCC = 4.5V to 5.5V)
2.7 (VCC = 2.7V to 5.5V)
2.5 (VCC = 2.5V to 5.5V)
1.8 (VCC = 1.8V to 5.5V)
Organizado internamente 2048 x 8 (16K)
Bus de interfaz serial, compatible con I2C
Transferencia de datos bidireccional
100 KHz (1.8V, 2.5V, 2.7V) y 400 KHz (5V)
Ciclo de escritura (10ms mximo)

La descripcin funcional de los conectores:


1. Lneas de Direccin (A2 A1 A0): Indican el cdigo de identificacin del circuito
integrado, dentro de una red I2C. Un maestro puede comunicarse con 7 esclavos
dentro de esta red. Con la ayuda de hubs, repetidores y buffers, pueden
conectarse varias redes.
2. Lneas de Polarizacin (Vcc y Vss): Los dispositivos I2C, trabajan con voltajes de
alimentacin (Vcc) entre 2.3 a 5.5VDC. El conector Vss conecta la tierra del circuito.
Existen circuitos convertidores de voltaje, para permitir la conexin de redes y
dispositivos que se polarizan con diferentes niveles de voltaje.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

3. Lnea de Proteccin de Cdigo (WP): Permite no la modificacin del contenido


de la memoria. Es la nica opcin de seguridad que tiene la memoria.
4. Lnea de Datos (SDA): A travs de ella se transmite y se recibe la informacin que
intercambia la memoria con otros dispositivos de la red. Es una salida de colector /
drenador abierto, lo cual requiere una resistencia de polarizacin pull-up, para
conectarla a una fuente de voltaje. La conexin de varias salidas de este tipo,
originan la conexin AND alambrada, en la cual el nivel lgico resultante es el
producto lgico de los niveles presentes en las salidas conectadas en ese nodo.
5. Lnea de Reloj (SCL): Fija la sincronizacin de los datos que viajan entre maestro
y esclavos. Al igual que SDA, esta lnea tambin es de colector / drenador abierto, lo
que tambin se debe conectar entre ella y la fuente de polarizacin la resistencia
pull-up. La frecuencias de operacin que soporta el protocolo son: estndar
(100KHz), rpida (400KHz) y de alta velocidad (1MHz).
El procedimiento bsico para la transmisin y recepcin de datos entre el
microcontrolador y una memoria EEPROM I2C, depende de la operacin a realizar
sobre ella, si es lectura escritura:
1. El maestro (microcontrolador) genera una condicin de inicio (Start) al esclavo
(memoria), definida en el protocolo I2C as: SCL=1 y SDA=flanco descendente.
2. El maestro genera un byte de reconocimiento de direccin de esclavo, que tiene la
siguiente estructura: 1010 A2 A1 A0 [R/W]. Los primeros 4 bits corresponden a la
identificacin que utiliza el protocolo de comunicacin. Los bits A2 A1 A0
corresponden a la direccin del esclavo y el bit [R/W] indica el tipo de operacin que
se va a realizar en la memoria. Si es 1, se realiza lectura y si es 0 escritura. Los
esclavos conectados en la misma red del maestro reciben esta trama, comparan la
direccin que reciben del maestro con la que tienen definida en sus lneas de
direccin y el esclavo seleccionado coloca un nivel BAJO (si se realiza la operacin
de escritura) en la lnea SDA. Esta accin se define en ingls con la palabra
Acknowledge (ACK). Si se realiza la operacin de lectura, el esclavo coloca la lnea
SDA en BAJO y espera a que el maestro genere el bit ACK, que en este caso es
ALTO.
3. El maestro genera el los bytes de la direccin de la celda. Al igual que el paso
anterior, los niveles de ACK para las operaciones de lectura y escritura se
comportan de la misma forma.
4. En escritura, el maestro enva el byte de datos a la celda seleccionada; en lectura
la memoria enva este byte al maestro. Luego de esto se genera el bit ACK
correspondiente.
5. Si se van a transmitir ms datos entre el microcontrolador y la memoria, se repiten
los pasos 2 a 4.
6. El maestro genera la condicin de parada (Stop) al esclavo, colocando un flanco
ascendente en SDA, cuando SCL=1. Se termina el enlace entre el microcontrolador
y la memoria.
Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Apndice D
Microcontrolador PIC 16F873
El PIC16F873 es un microcontrolador FLASH de alto rendimiento que provee a
ingenieros con la ms alta flexibilidad de diseo posible. Adems de (4k) palabras de
memoria de programa FLASH, 192 bytes de memoria de datos, y 128 bytes de uso
RAM.
El PIC16F873 tambin tiene integrado un conversor Analgico-digital de 5-canales
de 10-bit. Incluye dos temporizadores de 8-bit, uno de 16-bit, un temporizador del
Perro guardin, Brown-Out-Reset o proteccin en para voltajes bajos (BOR),
Programming En-circuito-de serie, RS-485 tipo UART para las aplicaciones de
adquisicin datos por goteo, y I2C o SPI que brinda capacidad para la
expansin perifrica.
Se ha mejorado la precisin que controla interfaces a travs de dos mdulos de CCP
y dos mdulos de PWM (modulacin por ancho de pulsos). Los PIC16F873 tambin
gozan de un voltaje bajo de programacin (Low voltage program), permitindole al
usuario programar en el circuito el dispositivo mientras esta operando bajo el voltaje
de funcionamiento. Las aplicaciones van de controles de mquinas programables,
mantenimiento de red, telefona, automatizacin, informtica, etc.
Este posee 22 I/O (puertos de entrada / salida) y est disponible en encapsulados
28 DIP (SP), y 28 SOIC (SO) para montaje en placa o superficial.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Distribucin de puertos en el PIC16F873


El PIC16F873 posee 22 puertos de E / S disponibles: RA0_ RA5 (configurados como
salidas), RB0 (conf. Como entrada), RB1_RB7 (conf. como salidas), RC0_ RC7
(configurados como entradas).
Pero para este proyecto son necesarios 17 puertos distribuidos de la siguiente
manera:
2672-

Control del teclado PC-AT


Control de los decodificadores.
Manejo de la pantalla de leds
Memoria EEPROM

Para el manejo del teclado se utiliza el puerto RB0 configurado como una
interrupcin conectada al reloj, y el puerto RC0 conectado al de datos.
Se utilizan para la pantalla de leds los bits RB1 a RB7 para las filas.
Para controlar de los decodificadores se utilizo puerta A del PIC.
Para la memoria EEPROM se utilizo el puerto RC3 (SCL) y RC4 (SDA) que son I2C.

Cingolani Ariel Jorge

TECNOLOGIA ELECTRONICA
UNIVERSIDAD TECNOLOGICA NACIONAL FACULTAD REGIONAL VILLA MARIA

Conclusin
De este proyecto se pueden formular muchas conclusiones que en su totalidad son
productivas.
La propuesta de realizar un proyecto a libre eleccin fomenta el desarrollo de
proyectos ingeniosos y tal vez, por que no, tiles. Realmente cubre con todos los
aspectos de un trabajo de ingeniera.
Aprender a manejar un microcontrolador no es tan difcil como parece. Vale la pena
conocer a un dispositivo tan verstil, completo y eficiente.
Otra ventaja de este desafo es su carcter integrador. Para este proyecto se
utilizaron todos los conocimientos adquiridos tanto en el mbito universitario como
en el mbito personal. Es decir la experiencia de proyectos anteriores.
Muchos problemas y contratiempos se hicieron presentes pero todos ellos fueron
subsanados utilizando el ingenio y los conocimientos.

Cingolani Ariel Jorge