Practica de PIC 16F84 Los PIC son circuitos que pueden controlar dispositivos y diferentes sistemas, son como los PLC (controles lógico programable), además debo decir que es un circuito que tiene todas las características de una computadora. Puedes con foco, hasta un tanque industrial o un motor de una banda transportadora. Es una computadora completa aunque de limitadas prestaciones, que esta contenido en un chip de un circuito integrado y se destina a gobernar una sola tarea. Un microprocesador es un sistema abierto con el que puede construirse un sistemas con las características que desee, acoplándole los módulos necesarios. Un microcontrolador es un sistema cerrado que tiene una computadora completa y de prestaciones limitadas. El microcontrolador tiene un chip dentro de el que es el banco me memoria, tiene memoria RAM y ROM, tiene puertos de entrada y salida, tiene una parte central de procesamiento y su circuito de reloj, además de otras características. Debo mencionar que el microcontrolador maneja instrucciones tipo RISC, es decir que son muy rápidos pero con pocas instrucciones en sus librerías. Algunas de las cuales se mencionan aquí. INTRUCCION PARAMETROS ACCION Intrucciones con los registros FLAGS addwf f, d Suma de W con f C, DC, Z andwf f, d AND de W con f Z clrf f Borra registro f Z Borra registro W Z clrw comf f, d Complemento de f Z decf f, d Decremento de f Z incf f, d Incrementa registro f Z iorwf f, d OR de W con f Z movf f, d Traslado de f Z movwf f rlf f, d Rotacion a izquierda con carry C rrf f, d Rotacion a derecha con carri C Traslado de W a f subwf f, d Resta W de f swapf f, d Intercambio de los 4 bits de mas peso con los 4 de menos peso xorwf f, d OR exclusivo de W y f C,DC,C Z Instucciones que manejan bits bcf f, b Pone a 0 el bit b del registro f bsf f, b Pone a 1 el bit b del registro f Instrucciones de operandos inmediatos addlw k Su ma el literal a W C,DC,Z andlw k AND del literal con W Z iorlw k OR de literal con W Z movlw k Mueve el literal k a W sublw k Resta W del literal k C,DC,Z xorlw k OR exclusivo del literal con W Z Instrucciones de salto btfsc f, b Testea bit b de f , salta si es 0 btfss f, b Testea bit b de f, salti si es 1 decfsz f, d Decremento de f, salta si es 0 incfsz f, d Incrremento de f, salta si es 1 Instrucciones de control y especiales call k Borra el Watchdoc clrwdt goto Llama a una subrrutina k Salta a una direccion (etiqueta) nop No hace nada retfie Retorno de interrupcion retlw k TO#, PD# Retorna y devuelve literal k en w return Retorno de subrrutina sleep Puesta en estado de reposo TO#, PD# Un programa que resida en el PIC, se necesita hacer en un compilador, en este caso, como el que manejamos el PIC 16f84, de la familia de microchip, maneja su compilador MPLAB, además de haber otros compiladores. Para grabar un programa en el PIC, debemos de tener el programa que tenga extensión HEX, y este se hace cuando uno compila el programa que hace uno en el MPLAB, y este mismo lo genera. Este programa tenemos que introducirlo en el PIC, por lo que hay varias maneras de hacerlo. Una de las cuales es el tener un grabador tipo industrial, otra es hacer uno un grabador, ya sea serial o paralelo. A continuación el diagrama de conexión serial. para aprender a programar es necesario practicar, es la única manera de hacerlo. Ahora empezaremos con los programas. Programa 3 del libro de microcontroladores. ;programa que introduce un dato por el puerto a y es complementado y sacado por puerto b list p=16f84 w equ 0 porta equ 0x05 portb equ 0x06 trisa equ 0x05 trisb equ 0x06 status equ 0x03 org goto org inicio bsf clrf movlw movfw bcf ciclo 0 inicio 5 status,5 trisb 0xff trisa status,5 movf porta,w comf porta,w movwf portb goto ciclo end programa 4 del libro de microcontroladores ;programa que realiza un salto condicional, si la condicion es verdadera se realiza ;un salto de una linea, de otra manera continua la ejecucion normal del programa list p=16f84 w equ f equ portb equ trisb equ status equ conta equ org goto org inicio bsf 0x00 0x01 0x06 0x06 0x03 0x0c 0 inicio 5 status,5 clrf bcf clrf bucle trisb status,5 conta incf conta,f movf conta,w movwf portb movlw 0x5f subwf conta,w btfss status,2 goto bucle sleep end programa 5 del libro de microcontroladores ;programa que hace un timer list p=16f84 portb equ 0x06 trisb equ 0x06 status equ 0x03 ;option equ 0x01 tmr0_opt equ 0x01 org goto org 0 inicio 5 inicio bsf movlw movwf clrf bcf status,5 b'11010110' tmr0_opt trisb status,5 clrf parpa bsf call bcf call goto portb portb,7 retardo portb,7 retardo parpa retardo clrf tmr0_opt explora btfss tmr0_opt,4 goto explora return end y pulsa un led en el puerto b Programa 6 del libro de microcontroladores ;programa que maneja interrupciones, lee datos de un puerto y los transmite al otro puerto list p=16f84 w equ 0 f equ 1 tmr_opt equ 0x01 porta equ 0x05 portb equ 0x06 trisa equ 0x05 trisb equ 0x06 status equ 0x03 intcon equ 0x0b conta equ 0x10 org goto org goto org inicio bsf clrf movlw movwf movlw movwf bcf movlw 0 inicio 4 inter 5 status,5 trisb b'00000011' trisa b'00000111' tmr_opt status,5 b'10100000' movwf intcon movlw 0x10 movwf conta movlw 0x0c movwf tmr_opt ciclo btfsc porta,0 goto ra0_1 bcf portb,0 goto ralx ra0_1 bsf portb,0 ralx btfsc porta,1 goto ral_1 bcf portb,1 goto ciclo2 ral_1 bsf portb,1 ciclo2 goto ciclo inter decfsz conta,1 goto seguir conta_0 movlw 0x10 movwf conta btfsc portb,7 goto rb7_1 bsf portb,7 goto seguir rb7_1 bcf portb,7 seguir movlw b'10100000' movwf intcon movlw 0x0c movwf tmr_opt retfie end programa 7 del libro de microcontroladores ;programa que maneja un display de 7 segmentos por el puerto B list p=16f84 w equ 0 f equ 1 pcl equ 0x02 porta equ 0x05 portb equ 0x06 trisa equ 0x05 trisb equ 0x06 status equ 0x03 valor equ 0x12 org goto org 0 inicio 5 inicio bsf clrf movlw movwf bcf explora status,5 trisb b'11111111' trisa status,5 movf porta,w movwf comf clrw btfss goto addlw bit_1 btfss goto addlw bit_2 btfss goto addlw visual movwf sleep valor valor,f valor,0 bit_1 0x01 valor,1 bit_2 0x02 valor,2 visual 0x04 call display portb display addwf pcl,f retlw 0x3f retlw 0x06 retlw 0x5b retlw retlw retlw retlw retlw end 0x4f 0x66 0x6d 0x7d 0x07 Estos son algunas aplicaciones que se pueden hacer con los programas. A continuación la forma básica de usar un PIC.