Sie sind auf Seite 1von 33

FRECUENCÍMETRO CON PIC Y DISPLAY LCD Juan José Santana Andrade

Universidad De Guadalajara
juanjosaan@yahoo.com.mx

1. Desarrollo
1.1 Frecuencímetro con PIC y Display LCD

1.1.1 Ensamblador

1.1.2 Compilado

2. Bases teóricas
2.1 Los Reguladores de Tensión

2.2 Puerta lógica

2.2.1 Puerta NO-Y (NAND)

2.3 Microcontrolador PIC

2.3.1 Juego de instrucciones y entorno de programación

2.3.2 Programación del PIC

2.3.3 Programadores

2.3.4 Depuradores integrados

2.3.5 Emuladores

2.3.6 Tamaño de palabra

2.3.7 Características

2.3.8 Variaciones del PIC

2.3.8.1 PICs modernos


Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 1
2.3.8.2 Clones del PIC

2.3.8.3 PICs wireless

2.3.8.4 PICs para procesado de señal (dsPICs)

2.3.8.5 PICs más comúnmente usados

2.3.8.6 PICs en Internet

2.4 LCD

2.4.1 LCD en la industria

2.4.2 LCD de texto

2.4.3 LCD de gráficos

2.5 Simulación de la primera parte del circuito

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 2
Con este proyecto se pretende facilitar aún más las lecturas de frecuencia de las señales y a la
vez darle un poco más de vista y estética al agregarle un LCD al frecuencímetro. Además de
esto con un costo bajo se le da la oportunidad al estudiante que no tiene los recursos
suficientes para adquirir un frecuencímetro más ostentoso, la oportunidad de tenerlo a su
alcance.

La idea de hacer este circuito nace de las peticiones constantes por la falta de más
frecuencímetros que no es muy común verlos tanto como los voltímetros, amperímetros,
osciloscopios, etc.

También con este trabajo se desea que los conocimientos adquiridos por los estudiantes a lo
largo de sus cursos, sean aplicados en este tipo de proyectos, para cumplir con el fin en común
de todos los ingenieros, que es el de diseñar.

Se recomienda que se cuide bastante al armar el circuito los ajustes que se le deben hacer y que
alimentaciones sean correctas para que no se dañe el equipo, sobretodo el microcontrolador y
la pantalla.

ANTECEDENTES
Frecuencímetro Virtual

• PIC12C508 programado
• Alimentación: 9V CD
• Puerto: serial
• Señal: hasta 15 Volts
• Acondicionador: 74HC14
• Diagrama esquemático

Este frecuencímetro virtual se presenta en una tarjeta de circuito impreso de fibra de vidrio con
un PIC12C508 a bordo preprogramado. Se suministra con un cable para conectarse al puerto
serial de una PC. Y con un broche para instalar una batería de 9V. El software para Windows
95/98 es muy amigable y se proporciona en un disco de 3 1/2, junto con el diagrama
esquemático.

Cuenta con bornes atornillables para instalar los cables que se requieren para hacer las
medicioneS de frecuencia.

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 3
El PIC12C508 es el corazón del frecuencímetro, actúa como contador y también se encarga de
comunicarse con la PC. Un cristal de 4Mhz se encarga de proporcionar la señal de reloj del
microcontrolador. El rango de frecuencias que es capaz de medir es desde 1 hasta 80Mhz.

Un 74HC14 y un juego de resistencias se utiliza para acondicionar el nivel de voltaje de las


señales a medir. Resistencias de 0, 1, 5, 20, 50 y 100 permiten atenuar el voltaje desde 5V para
la entrada sin resistencia hasta 15V para la entrada a 100K.

Cuando se desconoce la amplitud de la señal que se va a medir es conveniente conectarla


primero a la entrada de 100K y después ir reduciendo la resistencia.

Algunas precauciones son necesarias para utilizar este instrumento:

1. La temperatura influye en la frecuencia del cristal de 4Mhz lo que puede producir


pequeños errores.
2. Como el instrumento es auto rango, las frecuencias más altas se dividen entre 128 lo
que también puede producir pequeños errores.
3. En caso de sustituir el circuito integrado 74HC14 se debe utilizar uno de alta velocidad.
[4]

1. DESARROLLO
1.1 Frecuencímetro con PIC y Display LCD

Este dispositivo muestra en una pantalla de cristal líquido de 16 caracteres y una línea el valor
de la frecuencia de una señal en su entrada.

Como se ve en el diagrama es muy fácil de armar, quedando todo el trabajo pesado para el
programa cargado en el PIC. Un solo ajuste es necesario: Deberá ajustar el preset de 500 Ohms
(en la base del transistor 2N4403) hasta leer en el punto marcado con X 5 voltios. Luego de
esto el sistema estará listo para funcionar.

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 4
En su alimentación requiere dos tensiones diferentes 5v y 9v.

Esta fuente es interesante ya que permite alimentar el sistema con sólo una tensión la cual
deberá ser igual o superior a 12v, con una corriente de 1 A.

El código a cargar en el microcontrolador está disponible en dos versiones ENSAMBLADOR


y COMPILADO. La primera deberá ser compilada previamente con MPASM. La segunda
está lista para ser subida al micro.

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 5
1.1.1 Ensamblador

;
;watchdog disabled
;
list P=16F84
ind equ 0h
rtcc equ 1h
pc equ 2h
status equ 3h
fsr equ 4h
port_a equ 5h
port_b equ 6h
;port_c equ 7h
c equ 0h
dc equ 1h
z equ 2h
pd equ 3h
to equ 4h
MSB equ 7h
LSB equ 0h
;
cnt equ 2h
rs equ 2h
rw equ 1h
e equ 0h
o equ 7h
;
count1 equ 2ch
count2 equ 2dh
in_reg equ 2eh
addcnt equ 2fh
gate equ 0Ch
cnt1 equ 0Dh
cnt2 equ 0Eh
cnt3 equ 0Fh
calc1 equ 10h
calc2 equ 11h
calc3 equ 12h
sum1 equ 13h
sum2 equ 14h
sum3 equ 15h
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 6
rtcc2 equ 16h
;
org 0
goto start

;
int_del movlw 0x05 ;delay 5.000 ms (4 MHz clock)
movwf count1
d1 movlw 0xA5
movwf count2
d2 decfsz count2 ,f
goto d2
decfsz count1 ,f
goto d1
retlw 0x00
;
lcd_out movwf port_b ;load data into port_b
movlw b'00000000' ;define port_b as output
tris port_b
bsf port_a,rs ;rs = data
bcf port_a,rw ;r/w = write
bsf port_a,e ;toggle enable
bcf port_a,e
movlw b'11111111' ;define port_b as input
tris port_b
bcf port_a,rs ;rs = instruction
bsf port_a,rw ;r/w = read
bsf port_a,e ;enable high
movf port_b,w ;get address counter
movwf addcnt
bsf addcnt,7
bcf port_a,e ;enable low
out1 bsf port_a,e ;enable high
btfss port_b,7 ;test busy flag
goto out2
bcf port_a,e ;enable low
goto out1
out2 bcf port_a,e ;enable low
goto shift
;
inst movwf port_b ;load instruction into port_b
movlw b'00000000' ;define port_b as output
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 7
tris port_b
bcf port_a,rs ;rs = instruction
bcf port_a,rw ;r/w = write
bsf port_a,e ;toggle enable
bcf port_a,e
movlw b'11111111' ;define port_b as input
tris port_b
bsf port_a,rw ;r/w = read
inst1 bsf port_a,e ;enable high
btfss port_b,7 ;test busy flag
goto inst2
bcf port_a,e ;enable low
goto inst1
inst2 bcf port_a,e ;enable low
retlw 0x00
;
shift btfss addcnt,0 ;shift to opposite side of display?
retlw 0x00
btfss addcnt,1
retlw 0x00
btfss addcnt,2
retlw 0x00
btfss addcnt,3
retlw 0x00
movlw 0x39
addwf addcnt ,f
bsf addcnt,7
movf addcnt,w
goto inst
;
sub bcf status,o ;clear overflow bit
movf calc1,w ;subtract calc1 from cnt1
subwf cnt1 ,f
btfsc status,c
goto sb1
movlw 0x01 ;borrow from cnt2 if overflow
subwf cnt2 ,f
btfsc status,c
goto sb1
subwf cnt3 ,f ;borrow from cnt3 if cnt2 overflow
btfss status,c
bsf status,o ;set overflow bit if result is negative
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 8
sb1 movf calc2,w ;subtract calc2 from cnt2
subwf cnt2 ,f
btfsc status,c
goto sb2
movlw 0x01 ;borrow from cnt3 if cnt2 overflow
subwf cnt3 ,f
btfss status,c
bsf status,o ;set overflow bit if result is negative
sb2 movf calc3,w ;subtract calc3 from cnt3
subwf cnt3 ,f
btfss status,c
bsf status,o ;set overflow bit if result is negative
retlw 0x00
;
add movf calc1,w ;add calc1 to cnt1
addwf cnt1 ,f
btfss status,c
goto ad1
incfsz cnt2 ,f ;add to cnt2 if cnt1 overflow
goto ad1
incf cnt3 ,f ;add to cnt3 if cnt2 overflow
ad1 movf calc2,w ;add calc2 to cnt2
addwf cnt2 ,f
btfsc status,c
incf cnt3 ,f ;add to cnt3 if cnt2 overflow
movf calc3,w ;add calc3 to cnt3
addwf cnt3 ,f
retlw 0x00
;
cnvt movlw 0x07 ;7 digits in display
movwf count1
movlw 0x19 ;set fsr for MSB in display
movwf fsr
movlw 0x2F ;one less that ASCII "0"
cnvt0 movwf ind
incf fsr ,f
decfsz count1 ,f
goto cnvt0
movlw 0x0F ;load "1,000,000" in calc1-3
movwf calc3
movlw 0x42
movwf calc2
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 9
movlw 0x40
movwf calc1
cnvt1 call sub ;subtract number from count
incf 19 ,f ;increment 1,000,000's register
movlw 0x3A
xorwf 19,w
btfsc status,z
goto overflow
btfss status,o ;check if overflow
goto cnvt1
call add ;add back last number
movlw 0x01 ;load "100,000" in calc1-3
movwf calc3
movlw 0x86
movwf calc2
movlw 0xA0
movwf calc1
cnvt2 call sub ;subtract number from count
incf 1A ,f ;increment 100,000's register
btfss status,o ;check if overflow
goto cnvt2
call add ;add back la st number
clrf calc3 ;load "10,000" in calc1-3
movlw 0x27
movwf calc2
movlw 0x10
movwf calc1
cnvt3 call sub ;subtract number from count
incf 1B ,f ;increment 10,000's register
btfss status,o ;check if overflow
goto cnvt3
call add ;add back last number
movlw 0x03 ;load "1,000" in calc1-3
movwf calc2
movlw 0xE8
movwf calc1
cnvt4 call sub ;subtract number from count
incf 1C ,f ;increment 1,000's register
btfss status,o ;check if overflow
goto cnvt4
call add ;add back last number
clrf calc2 ;load "100" in calc1-3
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 10
movlw 0x64
movwf calc1
cnvt5 call sub ;subtract number from count
incf 1D ,f ;increment 100's register
btfss status,o ;check if overflow
goto cnvt5
call add ;add back number
movlw 0x0A ;load "10" in calc1-3
movwf calc1
cnvt6 call sub ;subtract number from count
incf 1E ,f ;increment 10's register
btfss status,o ;check if overflow
goto cnvt6
call add ;add back last number
movf cnt1,w ;put remainder in 1's register
addwf 1F ,f
incf 1F ,f
retlw 0x00
;
count movlw b'00110111' ;rtcc = ext, 1/256
option
movlw b'00010000' ;define port_a as output
tris port_a
bcf port_a,3
bcf port_a,2
clrf cnt3
clrf rtcc
clrf rtcc2
bsf port_a,2 ;toggle rtcc pin
bcf port_a,2
movf gate,w ;get gate time
movwf count1
bsf port_a,3 ;start count
fr4 movlw 0xFA
movwf count2
goto fr6
fr5 nop
nop
nop
nop
nop
nop
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 11
fr6 movf rtcc,w ;test for rtcc rollover (12)
subwf rtcc2 ,f
btfss status,z
goto fr7
nop
goto fr8
fr7 btfsc status,c
incf cnt3 ,f
fr8 movwf rtcc2
nop
nop
nop
decfsz count2 ,f
goto fr5
decfsz count1 ,f
goto fr4
bcf port_a,3 ;stop count
movf rtcc,w ;get rtcc count
movwf cnt2
subwf rtcc2 ,f ;test for rtcc rollover
btfss status,c
goto fr9
btfss status,z
incf cnt3 ,f
fr9 clrf cnt1 ;set to get prescaler count
fr10 decf cnt1 ,f
bsf port_a,2 ;toggle rtcc pin
bcf port_a,2
movf rtcc,w ;test if rtcc has changed
xorwf cnt2,w
btfsc status,z
goto fr10
retlw 0x00
;
;***************************************************************************
***
; START
;***************************************************************************
***
;
start clrf port_a ;instruction, write, enable low
movlw b'00010000'
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 12
tris port_a
clrf port_b
movlw b'00000000'
tris port_b
call int_del
call int_del
call int_del
movlw 0x38 ;initialize display
movwf port_b
bsf port_a,e ;toggle enable
call int_del
bcf port_a,e
bsf port_a,e ;toggle enable
call int_del
bcf port_a,e
bsf port_a,e ;toggle enable
call int_del
bcf port_a,e
movlw 0x38 ;function
call inst
movlw b'00001100' ;display on, cursor off
call inst
movlw b'00000001' ;clear display
call inst
movlw b'00000110' ;entry mode
call inst
;
mhz movlw 0x14 ;0.1 sec gate
movwf gate
call count
call cnvt ;convert binary to BCD
movlw 0x30 ;test if "0"
xorwf 19,w
btfss status,z
goto mhz1
movlw 0x30 ;test if "0"
xorwf 1A,w
btfsc status,z
goto khz1
mhz1 movlw 0x82 ;set display address
call inst
movlw 0x02 ;output first 2 characters
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 13
movwf count1
movlw 0x19 ;MSD of freq
movwf fsr
mhz2 movlw 0x30 ;test if "0"
xorwf ind,w
btfss status,z
goto mhz3
movlw 0x20 ;change preceeding "0's" to "space"
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto mhz2
goto mhz4
mhz3 movf ind,w
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto mhz3
mhz4 movlw 0x2E ;"."
call lcd_out
movlw 0x05 ;output last 5 characters
movwf count1
mhz5 movf ind,w
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto mhz5
movlw 0x20 ;"space"
call lcd_out
movlw 0x4D ;"M"
call lcd_out
movlw 0x48 ;"H"
call lcd_out
movlw 0x7A ;"z"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
goto mhz
;
khz movlw 0x14 ;0.1 sec gate
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 14
movwf gate
call count
call cnvt ;convert binary to BCD
movlw 0x30 ;test if 0
xorwf 19,w
btfss status,z
goto mhz1
movlw 0x32 ;test if < 2
subwf 1A,w
btfsc status,c
goto mhz1
movlw 0x30 ;test if "0"
xorwf 1A,w
btfss status,z
goto khz1
movlw 0x30 ;test if "0"
xorwf 1B,w
btfsc status,z
goto xkhz
khz1 movlw 0x82 ;set display address
call inst
movlw 0x05 ;output first 5 characters
movwf count1
movlw 0x19 ;MSD of freq
movwf fsr
khz2 movlw 0x30 ;test if "0"
xorwf ind,w
btfss status,z
goto khz3
movlw 0x20 ;change preceeding "0's" to "space"
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto khz2
goto khz4
khz3 movf ind,w
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto khz3
khz4 movlw 0x2E ;"."
call lcd_out
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 15
movf ind,w ;output last 2 characters
call lcd_out
incf fsr ,f
movf ind,w
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x4B ;"K"
call lcd_out
movlw 0x48 ;"H"
call lcd_out
movlw 0x7A ;"z"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
goto khz
;
xkhz movlw 0xC8 ;1 sec gate
movwf gate
call count
call cnvt ;convert binary to BCD
movlw 0x30 ;test if 0
xorwf 19,w
btfss status,z
goto khz
movlw 0x32 ;test if < 2
subwf 1A,w
btfsc status,c
goto khz
movlw 0x30 ;test if 0
xorwf 1A,w
btfss status,z
goto xkhz1
movlw 0x30 ;test if 0
xorwf 1B,w
btfsc status,z
goto hz0
xkhz1 movlw 0x82 ;set display address
call inst
movlw 0x04 ;output first 4 characters
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 16
movwf count1
movlw 0x19 ;MSD of freq
movwf fsr
xkhz2 movlw 0x30 ;test if "0"
xorwf ind,w
btfss status,z
goto xkhz3
movlw 0x20 ;change preceeding "0's" to "space"
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto xkhz2
goto xkhz4
xkhz3 movf ind,w
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto xkhz3
xkhz4 movlw 0x2E ;"."
call lcd_out
movf ind,w ;output last 3 characters
call lcd_out
incf fsr ,f
movf ind,w
call lcd_out
incf fsr ,f
movf ind,w
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x4B ;"K"
call lcd_out
movlw 0x48 ;"H"
call lcd_out
movlw 0x7A ;"z"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
goto xkhz
;
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 17
hz movlw 0xC8 ;1 sec gate
movwf gate
call count
call cnvt ;convert binary to BCD
movlw 0x30 ;test if "0"
xorwf 19,w
btfss status,z
goto xkhz1
movlw 0x30 ;test if "0"
xorwf 1A,w
btfss status,z
goto xkhz1
movlw 0x32 ;test if < 2
subwf 1B,w
btfsc status,c
goto xkhz1
hz0 movlw 0x82 ;set display address
call inst
movlw 0x07 ;output first 7 characters
movwf count1
movlw 0x19 ;MSD of freq
movwf fsr
hz1 movlw 0x30 ;test if "0"
xorwf ind,w
btfss status,z
goto hz2
movlw 0x20 ;change preceeding "0's" to "space"
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto hz1
goto hz3
hz2 movf ind,w
call lcd_out
incf fsr ,f
decfsz count1 ,f
goto hz2
hz3 movlw 0x20 ;"space"
call lcd_out
movlw 0x48 ;"H"
call lcd_out
movlw 0x7A ;"z"
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 18
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
movlw 0x20 ;"space"
call lcd_out
goto hz
;
overflow movlw 0x01 ;clear display
call inst
movlw 0x84 ;display address
call inst
movlw 0x4F ;"O"
call lcd_out
movlw 0x76 ;"v"
call lcd_out
movlw 0x65 ;"e"
call lcd_out
movlw 0x72 ;"r"
call lcd_out
movlw 0x66 ;"f"
call lcd_out
movlw 0x6C ;"l"
call lcd_out
movlw 0x6F ;"o"
call lcd_out
movlw 0x77 ;"w"
call lcd_out
movlw 0x02 ;cursor at home
call inst
goto mhz
;
end

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 19
1.1.2 Compilado

:10000000E7280530AC00A530AD00AD0B0528AC0BE2
:10001000032800348600003066000515851005149D
:100020000510FF3066000511851405140608AF00A1
:10003000AF1705100514861F1F2805101A28051074
:100040003228860000306600051185100514051061
:10005000FF30660085140514861F302805102B28F4
:10006000051000342F1C0034AF1C00342F1D003449
:10007000AF1D00343930AF07AF172F082128831385
:1000800010088D0203184B2801308E0203184B28EC
:100090008F02031C831711088E02031853280130A6
:1000A0008F02031C831712088F02031C831700346E
:1000B00010088D07031C5F288E0F5F288F0A110818
:1000C0008E0703188F0A12088F0700340730AC0020
:1000D000193084002F308000840AAC0B6B280F305D
:1000E000920042309100403090003F20990A3A300F
:1000F00019060319EB29831F752858200130920037
:1001000086309100A03090003F209A0A831F8428F7
:100110005820920127309100103090003F209B0A18
:10012000831F8E28582003309100E83090003F2034
:100130009C0A831F972858209101643090003F202B
:100140009D0A831F9F2858200A3090003F209E0A56
:10015000831FA62858200D089F079F0A00343730B8
:10016000620010306500851105118F018101960133
:10017000051505110C08AC008515FA30AD00C62830
:1001800000000000000000000000000001089602CE
:10019000031DCC280000CE2803188F0A960000000B
:1001A00000000000AD0BC028AC0BBD288511010874
:1001B0008E009602031CDE28031D8F0A8D018D031D
:1001C0000515051101080E060319DF280034850105
:1001D00010306500860100306600012001200120FA
:1001E0003830860005140120051005140120051083
:1001F000051401200510383021200C302120013059
:1002000021200630212014308C00AF2066203030B1
:100210001906031D0F2930301A0603194E298230A2
:1002200021200230AC001930840030300006031D5C
:100230001F2920300A20840AAC0B15292429000824
:100240000A20840AAC0B1F292E300A200530AC008E
:1002500000080A20840AAC0B282920300A204D30DF
:100260000A2048300A207A300A2020300A20203024
:100270000A20032914308C00AF2066203030190684
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 20
:10028000031D0F2932301A0203180F2930301A06C5
:10029000031D4E2930301B06031977298230212097
:1002A0000530AC001930840030300006031D5E2993
:1002B00020300A20840AAC0B5429632900080A2044
:1002C000840AAC0B5E292E300A2000080A20840A1A
:1002D00000080A2020300A204B300A2048300A202B
:1002E0007A300A2020300A2020300A203A29C830EB
:1002F0008C00AF20662030301906031D3A293230B9
:100300001A0203183A2930301A06031D8B2930309F
:100310001B060319C729823021200430AC00193094
:10032000840030300006031D9B2920300A20840AF7
:10033000AC0B9129A02900080A20840AAC0B9B2948
:100340002E300A2000080A20840A00080A20840AA5
:1003500000080A2020300A204B300A2048300A20AA
:100360007A300A2020300A2020300A207729C8302D
:100370008C00AF20662030301906031D8B293030E9
:100380001A06031D8B2932301B0203188B29823079
:1003900021200730AC001930840030300006031DE6
:1003A000D72920300A20840AAC0BCD29DC2900088B
:1003B0000A20840AAC0BD72920300A2048300A20B2
:1003C0007A300A2020300A2020300A2020300A20EB
:1003D00020300A20B72901302120843021204F30DD
:1003E0000A2076300A2065300A2072300A206630F2
:1003F0000A206C300A206F300A2077300A20023041
:04040000212003298B
:00000001FF

2. BASES TEÓRICAS
2.1 Los Reguladores de Tensión

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 21
En la figura vemos un típico integrado regulador de tensión, a pesar que es parecido a un
transistor, estos son circuitos integrados. Tenemos los puntos E, entrada de la fuente de
alimentación; T, tierra y S, salida regulada.
El "78", nos indica que es un regulador positivo (existe la serie "79" que regula
negativamente); XX nos indica a que voltaje regulara.
Estos pueden ser; 7805, 7806, 7808, 7810, 7812, 7815, 7818, 7822 y 7824. Note que no hay
ninguno que regule a 13,8 volt.
El voltaje de alimentación de estos, dependerá del regulador, a continuación les presento una
tabla con el voltaje de entrada, mínima y máxima, para que tengan en cuenta. [5]

Tipo de Tensión en Volt


Regulador Mínima Máxima
7805 7 25
7806 8 25
7808 11 25
7810 13 28
7812 15 30
7815 18 30
7818 21 33
7822 25 36
7824 27 38

Resumiendo, el 7812 nos dará una tensión de 12 volt y el 7815, una tensión de 15 volt. La
fuente de alimentación, tendrá que tener unos 3 volt mas, como mínimo, de la tensión de
salida.
Los rango de temperatura serán entre 0º y 125º, para una corriente de salida de 1 Amper, por lo
que es aconsejable colocarle un disipador de calor para evitar que este se queme.
El indice de error en la tensión de salida es de +/- 0,25 volt, así un 7805 podrá tener entre 4,75
y 5,25 volt de salida.
También tenemos que tener en cuenta a la hora de comprar un regulador, el tipo de regulador
que compramos ya que algunos vienen para 0,1 Amper y otros hasta 3 Ampers. Esto depende
de la serie del regulador, estas son las siguientes:

Tipo de Potencia en
Zocalo
Regulador Ampers
78XX 1,0 TO-204, TO-220

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 22
78LXX 0,1 TO-205. TO-92
78MXX 0,5 TO-220
78TXX 3,0 TO-204

2.2 Puerta lógica

Una puerta lógica, o compuerta lógica, es un dispositivo electrónico que es la expresión


física de un operador booleano en la lógica de conmutación. Cada puerta lógica consiste en
una red de dispositivos interruptores que cumple las condiciones booleanas para el operador
particular. Son esencialmente circuitos de conmutación integrados en un chip.

Claude Elwood Shannon experimentaba con relés o interruptores electromagnéticos para


conseguir las condiciones de cada comp uerta lógica, por ejemplo, para la función booleana Y
(AND) colocaba interruptores en circuito serie, ya que con uno solo de éstos que tuviera la
condición "abierto", la salida de la compuerta Y sería = 0, mientras que para la
implementación de una compuerta O (OR), la conexión de los interruptores tiene una
configuración en circuito paralelo.

La tecnología microelectrónica actual permite la elevada integración de transistores actuando


como conmutadores en redes lógicas dentro de un pequeño circuito integrado. El chip de la
CPU es una de las máximas expresiones de este avance tecnológico.

2.2.1 Puerta NO-Y (NAND)

Símbolo de la función lógica NO-Y. a) Contactos, b) Normalizado y c) No normalizado

La puerta lógica NO-Y, más conocida por su nombre en inglés NAND, realiza la operación de
producto lógico negado. En la figura de la derecha pueden observarse sus símbolos en
electrónica.

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 23
La ecuación característica que describe el comportamiento de la puerta NAND es:

Su tabla de verdad es la siguiente:

Tabla de verdad puerta NAND

Entrada A Entrada B Salida

0 0 1
0 1 1
1 0 1
1 1 0

Podemos definir la puerta NO-Y como aquella que proporciona a su salida un 0 lógico
únicamente cuando todas sus entradas están a 1. [3]

2.3 Microcontrolador PIC

Los PIC son una familia de microcontroladores tipo RISC fabricados por Microchip
Technology Inc. y derivados del PIC1650, originalmente desarrollado por la división de
microelectrónica de General Instruments.

El nombre actual no es un acrónimo, en realidad el nombre completo es PICmicro, aunque


generalmente se utiliza como Peripheral Interface Controller (Controlador de Interfaz
Periférico).

El PIC original se diseñó para ser usado con la nueva UCP de 16 bits de General Instruments,
el CP16000. Siendo en general una buena UCP, el CP1600 tenía malas prestaciones de E/S, y
el PIC de 8 bits se desarrolló en 1975 para mejorar el rendimiento del sistema quitando peso de
E/S a la UCP. El PIC utilizaba microcódigo simple almacenado en memoria ROM para
realizar estas tareas; y aunque el término no se usaba por aquel entonces, se trata de un diseño
RISC que ejecuta una instrucción cada 4 ciclos del oscilador.

En 1985 la división de microelectrónica de General Instrument se convirtió en una filial y el


nuevo propietario canceló casi todos los desarrollos, que para esas fechas la mayoría estaban
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 24
obsoletos. El PIC, sin embargo, se mejoró con EPROM para conseguir un controlador de canal
programable. Hoy en día multitud de PICs vienen con varios periféricos incluídos (módulos de
comunicación serie, UARTs, núcleos de control de motores, etc.) y con memoria de programa
desde 512 palabras a 32.000 palabras (una palabra corresponde a una instrucción en
ensamblador, y puede ser 12, 14 o 16 bits, dependiendo de la familia específica de PCImicro).

2.3.1 Juego de instrucciones y entorno de programación

El PIC usa un juego de instrucciones tipo RISC, cuyo número puede variar desde 35 para PICs
de gama baja a 70 para los de gama alta. Las instrucciones se clasifican entre las que realizan
operaciones entre el acumulador y una constante, entre el acumulador y una posición de
memoria, instrucciones de condicionamiento y de salto/retorno, implementación de
interrupciones y una para pasar a modo de bajo consumo llamada sleep.

Microchip proporciona un entorno de desarrollo freeware llamado MPLAB que incluye un


simulador software y un ensamblador. Otras empresas desarrollan compiladores C y BASIC.
Microchip también vende compiladores para los PICs de gama alta ("C18" para la serie F18 y
"C30" para los dsPICs) y se puede descargar una edición para estudiantes del C18 que
inhabilita algunas opciones después de un tiempo de evaluación.

Para Pascal existe un compilador de código abierto, JAL, lo mismo que PicForth para el
lenguaje Forth. GPUTILS es una colección de herramientas distribuídas bajo licencia GNU
que incluye ensamblador y enlazador, y funciona en Linux, MacOS y Microsoft Windows.
GPSIM es otra herramienta libre que permite simular diversos dispositivos hardware
conectados al PIC.

2.3.2 Programación del PIC

Para transferir el código de un ordenador al PIC normalmente se usa un dispositivo llamado


programador. La mayoría de PICs que Microchip distribuye hoy en día incorporan ICSP (In
Circuit Serial Programming, Programación serie incorporada) o LVP (Low Voltage
Programming, Programación a bajo voltaje), lo que permite programar el PIC directamente en
el circuito destino. Para la ICSP se usan los pines RB6 y RB7 como reloj y datos y el MCLR
para activar el modo programación aplicando un voltage de unos 11 voltios. Existen muchos
programadores de PICs, desde los más simples que dejan al software los detalles de
comunicaciones, a los más complejos, que pueden verificar el dispositivo a diversas tensiones
de alimentación e implementan en hardware casi todas las funcionalidades. Muchos de estos
programadores complejos incluyen ellos mismos PICs preprogramados como interfaz para
enviar las órdenes al PIC que se desea programar. Uno de los programadores más simples es el
TE20, que utiliza la linea TX del puerto RS232 como alimentación y las lineas DTR y CTR
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 25
para mandar o recibir datos cuando el microcontrolador está en modo programación. El
sofware de programación puede ser el ICprog, muy común entre la gente que utiliza este tipo
de microcontroladores.

Se pueden obtener directamente de Microchip muchos programadores/depuradores (octubre


2005):

2.3.3 Programadores

• PICStart Plus (puerto serie)


• Promate II (puerto serie)
• MPLAB PM3 (puerto serie y USB)
• ICD2 (puerto serie y USB)
• PICKit 1 (USB)
• PICKit 2 (USB)

2.3.4 Depuradores integrados

• ICD2 (USB)

2.3.5 Emuladores

• ICE2000 (puerto paralelo, convertidor a USB disponible)


• ICE4000 (USB)
• PIC EMU
• PIC CDlite

2.3.6 Tamaño de palabra

El tamaño de palabra de los microcontroladores PIC es fuente de muchas confusiones. Todos


los PICs (excepto los dsPIC) manejan datos en trozos de 8 bits, con lo que se deberían llamar
microcontroladores de 8 bits. Pero, a diferencia de la mayoría de UCPs, el PIC usa arquitectura
Harvard, por lo que el tamaño de las instrucciones puede ser distinto de tamaño de la palabra
de datos. De hecho, las diferentes familias de PICs usan tamaños de instrucción distintos, lo
que hace difícil comparar el tamaño del código del PIC con el de otros microcontroladores. Por
ejemplo, pongamos que un microcontrolador tiene 6144 bytes de memoria de programa: para
un PIC de 12 bits esto significa 4096 palabras y para uno de 16 bits, 3072 palabras.

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 26
2.3.7 Características

Los PICs actuales vienen con una amplia gama de mejoras hardware incorporadas:

• Núcleos de UCP de 8/16 bits con Arquitectura Harvard modificada


• Memoria Flash y ROM disponible desde 256 bytes a 256 kilobytes
• Puertos de E/S (típicamente 0 a 5,5 voltios)
• Temporizadores de 8/16 bits
• Tecnología Nanowatt para modos de control de energía
• Periféricos serie síncronos y asíncronos: USART, AUSART, EUSART
• Conversores analógico/digital de 10-12 bits
• Comparadores de tensión
• Módulos de captura y comparación PWM
• Controladores LCD
• Periférico MSSP para comunicaciones I2C, SPI, y I2S
• Memoria EEPROM interna con duración de hasta un millón de ciclos de
lectura/escritura
• Periféricos de control de motores
• Soporte de interfaz USB
• Soporte de controlador Ethernet
• Soporte de controlador CAN
• Soporte de controlador LIN
• Soporte de controlador Irda

2.3.8 Variaciones del PIC

2.3.8.1 PICs modernos

Los viejos PICs con memoria PROM o EPROM se estan renovando gradualmente por chips
con memoria Flash. Así mismo, el juego de instrucciones original de 12 bits del PIC1650 y sus
descendientes directos ha sido suplantado por juegos de instrucciones de 14 y 16 bits.
Microchip todavía vende versiones PROM y EPROM de la mayoría de los PICs para soporte
de aplicaciones antiguas o grandes pedidos.

2.3.8.2 Clones del PIC

Por todos lados surgen compañías que ofrecen versiones del PIC más baratas o mejoradas. La
mayoría suelen desaparecer rápidamente. Una de ellas que va perdurando es Ubicorn
(antiguamente Scenix) que vende clones del PIC que funcionan mucho más rápido que el
original. OpenCores tiene un núcleo del PIC16F84 escrito en Verilog.
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 27
2.3.8.3 PICs wireless

El microcontrolador rfPIC integra todas las prestaciones del PICmicro de Microchip con la
capacidad de comunicación wireless UHF para aplicaciones RF de baja potencia. Estos
dispositivos ofrecen un diseño muy comprimido para ajustarse a los cada vez más demanadado
requerimientos de miniaturización en aparatos electrónicos.

2.3.8.4 PICs para procesado de señal (dsPICs)

Los dsPICs son el último lanzamiento de Microchip, comenzando a producirlo s a gran escala a
finales de 2004. Son los primeros PICs con bus de datos inherente de 16 bits. Incorporan todas
las posibilidades de los anteriores PICs y añaden varias operaciones de DSP implementadas en
hardware, como multiplicación con suma de acumulador (multiply-accumulate, o MAC),
barrel shifting, bit reversion o multiplicación 16x16 bits.

2.3.8.5 PICs más comúnmente usados

• PIC12C508/509 (encapsulamiento reducido de 8 pines, oscilador interno, popular en


pequeños diseños como el iPod remote)
• PIC16F84 (Considerado obsoleto, pero imposible de descartar y muy popular)
• PIC16F84A (Buena actualización del anterior, algunas versiones funcionan a 20 MHz,
compatible 1:1)
• PIC12F629/675
• PIC16F628
• La familia PIC16F87X (los hermanos mayores del PIC16F84, con cantidad de mejoras
incluidas en hardware. Bastante común en proyectos de aficionados)
• PIC18F452

2.3.8.6 PICs en Internet

Se puede encontrar mucha información y documentación sobre PICs en Internet


principalmente por dos motivos: el primero, porque han sido muy usados para romper los
sistemas de seguridad de varios productos de consumo mayoritario (televisión de pago, Play
Station...), lo que atrae la atención de los crackers; y segundo, porque el PIC16C84 fue uno de
los primeros microcontroladores fácilmente reprogramables para aficionados. Hay muchos
foros y listas de correo dedicados al PIC en los que un usuario puede proponer sus dudas y
recibir respuestas. [2]

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 28
2.4 LCD

LCD son las siglas en inglés de "Pantalla de Cristal Líquido" ("Liquid Crystal Display")
inventado por Jack Janning que fue empleado de NCR.

Se trata de un sistema eléctrico de presentación de datos formado por 2 capas conductoras


transparentes y en medio un material especial cristalino (cristal líquido) que tienen la
capacidad de orientar la luz a su paso.

Cuando la corriente circula entre los electrodos transparentes con la forma a representar (por
ejemplo, un segmento de un número) el material cristalino se reorienta alterando su
transparencia.

El material base de un LCD lo constituye el cristal líquido, el cual exhibe un comportamiento


similar al de los líquidos y unas propiedades físicas anisotrópicas similares a las de los sólidos
cristalinos. Las moléculas de cristal líquido poseen una forma alargada y son más o menos
paralelas entre sí en la fase cristalina. Según la disposición molecular y su ordenamiento, se
clasifican en tres tipos: nemáticos, esméticos y colestéricos. La mayoría de cristales responden
con facilidad a los campos eléctricos, exhibiendo distintas propiedades ópticas en presencia o
ausencia del campo. El tipo más común de visualizador LCD es, con mucho, el denominado
nemático de torsión, término que indica que sus moléculas en su estado desactivado presentan
una disposición en espiral. La polarización o no de la luz que circula por el interior de la
estructura, mediante la aplicación o no de un campo eléctrico exterior, permite la activación de
una serie de segmentos transparentes, los cuales rodean al cristal líquido. Según sus
características ópticas, pueden también clasificarse como: reflectivos, transmisivos y
transreflectivos. [5]

2.4.1 LCD en la industria

Composición por segmentos y por píxeles

Las pantallas LCD se encuentran en multitud de dispositivos industriales y de consumo:


máquinas expendedoras, electrodomésticos, equipos de telecomunicaciones, computadoras,
Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx
Proyecto de Diseño con Electrónica Integrada.
Página 29
etc. Todos estos dispositivos utilizan pantallas fabricadas por terceros de una manera más o
menos estandarizada. Cada LCD se compone de una pequeña placa integrada que consta de:

La propia pantalla LCD.

Un microchip controlador.

Una pequeña memoria que contiene una tabla de caracteres.

Un interfaz de contactos eléctricos, para conexión externa.

Opcionalmente, una luz trasera para iluminar la pantalla.

El controlador simplifica el uso del LCD proporcionando una serie de funciones básicas que se
invocan mediante el interfaz eléctrico, destacando:

La escritura de caracteres en la pantalla.

El posicionado de un cursor parpadeante, si se desea.

El desplazamiento horizontal de los caracteres de la pantalla (scrolling).

Etc.

La memoria implementa un mapa de bits para cada carácter de un juego de caracteres, es decir,
cada octeto de esta memoria describe los puntitos o pixels que deben iluminarse para
representar un carácter en la pantalla. Generalmente, se pueden definir caracteres a medida
modificando el contenido de esta memoria. Así, es posible mostrar símbolos que no están
originalmente contemplados en el juego de caracteres.

El interfaz de contactos eléctricos suele ser de tipo paralelo, donde varias señales eléctricas
simultáneas indican la función que debe ejecutar el controlador junto con sus parámetros. Por
tanto, se requiere cierta sincronización entre estas señales eléctricas.

La luz trasera facilita la lectura de la pantalla LCD en cualquier condición de iluminación


ambiental.

Existen dos tipos de pantallas LCD en el mercado: pantallas de texto y pantallas gráficas.

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 30
2.4.2 LCD de texto

Los LCD de texto son los más baratos y simples de utilizar. Solamente permiten visualizar
mensajes cortos de texto. Existen algunos modelos estandarizados en la industria, en función
de su tamaño medido en número de líneas y columnas de texto. Existen modelos de una, dos y
cuatro filas únicamente. El número de columnas típico es de ocho, dieciséis, veinte y cuarenta
caracteres.

El controlador Hitachi HD44780 se ha convertido en un estándar de industria cuyas


especificaciones funcionales son imitadas por la mayoría de los fabricantes. Este controlador
cuenta con los siguientes interfaces eléctricos:

D0-D7: ocho señales eléctricas que componen un bus de datos.

R/W: una señal que indica si se desea leer o escribir en la pantalla (generalmente solamente se
escribe).

RS: una señal que indica si los datos presentes en D0-D7 corresponden bien a una instrucción,
bien a sus parámetros.

E: una señal para activar o desactivar la pantalla.

V0: señal eléctrica para determinar el contraste de la pantalla. Generalmente en el rango de


cero a cinco voltios. Cuando el voltaje es de cero voltios se obtienen los puntos más oscuros.

Vss y Vdd: señales de alimentación. Generalmente a cinco voltios. La señal Vss sirve para
encender la luz trasera de la pantalla en algunos modelos.

Estas señales son fácilmente controladas desde un ordenador a través de un interfaz paralelo,
típicamente a través del interfaz IEEE 1284, también conocido como "Centronics". El mismo
que se utiliza para conectar impresoras. [3]

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 31
2.4.3 LCD de gráficos

Detalle de una pantalla LCD en color

Las pantallas LCD gráficas permiten encender y apagar individualmente pixels de la pantalla.
De esta manera es posible mostrar gráficos en blanco y negro. No solamente texto. Los
controladores más populares son el Hitachi HD61202 y el Samsung KS0108. Los tamaños
también están estandarizados y se miden en filas y columnas de pixeles. Algunos tamaños
típicos son 128x64 y 96x60. Naturalmente, algunos controladores también permiten la
escritura de texto de manera sencilla.

Estas pantallas son más caras y complejas de utilizar. Existen pocas aplicaciones donde no
baste con un LCD de texto. Se suelen utilizar, por ejemplo, en ecualizadores gráficos. [3]

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 32
2.5 SIMULACIÓN DE LA PRIMERA PARTE DEL CIRCUITO

V1

9 V

XMM1

C6 V2
R5 100nF 5 V
C4
100nF
Key = A 100%

Q2

2N4403
R1 R7

100kOhm_5% Q1 1.0MOhm_5%

C2 GaAsFET_N_VIRTUAL

47pF
D2 D1 R4 C5
R2
C1 1.0MOhm_5% 1N4148
1.5uF 30Ohm_5%
47nF
C3 R3
1N4148 R6
470pF 10Ohm_5%
820kOhm_5%

REFERENCIAS BIBLIOGRÁFICAS

[1] www.electronicaestudio.com

[2] www.gestialba.com

[3] www.wikipedia.com

[4] www.webelectronica.com.ar

[5] www.comunidadelectronicos.com

Ing. Juan Gilberto Mateos Suárez, Código;7917333, jmateos@proton.ucting.udg.mx


Proyecto de Diseño con Electrónica Integrada.
Página 33

Das könnte Ihnen auch gefallen