Documente Academic
Documente Profesional
Documente Cultură
ALUMNOS:
ULISES TERAN JURADO
DAVID HERNANDEZ ZARAGOZA
JUAN CARLOS PANTOJA HERNANDEZ
CUAUHTEMOC DANIEL FUENTES PEA
NDICE
1.
Objetivos e Introduccin. .. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.1
Objetivos Generales. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.2
Objetivos Particulares. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
1.3
Introduccin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .4
2.
Antecedentes Tericos. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1
Microcontroladores PIC.. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .5
2.2
2.3
2.4
2.5
2.6
3.0
3.1
3.2
3.3
4.0
El Sensor. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .11
4.1
Tipos de sensores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
4.2
4.3
5.0
5.1
5.2
Tipos de Optoacopladores. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
5.3
El Triac y su funcionamiento. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14
5.4
5.5
6.0
6.1
6.2
Modos de operacin. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
6.3
Comandos de control. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18
7.0
7.1
7.2
7.3
7.4
Organizacin de la memoria. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 29
8.0
8.1
Implementacin fsica. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31
8.2
8.3
9.0
Conclusiones. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 40
10.0
Bibliografia. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41
1.3 Introduccin
Hoy en da, la electrnica ha avanzado a pasos agigantados, en su mayora los sistemas
que se desarrollan son digitales. Existen muchos dispositivos que permiten realizar diversos
diseos de cualquier clase, existen dos dispositivos muy utilizados: Los microprocesadores y los
microcontroladores.
Los microprocesadores son dispositivos los cuales se pueden configurar como el usuario
lo desee, posee ms instrucciones y ms capacidad que los microcontroladores, generalmente
estos dispositivos se utilizan para disear proyectos donde se requiere mucho procesamiento
de los datos. La marca lder en microprocesadores es Intel.
Los microcontroladores son dispositivos de menor capacidad pero estos son ideales
para el diseo y sus instrucciones son ms fciles de manipular y son econmicos. Los ms
comercializados son los AVR y los PIC.
En nuestro caso decidimos trabajar con los PIC, ya que son los dispositivos ms utilizados
hoy en da. Existe una gran variedad de estos dispositivos, elegimos uno de gama media el
PIC16F877A, este dispositivo cumple con nuestras especificaciones de diseo. Ya elegido el PIC,
diseamos nuestra etapa de potencia, aqu utilizamos un SCR un dispositivo semiconductor de
cuatro etapas y por ltimo buscamos el sensor.
(2048) palabras de 12 bits y est organizada en pginas de 512 palabras cada una. La memoria
de datos est formada por registros de 8 bits y se organiza en bancos de 32 registros cada uno.
Familia de microcontroladores PIC de gama baja:
Los PIC16X5xx
Los PIC12X5xx
Los PIC10
Los PIC17
Los PIC18
procesamiento hay una accin con un actuador, que convierte una seal elctrica en la accin
fsica deseada, por ejemplo activar un motor para poner en marcha un calefactor.
Este mdulo puede tener hasta ocho entradas analgicas que estn disponibles como
funciones alternativas de las terminales de los puertos paralelos. El nmero de entradas
analgicas o canales de entrada depende del PIC en particular.
El amplificador de muestreo y retencin est compuesto bsicamente por un
condensador (sin amplificadores de entrada ni de salida), que empiezan a cargarse en cuanto
se selecciona en el multiplexor el canal deseado. La tensin en el condensador sigue la
evolucin de entrada (modo track), y cuando se da una orden el condensador se desconecta
de la entrada analgica y empieza la conversin.
El resultado de la conversin se deposita en los registros ADRESH Y ADRESL. Dentro del
espacio de 16 bits conformado por este par de registros, los 10 bits resultantes de una
conversin se pueden depositar justificados a la izquierda o a la derecha como se muestra en la
figura. La opcin de depositar el resultado justificado a la izquierda resulta muy apropiada para
operar el CAD como convertidor de 8 bits, con el resultado de la conversin en el registro
ADRESH.
Para iniciar la conversin A/D hay que activar el bit de control GO. Cuando ha
terminado la conversin, se activa el bit de estado DONE#. GO y DONE estn en el mismo bit
del registro ADCON0. El programador debe poner a uno este bit para iniciar la conversin A/D y
cuando este bit toma el valor de cero, el resultado de la conversin est en los registros
ADRESH y ADRESL. Cuando finaliza la conversin A/D, se activa el bit ADIF del registro PIR para
solicitar la interrupcin del microcontrolador para esto el bit GIE del registro INTCON es uno la
solicitud de la interrupcin se hace vlida.
4.0 El sensor
Es un dispositivo diseado para poder captar informacin de alguna magnitud como:
Qumica, Fsica y transformarla en magnitud elctrica lo cual nos facilita para poder manipular
y cuantificar la informacin recabada.
(diodos LED, diodos laser etc.) y fuentes receptoras de dicha seal como pueden ser
fotodiodos, fototransistores etc. Otros tipos como sensores de contacto, su funcionamiento es
simple se activa o desactiva si se encuentra en contacto con un objeto, sensores de
movimiento que son utilizados en robtica para medir la evolucin de las diferentes partes
mecnicas etc.
Fototransistor: Est compuesto por un optoacoplador con una etapa de salida formada
por un transistor BJT. Por ejemplo el 4N25 y el 4N35.
Fototriac: Se compone por un optoacoplador con una etapa de salida compuesta por
un Triac.
Fototriac de paso por cero: Optoacoplador con una etapa de salida por un triac de
cruce por cero. El circuito interno de cruce por cero conmuta al triac en los cruce por
cero de la corriente alterna. Por ejemplo tenemos al MOC3031, 3041.
13
Opto tiristor: Diseado para el preciso aislamiento de la red elctrica y seal lgica.
de sistemas lgicos con equipos que tienen alimentarse con los 120V de AC. Su caracterstica
ms importante es:
Cuenta con un detector de paso por cero interno, lo que permite reducir una cantidad
de componentes externos.
15
16
Circuito de Reset.
Para conectar el LCD con el microprocesador, nos tenemos que basar en la tabla que
viene en la hoja de especificaciones del LCD para poder configurarlo en el microcontrolador
PIC.
Para conectar el LCD a microcontroladores de clase media se pueden utilizar los
puertos paralelos A y B. Mediante el software adecuado se generan las seales con la secuencia
correcta.
Las seales a considerar son las siguientes:
RS (Register Select, datos/control#) Esta seal indica al mdulo LCD, si la seal que se
enva es un dato (RS=1) o una orden (RS=0).
R/W# (Read/Write, lectura/escritura#) Esta seal indica si hay lectura (si est en 1) o en
escritura (si est en 0)
DB0 a DB7 (Data bus, bus de datos) Por estas lneas transitan las rdenes y los datos en
ambas direcciones.
17
1 1/D S
Tiempo de ejecucin: 40 s
18
Tiempo de ejecucin: 40 s
CURSOR OR DISPLAY SHIFT
Mueve el cursor y desplaza el display sin cambiar el contenido de la memoria de datos
de visualizacin DD RAM.
Cdigo:
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
S/C R/L X
Tiempo de ejecucin: 40 s
FUNCTION SET
Establece el tamao de interface con el bus de datos (DL), nmero de lneas del display
(N) y tipo de carcter (F).
Cdigo:
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
DL N
Tiempo de ejecucin: 40 s
SET THE CG RAM ADDRESS
El mdulo LCD adems de tener definidos todo el conjunto de caracteres ASCII, permite
al usuario definir 4 u 8 caracteres grficos. La composicin de estos caracteres se va guardando
en una memoria llamada CG RAM con capacidad para 64 bytes. Cada carcter grfico definido
por el usuario se compone de 16 u 8 bytes que se almacenan en sucesivas posiciones de la
CGRAM.
19
Direccin de la CG RAM
Tiempo de ejecucin: 40 s
Direccin de la DD RAM
Tiempo de ejecucin: 40 s
READ BUSY FLAG ET ADDRESS
Cuando el mdulo LCD est ejecutando cualquiera de estas instrucciones, tarda un
cierto tiempo de ejecucin en el que no se le debe mandar ninguna otra instruccin. Para ello
dispone de un flag llamado BUSY (BF) que indica que se est ejecutando una instruccin previa.
Esta instruccin de lectura informa del estado de dicho flag adems de proporcionar el valor
del contador de direcciones de la CG RAM o de la DDRAM segn la ltima que se haya
empleado.
Cdigo:
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
20
BF
Tiempo de ejecucin: 40 s
WRITE DATA TO CG OR DD RAM
Mediante este comando se escribe en la memoria DD RAM los datos que se quieren
presentar en pantalla y que sern los diferentes cdigos ASCII de los caracteres a visualizar.
Igualmente se escribe en la memoria CG RAM los diferentes bytes que permiten confeccionar
caracteres grficos a gusto del usuario. El escribir en uno u otro tipo de memoria depende de si
se ha empleado previamente la instruccin de direccionamiento DD RAM o la de
direccionamiento CG RAM.
Cdigo:
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
0
Tiempo de ejecucin: 40 s
READ DATA FROM CG OR DD RAM
Mediante este comando se lee de la memoria DD RAM los datos que haya almacenados
y que sern los cdigos ASCII de los caracteres visualizados. Igualmente se lee de la memoria
CG RAM los diferentes bytes con los que se ha confeccionado un determinado carcter grfico.
El leer de uno u otro tipo de memoria depende de si se ha empleado previamente la
instruccin de direccionamiento de la DD RAM o la de direccionamiento CG RAM.
Cdigo:
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 DB0
1
Tiempo de ejecucin: 40 s
Abreviaturas
Se listan a continuacin las abreviaturas empleadas en los cdigos anteriores y su
significado:
S = 1 Desplaza la visualizacin cada vez que se escribe un dato
S = 0 Modo normal
I/D = 1 Incremento del cursor
21
22
Frecuencia de 20 Mhz.
En la Figura 11, se muestra las terminales con que cuenta el pic 16F877A.
23
PIN
DESCRIPCION
OSC1/CLKIN (9)
OSC2/CLKOUT (10)
MCLR/VPP/THV (1)
RA0/AN0 (2)
RA1/AN1 (3)
RA2/AN2/VREF- (4)
RA3/AN3/VREF+ (5)
RA4/T0CKI (6)
RA5/SS#/AN4 (7)
RB0/INT (21)
RB1 (22)
RB2 (23)
RB3/PGM (24)
RB4 (25)
RB5 (26)
RB6/PGC( 27)
RB7/PGD (28)
24
RC2/CCP1(13)
RC3/SCK/SCL (14)
RC4/SDI/SDA (15)
RC5/SDO (16)
RC6/TX/CK (17)
RC7/RX/DT (18)
RE0/RD#/AN5 (8)
RE1/WR#/AN6 (9)
RE2/CS#/AN7
VSS(8,19)
VDD(20,32)
Fuente (5V).
Bus de datos
DATOS
Arquitectura Harvard:
Bus de direcciones
Bus de direcciones
UCP (PROCESADOR)
INSTRUCCIONES
Bus de datos
DATOS
bus de datos
26
28
SFR (Special Funtion Register) Registro de propsito especial, son registros que ayudan
a configurar el hardware interno, as como sirven para escribir o leer valores de los
diferentes componentes que constituyen el microcontrolador. Por ejemplo el registro
TRISA que nos permite configurar el modo de trabajo de las lneas del puerto A.
GFR (General Funtion Register) Registro de propsito general, son posiciones de
memoria que se puede usar para almacenar valores que emplean nuestro programa
cabe mencionar que la memoria de datos se divide en cuatro bancos. Las posiciones
bajas estn reservadas para los SFR en tanto que las altas para los GFR.
Tambien tiene una memoria EEPROM con 256 posiciones, para acceder a la memoria
no se puede leer o escribir directamente es decir, colocar la direccin y obtener o dejar
el valor. Para poder utilizarla se requiere de otros registros adicionales es decir, se
utiliza indirectamente.
29
30
31
32
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
0x21
0x22
0x22
0x23
0x24
0x25
0x26
0x27
0x28
33
ASCII_L
HEXADECIMAL
Key_var
EQU
EQU
EQU
0x29
0x2A
0x2B
ORG 0x00
GOTO EMPEZAR
ORG 0x05
EMPEZAR
BSF STATUS,RP0
;banco 1
BSF TRISA,0
;entrada de sensor
BSF
TRISA,3
;voltaje Ref=5.1
CLRF TRISB
MOVLW
b'11111100'
MOVWF
TRISC
;salidas para LEDs
CLRF TRISD
BSF
ADCON1,0
;para permitir ingreso de Vref=5.1V
BCF
OPTION_REG,7
;resistencias Pull Up activada
BCF
STATUS,RP0
;banco_0
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;CONFIGURACION DEL CONVERTIDOR A/D
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MOVLW
B'01000001'
;RA0=entrada de sensor
MOVWF
ADCON0
CLRF
PORTC
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INICIO
BSF
ADCON0,GO
;INICIAR CONVERSION
BTFSC
ADCON0,GO
GOTO $-1
; MOSTRAR EN LCD
CALL
RETARDO
;
MOVF
ADRESH,0
;W=Temperatura
CALL
inicio_LCD
; inicio de LCD
MOVF
ADRESH,0
CALL
Hex_Ascii ;conversin de HEXADECIMAL a ASCII
MOVLW
'T'
CALL
EnviaCarLCD
MOVLW
'.'
CALL
EnviaCarLCD
MOVLW
'A'
CALL
EnviaCarLCD
MOVLW
'.'
CALL
EnviaCarLCD
MOVLW
'U'
CALL
EnviaCarLCD
MOVLW
'A'
CALL
EnviaCarLCD
MOVLW
'M'
CALL
EnviaCarLCD
34
MOVLW
'-'
CALL
EnviaCarLCD
MOVLW
'I'
CALL
EnviaCarLCD
MOVLW
'='
CALL
EnviaCarLCD
MOVLW
' '
CALL
EnviaCarLCD
MOVF
ASCII_H,0
; enva las centenas de temp.
CALL
EnviaCarLCD
MOVF
ASCII_M,0
; enva las decenas de temp.
CALL
EnviaCarLCD
MOVF
ASCII_L,0
; enva las unidades de temp.
CALL
EnviaCarLCD
MOVLW
0xDF
; smbolo de grados celsius
CALL
EnviaCarLCD
MOVLW
'C'
CALL
EnviaCarLCD
MOVLW
DISP_ON_NOCURSOR ; apaga el cursor del LCD
CALL
EnviaCmdLCD
CALL
COMPARAR
;checa el rango de temperatura
CALL
RETARDO
;retardo de 20ms para el ADC
CALL
RETARDO
CALL
RETARDO
MOVLW
.22
;TEMP. INICIAL DEL S.POINT BAJO
MOVWF
TEMPERATURA_L
MOVLW
.28
;TEMP. INICIAL DEL S.POINT ALTO
MOVWF
TEMPERATURA_H
CALL
MUESTRA.S.POINT
GOTO
PRINCIPAL
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;"TEMPERATURA S.POINT": MUESTRA LA TEMPERATURA S.POINT Y LA
;TEMPERATURA ACTUAL GUARDADO EN TEMPERATURA Y TEMP_ACTUAL
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
MUESTRA.S.POINT
MOVLW
DISP_LINEA2
; establece el cursor en 2a fila
CALL
EnviaCmdLCD
MOVLW
'L'
CALL
EnviaCarLCD
MOVLW
'='
CALL
EnviaCarLCD
MOVLW
.50
SUBWF
TEMPERATURA_L,W
BTFSS
STATUS, Z
GOTO
FINAL2
MOVLW
.99
GOTO
IMPRIME2
FINAL2
MOVF
TEMPERATURA_L,W
IMPRIME2
35
CALL
MOVF
ADDLW
CALL
MOVF
ADDLW
CALL
MOVF
ADDLW
CALL
MOVLW
CALL
MOVLW
CALL
MOVLW
CALL
MOVLW
CALL
MOVLW
CALL
MOVLW
CALL
MOVLW
SUBWF
BTFSS
GOTO
MOVLW
GOTO
FINAL1
MOVF
IMPRIME1
CALL
MOVF
ADDLW
CALL
MOVF
ADDLW
CALL
MOVF
ADDLW
CALL
MOVLW
CALL
MOVLW
CALL
RETURN
PRINCIPAL
BTFSC
GOTO
GOTO
BIN_A_BCD
CENTENAS,W
'0'
EnviaCarLCD
DECENAS,W
'0'
EnviaCarLCD
UNIDADES,W
'0'
EnviaCarLCD
0XDF
EnviaCarLCD
'C'
EnviaCarLCD
0X20
EnviaCarLCD
0X20
EnviaCarLCD
'H'
EnviaCarLCD
'='
EnviaCarLCD
.50
TEMPERATURA_H,W
STATUS,Z
FINAL1
.99
IMPRIME1
TEMPERATURA_H,W
; ESTA FUNC IMPRIME LA TEMP ACTUAL
BIN_A_BCD
CENTENAS,0
'0'
EnviaCarLCD
DECENAS,0
'0'
EnviaCarLCD
UNIDADES,0
'0'
EnviaCarLCD
0XDF
EnviaCarLCD
'C'
EnviaCarLCD
PORTB,2
S.POINT
INICIO
36
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;RUTINA PARA GENERAR EL RETARDO DE 20ms.
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
RETARDO ; 20ms
MOVLW
.10
MOVWF
20H
LAZO
DECFSZ
20H,1
GOTO
LAZO
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;RUTINA PARA HACER LA COMPARACION ENTRE LAS TEMP. INF Y SUP
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
COMPARAR
MOVF
TEMPERATURA_L,0
DECF
TEMPERATURA_L,0
MOVWF
T_1
MOVF
ADRESH,0
;W=TEMPERATURA ACTUAL
SUBWF
T_1,0
;W=T_1-TEMPERATURA
BTFSC
STATUS,C
;C=0? (TEMP>T_1)
GOTO
LED_1
;NO
GOTO
SIGUIENTE
;SI
LED_1
MOVLW
B'00000001'
MOVWF
PORTC
RETURN
SIGUIENTE
MOVF
TEMPERATURA_H,0
MOVWF
T_2
MOVWF
TEMPERATURA_H
MOVF
ADRESH,0
;W=TEMPERATURA ACTUAL
SUBWF
T_2,0
;W=T_2-TEMPERATURA
BTFSC
STATUS,C
;C=0? (TEMP>T_2)
GOTO
LED_2
; NO
GOTO
LED_3
; SI
LED_2
MOVLW
B'00000000'
MOVWF
PORTC
RETURN
LED_3
MOVLW
B'00000010'
MOVWF
PORTC
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;RUTINA PARA CONVERTIR DE HEXADECIMAL A ASCII
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
Hex_Ascii
;cargar en W el dato hex.
MOVWF
HEXADECIMAL
CLRF
ASCII_H
;Para BCD D'0'
CLRF
ASCII_M
;Para BCD D'0'
37
CLRF
ASCII_L
;Para BCD D'0'
Centenas
MOVLW
d'100'
;D'100' --> W
SUBWF
HEXADECIMAL,W
;HEXADECIMAL - D'100' --> W
BTFSS
STATUS,C
;es menor que D'100' ?
GOTO
Decenas
;Si
MOVWF
HEXADECIMAL
;Salva el resto
INCF
ASCII_H,F
;Inc. el cont. de centenas BCD
GOTO
Centenas
;Vuelve por otros D'100'
Decenas
MOVLW
d'10'
;D'10' --> W
SUBWF
HEXADECIMAL,W
;HEXADECIMAL - D'10' --> W
BTFSS
STATUS,C
; es menor que D'10' ?
GOTO
Unidades
;Si
MOVWF
HEXADECIMAL
;Salva el resto
INCF
ASCII_M,F
;Inc. el cont. de decenas BCD
GOTO
Decenas
;Vuelve por otros D'10'
Unidades
MOVF
HEXADECIMAL,W
;El resto pertenece
MOVWF
ASCII_L
;a las unidades BCD
CLRF
HEXADECIMAL
;en cero el registro HEXADECIMAL
Bcd_A_Ascii
MOVLW
H'30'
;H'30' --> W
IORWF
ASCII_L,F
;Convierte de BCD a ASCII
IORWF
ASCII_M,F
;Convierte de BCD a ASCII
MOVF
ASCII_H,F
;ASCII_H --> F
BTFSC
STATUS,Z
;? ASCII_H es D'00' ?
GOTO
Espacio
;Si
MOVLW
H'30'
;H'30' --> W
IORWF
ASCII_H,F
;Convierte de BCD a ASCII
RETURN
;
Espacio
MOVLW
'0'
;A' ' --> W
MOVWF
ASCII_H
;A' ' --> ASCII_H
RETURN
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;ESTA RUTINA SOLO GENERA LA VARIANZA DEL S.POINT
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
S.POINT
CALL
RETARDO
BTFSC
PORTB,2
GOTO
$-1
SALTO
BTFSC
PORTB,0
GOTO
MENOS
BTFSC
PORTB,1
GOTO
MAS
BTFSC
PORTB,2
GOTO
FIN.S.POINT
38
GOTO
SALTO
CALL
DECF
CALL
BTFSC
GOTO
GOTO
RETARDO
TEMPERATURA_L,F
MUESTRA.S.POINT
PORTB,0
$-1
SALTO
MENOS
MAS
CALL
INCF
CALL
BTFSC
GOTO
GOTO
FIN.S.POINT
CALL
BTFSS
GOTO
GOTO
RETURN
RETARDO
TEMPERATURA_L,F
MUESTRA.S.POINT
PORTB,1
$-1
SALTO
RETARDO
PORTB,2
PRINCIPAL
FIN.S.POINT
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
;PROGRAMA QUE CONVIERTE UN NUMERO DECIMAL A BCD
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
BIN_A_BCD
CLRF
CENTENAS
CLRF
DECENAS
MOVWF
UNIDADES
BCD_RESTA
MOVLW
.10
SUBWF
UNIDADES,W
BTFSS
STATUS,C
GOTO
BIN_BCD_FIN
BCD_DECENA
MOVWF
UNIDADES
INCF
DECENAS,F
MOVLW
.10
SUBWF
DECENAS,W
BTFSS
STATUS,C
GOTO
BCD_RESTA
RETURN
BIN_BCD_FIN
SWAPF
DECENAS,W ;En el nibble alto estan las decenas.
ADDWF
UNIDADES,W ;En el nibble bajo estan las unidades
MOVWF
PORTB
;Se visualiza en el puerto de salida.
;%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
INCLUDE <LCD.ASM>
INCLUDE <RETARDO.ASM>
END
39
D0
D1
D2
D3
D4
D5
D6
D7
7
8
9
10
11
12
13
14
RS
RW
E
4
5
6
1
2
3
VSS
VDD
VEE
LM016L
RV2
10k
U2(+VS)
U2
U1
13
14
1
10.0
VOUT
2
3
4
5
6
7
LM35
8
9
10
B1
OSC1/CLKIN
OSC2/CLKOUT
MCLR/Vpp/THV
RB0/INT
RB1
RB2
RB3/PGM
RB4
RB5
RB6/PGC
RB7/PGD
RA0/AN0
RA1/AN1
RA2/AN2/VREFRA3/AN3/VREF+
RA4/T0CKI
RA5/AN4/SS
RC0/T1OSO/T1CKI
RC1/T1OSI/CCP2
RE0/AN5/RD
RC2/CCP1
RE1/AN6/WR
RC3/SCK/SCL
RE2/AN7/CS
RC4/SDI/SDA
RC5/SDO
RC6/TX/CK
RC7/RX/DT
2.55
RD0/PSP0
RD1/PSP1
RD2/PSP2
RD3/PSP3
RD4/PSP4
RD5/PSP5
RD6/PSP6
RD7/PSP7
33
34
35
36
37
38
39
40
15
16
17
18
23
24
25
26
19
20
21
22
27
28
29
30
R1
CALENTADOR
330
LED-BLUE
R2
VENTILADOR
330
LED-BLUE
PIC16F877
9.0 Conclusiones
Como se pudo observar los objetivos del proyecto se cumplieron pues logramos
desarrollar un sistema digital capaz de monitorear y controlar los niveles de temperatura en un
invernadero. Cabe mencionar que cuando estuvimos llevando a cabo el diseo nos
encontramos con detalles lgicos que no estaban contemplados o que a simple vista no se
detectaron pero que gracias al trabajo en equipo pudimos resolver estos detalles sin demorar
40
demasiado tiempo. La parte de la simulacin fue muy importante, pues al comenzar con el
cdigo y cuando aun no contbamos con capital para poder comprar los materiales necesarios
compilbamos una y otra vez haciendo uso de los recursos que nos ofrece el simulador
PROTEUS. Como se mencion el sistema consisti en una red de sensores en paralelo el cual
tenan la finalidad de sensar la temperatura en distintos puntos del invernadero. Por ltimo
podemos agregar que si hubisemos contado con el suficiente capital o el apoyo de algn
dueo de un invernadero el proyecto lo hubiramos implementado de manera permanente en
dicha instalacin. Ahora solo falta agradecer al Profesor Fausto Casco por el empeo y la
atencin que tuvo con nosotros al disear, construir e implementar este proyecto.
10.0 Bibliografa
Microchip PIC16F877A Data Sheet. 2001. (Manual de referencia de la familia de los PIC
16F877A).
http://www.microchip.com
REVISTA SABER ELECTRONICA TODO SOBRE EL PIC 16F877A
APUNTES DE SISTEMAS DIGITALES I,II Y III PROF. MOISES QUEZADA NAQUID UAM-I
Manual de simulador PROTEUS
Manual de operacion MPLAB
PC ARCHITECTURE from ASSEMBLY LANGUAJE to C DAVID HERGERT, NANCY
THIBEAULT Ed. Prentice Hall, 1998.
DIGITAL AND MICROPROCESSOR FUNDAMENTALS Theory and Applications WILLIAM
KLEITZ Ed. Prentice Hall, 1997
Specifications for lcd module. MicroElectronics Corporation.
http://www.microelect.com
MC78XX/LM78XX Data Sheet. Fairchild Semiconductor.
http://www.fairchildsemi.com
Keypads Data Sheet. Grayhill Inc.
http://www.grayhill.com
http://www.electronicafacil.net/circuitos/
41