Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC PRÁCTICA 7 SENSADO DE TEMPERATURA CON INTERFAZ PIC - PC OBJETIVO Teniendo como base las dos prácticas anteriores, realizar un programa que permita acceder la lectura de la temperatura en el PIC y, con ayuda de un programa., poder mostrarla en la PC. INTRODUCCION Actualmente muchos procesos tienen interfaz con una computadora personal. Debido a esta importancia es necesario realizar alguna práctica referente a la comunicación entre un PIC y la PC. Por ejemplo: un programa en la PC que permita leer la temperatura proporcionada por el PIC por medio de la comunicación asíncrona. El programa de la PC se realiza en Lab View debido a que tiene un ambiente agradable para el usuario. Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC DIAGRAMA DE FLUJO Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC DIAGRAMA ESQUEMATICO Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC CÓDIGO FUENTE ; ; ; ; ************************************************************************* ********** Programa para desplegar la temperatura en un LCD y *********** ********************* transmitirlo ala PC**con LABVIEW ****************** ************************************************************************* LIST P=16F877 include<p16f877.inc> PCL ESTADO PUERTOB PUERTOD PCLATH RDELAY CONTA0 CONTA1 CONTA2 Letra Flinea RESULTADO CONTA3 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 0x02 0x03 0x06 0X08 0X0A 0x21 0x22 0x23 0x24 0x25 0x26 0x27 0x28 ;Constantes para el programa ;*************************** Linea1LCD Linea2LCD ClrLCD CasaLCD IncLCD DecLCD OnLCD OfLCD OnCursor OffCursor BlinkCursor IzqLCD DerLCD IzqCursor DerCursor FuncionLCD EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU 0x80 0xC0 0x01 0x02 0x07 0x05 0x0C 0x08 0x0E 0x0C 0x0F 0x18 0x1C 0x10 0x14 0x38 RS ;RW E W F EQU EQU EQU EQU EQU 6 1 7 0 1 ORG goto ORG 0 INICIAR 5 ;* IZQUIERDA ;* DERECHA ;Pantalla de dos lineas ;Comandos o Caracteres ;Escritura al LCD ;Habilitacion para el LCD ;Registro W ;Registro de trabajo ;PROGRAMA PRINCIPAL ;****************** INICIAR call call call call Port_transre Port_LCD Ini_LCD Port_ADC ;Inicializa el LCD ;inicializa el convertidor Sistemas Digitales de Mando y Control rb1 rb2 medir Práctica 7 Sensado de Temperatura con Interfaz PIC-PC movlw Linea1LCD call Comando_LCD movlw movwf clrf 0x0f Flinea Letra movf call call call incf decfsz goto Letra,W Mensaje Caracter_LCD delay Letra,F Flinea,F rb2 ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---; F=1 en el registro si F= 0 en W movlw Linea2LCD ;Ponar señal para empezar a ;mandar datos 0x80 call call Comando_LCD MEDICION call call transmit1 transmit2 movf call bcf call call RESULTADO,W Tabla2 PCLATH,0 Caracter_LCD delay movf call bcf call call movlw call call RESULTADO,W Tabla1 PCLATH,1 Caracter_LCD delay A',' Caracter_LCD delay movf call bcf bcf call call RESULTADO,W Tabla0 PCLATH,0 PCLATH,1 Caracter_LCD delay movlw call goto Linea2LCD Comando_LCD medir ;Ponar señal para empezar a ;mandar datos 0x80 ;w=15 para 15 datos ;registro Flinea=15 ;registro que va a moverse sobre ;la tabla ;Muestra el mensaje ;registro que va a moverse sobre ;la tabla ;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---;Manda el caracter al LCD ;Lo muestra por un tiempo de ---;Muestra el mensaje ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---- ; Inician las subrutinas ;***************************************************** Port_transre bsf movlw movwf STATUS,RP0 0XC0 PORTC ;configura los pines para la transmision movlw movwf 0xC0 INTCON movlw 0X20 serie ;configura las interrupciones globales ;y perifericas Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC movwf movlw movwf movlw movwf bcf movlw movwf return PIR1 ;configura pie1 0X02 ;inicialmente tenia 0x00 RCSTA ;configura TXSTA D'51' ;inicialmente tenia D 51 -1200 BAUDIOS TXREG STATUS,RP0 0X90 RCSTA Port_ADC bsf movlw movwf movlw movwf bcf STATUS,RP0 b'00011111' PORTA b'10000000' ADCON0 STATUS,RP0 Port_LCD bsf clrf clrf bcf bcf return ESTADO,5 PUERTOD PUERTOB ESTADO,5 PUERTOD,E ;Configura los Puertos del PIC ;configura al puerdo D como salidas ;;configura al puerdo B como salidas call movlw call call movlw call call movlw call call movlw call movlw call movlw call movlw call movlw call return retardo FuncionLCD Comando_LCD retardo FuncionLCD Comando_LCD retardo FuncionLCD Comando_LCD retardo FuncionLCD Comando_LCD OnLCD Comando_LCD ClrLCD Comando_LCD DecLCD Comando_LCD CasaLCD Comando_LCD ;Inicializa el LCD ;w<-0X38 Comando_LCD bcf bcf movwf call return PUERTOD,RS PUERTOD,E PUERTOB Habilita_LCD ;Manda un comando al LCD RS equ 0 ; Caracter_LCD bsf bcf movwf call return PUERTOD,RS PUERTOD,E PUERTOB Habilita_LCD ;Manda un caracter o dato al LCD MEDICION bsf call bsf ADCON0,0 espera20u ADCON0,2 espera btfsc ADCON0,2 Ini_LCD ;E equ 7 enable del LCD ;0X38 ;0X38 ;0X38 ;0x0c ;0x01 ;0x05 ;0x02 ; Sistemas Digitales de Mando y Control goto bsf movf bcf movwf bcf return Práctica 7 Sensado de Temperatura con Interfaz PIC-PC espera STATUS,RP0 ADRESH,0 STATUS,RP0 RESULTADO ADCON0,0 ;RETARDO DE 255 MICRO SEG Habilita_LCD bsf PUERTOD,E movlw 0xFF movwf RDELAY t1 decfsz RDELAY,F goto t1 bcf PUERTOD,E return retardo ret2 ret1 ret0 delay re2 re1 re0 espera20u retardo1 transmit1 ;Habilita el LCD movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto return 0x01 CONTA0 0x64 CONTA1 0x64 CONTA2 CONTA2,F ret0 CONTA1,F ret1 CONTA0,F ret2 ;Retardo movlw movwf movlw movwf movlw movwf decfsz goto decfsz goto decfsz goto return 0xD0 CONTA0 0xD0 CONTA1 0x01 CONTA2 CONTA2,F re0 CONTA1,F re1 CONTA0,F re2 ;Retardo movlw movwf decfsz goto return 0x05 CONTA3 CONTA3,1 retardo1 lleno1 movf movwf bsf bsf btfss goto bcf bcf return RESULTADO,W TXREG STATUS,RP0 RCSTA,TXEN RCSTA,TRMT lleno1 RCSTA,TXEN STATUS,RP0 transmit2 movlw movwf 0XFF TXREG Sistemas Digitales de Mando y Control lleno2 rsrx Mensaje Tabla2 bsf bsf btfss goto bcf bcf return STATUS,RP0 RCSTA,TXEN RCSTA,TRMT lleno2 RCSTA,TXEN STATUS,RP0 bcf movf call ;call ;call retfie PIR1,RCIF RCREG,W Caracter_LCD delay transmit addwf retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw PCL,1 A'T' A'E' A'M' A'P' A'E' A'R' A'A' A'T' A'U' A'R' A'A' A' ' 0XA5 A'C' A' ' A' ' ORG bsf addwf retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw 0X100 PCLATH,0 PCL,1 A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' A'0' retlw retlw retlw retlw retlw retlw A'1' A'1' A'1' A'1' A'1' A'1' Práctica 7 Sensado de Temperatura con Interfaz PIC-PC ;Manda el caracter al LCD ;Lo muestra por un tiempo de ---- ;Mensaje a dsesplejar en el LCD retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlwen ;Mensaje a dsesplejar retlw retlw A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' A'1' el LCD A'1' A'1' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' A'2' retlw retlw retlw A'3' A'3' A'3' Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' A'3' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' A'6' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' A'4' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' A'7' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' A'8' retlw retlw retlw A'6' A'6' A'6' retlw retlw retlw A'9' A'9' A'9' Sistemas Digitales de Mando y Control Tabla1 retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' A'9' ORG bsf addwf retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw 0X200 PCLATH,1 PCL,1 A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' Práctica 7 Sensado de Temperatura con Interfaz PIC-PC retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw ;Mensaje a dsesplejar en 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 A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' el LCD A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' Sistemas Digitales de Mando y Control retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' Práctica 7 Sensado de Temperatura con Interfaz PIC-PC Tabla0 retlw A'9' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'0' A'1' A'1' A'2' A'2' A'3' A'3' A'4' A'4' A'5' A'5' A'6' A'6' A'7' A'7' A'8' A'8' A'9' A'9' ORG bsf bsf addwf retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw 0X300 PCLATH,0 PCLATH,1 PCL,1 A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' ;Mensaj Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC retlw retlw retlw retlw retlw A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' Sistemas Digitales de Mando y Control retlw retlw retlw retlw retlw A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw retlw A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' A'5' A'0' Práctica 7 Sensado de Temperatura con Interfaz PIC-PC retlw retlw retlw retlw retlw return end A'5' A'0' A'5' A'0' A'5' Sistemas Digitales de Mando y Control Práctica 7 Sensado de Temperatura con Interfaz PIC-PC