Microcontroladores 6ta Parte

  • Uploaded by: Jair Eviel Barrios Deluquez
  • 0
  • 0
  • October 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Microcontroladores 6ta Parte as PDF for free.

More details

  • Words: 1,162
  • Pages: 21
MICROCONTROLADORES M.Sc. César Augusto Peña C. Profesor de planta – Ingeniería mecatrónica Universidad de Pamplona

TRANSMISIÓN Y RECEPCIÓN ASÍNCRONA SERIAL

TRANSMISIÓN Y RECEPCIÓN ASÍNCRONA SERIAL

GENERADOR DE BAUDIOS FrecuenciaBaudios = Fosc/ ( K * ( X + 1 ) )

X = Valor cargado en el registro SPBRG K = 64 si el Bit BRGH = 0 (Baja velocidad) K = 16 si el Bit BRGH = 1 (Alta velocidad)

GENERADOR DE BAUDIOS Despejando X: X = ( Fosc/ (FrecuenciaBaudios* K) ) - 1 Con BRGH = 1 tendremos K = 16, obtener una frecuencia de 9600 Bps X = ( 4 Mhz / (9600 * 16) ) – 1 X = 25.042 Aproximando 25

GENERADOR DE BAUDIOS Reemplazando X por 25: FrecuenciaBaudios = 4Mhz/ ( 16 * ( 25 + 1 ) ) FrecuenciaBaudios = 9615.38 Bps Error = (9615.38 – 9600)/9600 Error = 0.16025 %

BAUDIOS (BRGH = 1)

BAUDIOS (BRGH = 0)

REGISTRO TXSTA CSRC

TX9

TXEN

SYNC

-

BRGH

TRMT

CSRC: Bit de selección de reloj, en modo asincrono no influye TX9: Habilita el bit 9 de transmisión 1 – Selecciona transmisión de 9 bits. 0 – Selecciona transmisión de 8 bits. TXEN: Activa la transmisión 1 – Transmisión activada 0 – Transmisión desactivada SYNC: Bit de selección del modo del USART 1 – Modo síncrono 0 – Modo asíncrono

TX9D

REGISTRO TXSTA CSRC

TX9

TXEN

SYNC

-

BRGH

TRMT

BRGH: Bit de selección de la velocidad en baudios 1 – Alta velocidad 0 – Baja velocidad TRMT: Bit de estado del registro de desplazamiento de transmisión 1 – TSR vacio 0 – TSR NO vacio TX9D: Bit 9 del dato a transmitir

TX9D

REGISTRO RCSTA SPEN

RX9

SREN

CREN ADDEN FERR

SPEN: Habilitación del puerto serie 1 – Puerto serie habilitado 0 – Puerto serie No habilitado RX9: Habilita el bit 9 de recepción 1 – Selecciona recepción de 9 Bits 0 – Selecciona recepción de 8 Bits SREN: No influye en modo asíncrono CREN: Configura recepción continua 1 – Habilita modo de recepción continua 0 – Deshabilita modo de recepción continua

OERR

RX9D

PROGRAMA PARA RECIBIR Y TRANSMITIR DATOS AL PC • • • • • • •

Si utiliza el PIC16f628 no olvide apagar los comparadores con el registro CMCON, Si utiliza el puerto A como E/S digitales. Configure los pines RX (RB1) como entrada y TX (RB2) como salida. Configurar modo asíncrono SYNC = 0 (TXSTA) Especificar la velocidad a través del registro SPBRG y el Bit BRGH de TXSTA Se habilita el puerto serie (SPEN = 1) y se selecciona el modo de recepción continua (CREN = 1) Activar Transmisión (TXEN = 1) Habilitar Interrupciones correspondidentes si se quiere, en el registro PIE1: bit RCIE(Recepción) y TXIE(transmisión)

PROGRAMA PARA RECIBIR Y TRANSMITIR DATOS AL PC Para el programa que se propone solamente la recepción se configura para interrupción. Por lo tanto cuando el PIC termina de recibir un dato del computador se produce una interrupción donde se debe tratar bajando la bandera RCIF para volver a recibir y a la vez se lee el dato enviado por el PC del registro RCREG Para la transmisión basta con bajar la bandera TXIF e insertar el dato a transmitir en el registro TXREG y esperar a que el bit TMRT del registro TXSTA vuelva a 1

REGISTRO DE CONTROL DE INTERRUPCIONES INTCON (PIC16F628) GIE PEIE T0IE INTE RBIE T0IF INTF RBIF

PEIE: Permiso de interrupciones de periféricos 1 – Permite interrupciones de periféricos 0 – Prohíbe interrupciones de periféricos

REGISTRO PIE1 (PIC16F628) EEIE

CMIE

RCIE

TXIE

-

CCP1IE

TMR2IE

TMR1IE

RCIE: Bit de activación de la interrupción por recepción USART 1 – interrupción activa 0 – interrupción inactiva TXIE: Bit de activación de la interrupción por transmisión USART 1 – interrupción activa 0 – interrupción inactiva

REGISTRO PIR1 (PIC16F628) EEIF

CMIF

RCIF

TXIF

-

CCP1IF

TMR2IF

TMR1IF

RCIF: Bandera de activación de la interrupción por recepción USART 1 – El buffer de recepción esta lleno 0 – El buffer de recepción esta vacio

TXIF: Bandera de activación de la interrupción por transmisión USART 1 – El buffer de recepción esta vacio 0 – El buffer de recepción esta lleno

PROGRAMA PARA RECIBIR Y TRANSMITIR DATOS AL PC ;AUTOR: CÉSAR AUGUSTO PEÑA C ;PIC: 16F268 ;FUNCION: PROGRAMA QUE RECIBE DATOS DEL COMPUTADOR, LOS MUESTRA POR EL PUERTO A ;Y LOS VUELVE A ENVIAR AL COMPUTADOR ;CARACTERISTICAS: ;OSCILLATOR: INTRC I/O ;WATCHDOG TIMER: OFF ;POWER UP TIMER: ON ;BROWN OUT DETECT: DISABLE ;MASTER CLEAR ENABLE: DISABLE ;LOW VOLTAGE PROGRAM: DISABLE ;DATA EE READ PROTECT: DISABLE ;CODE PROTECT: OFF

list p=16f628 ;Tipo de procesador INCLUDE "P16F628.Inc" ;Librerias de Registros del PIC ;**************************** DEFINICION DE REGISTROS *********************************** CBLOCK .32 LEIDO_COMP endc RX equ 1 ;PORTB<1>: Pin RX PIC 16F628 TX equ 2 ;PORTB<2>: Pin TX PIC 16F628 ;**************************************************************************************** org 00 goto INICIO

PROGRAMA PARA RECIBIR Y TRANSMITIR DATOS AL PC org bcf bcf INTER_RX btfss goto bcf movf movwf movwf call REGRESAR retfie

04 STATUS, RP1 STATUS, RP0 PIR1,RCIF REGRESAR PIR1,RCIF RCREG,W LEIDO_COMP PORTA TX_REG

;Rutina de transmisión del dato contenido en W al PC TX_REG bcf PIR1,TXIF movwf TXREG bsf STATUS, RP0 bcf STATUS, RP1 TX_ON btfss TXSTA,TRMT goto TX_ON bcf STATUS, RP0 return

;Banco 0 ;Interrupcion producida por recepcion? ;No. Otro tipo de interrupción ;Si. Bajar bandera ;Lectura dato recibido ;carga valor leido del computador a este registro ;Mostrar el valor por el puerto A ;llama subrutina para enviar el dato ;retorna de la interrupcion.

;baja Bandera de transmisión ;Carga el valor al registro a transmitir ;Banco 1 ;Registro transmitido ;No. ;Banco 0

PROGRAMA PARA RECIBIR Y TRANSMITIR DATOS AL PC INICIO

clrf movlw movwf bsf clrf clrf bsf bcf movlw movwf movlw movwf bsf bcf clrf clrf

PORTA 0X07 CMCON STATUS,RP0 TRISA TRISB TRISB,RX TRISB,TX b'00100100' TXSTA .25 SPBRG PIE1,RCIE STATUS,RP0 PORTA PORTB

;Inicializa el puerto A ;Apaga los comparadores y ;Activa los pines como I/O ;Banco 1 ;Puerto A como salida ;Puerto B como salida ;Configura pin de RX ;Configura pin de TX ;Configuracion USART ;y activacion de transmision ;9600 baudios ;Habilitacion interrupcion RX ;Banco 0

PROGRAMA PARA RECIBIR Y TRANSMITIR DATOS AL PC

ciclo

movlw movwf

b'10010000' RCSTA

movlw movwf

b'11000000' INTCON

bsf bsf movlw addlw call nop goto END

PORTA,0 PORTA,2 .7 30h TX_REG ciclo

;Configuracion de la usart ;Habilitacion del puerto serie SPEN<7> ;Modor de recepcion continua CREN<4> ;Permiso Interrupciones generales GIE<7> ;Permiso perifericos que NO se controlan con INTCON

;Carga Valor decimal ;Transformacion ASCII ;Envia dato al computador

PROGRAMA MATLAB % NOMBRE: % AUTOR: % FUNCION: %

uC_PC.m M.Sc. Cesar Augusto Peña C Envia un caracter (ASCII) por el puerto serial 1 del computador y recibe un byte binario

clc % Borra pantalla PUERTO1 = serial('COM1'); % Especifica que se trabaja con el puerto serial 1 set(PUERTO1,'BaudRate',1200); % 1200 Baudios fopen(PUERTO1) % Abre el puerto fprintf(PUERTO1,'7') % Envia el caracter ASCII en este caso '7' X = fread(PUERTO1,1); % X = dato binario recibido por el computador fclose(PUERTO1) % Cierra el puerto

Related Documents


More Documents from "Jair Eviel Barrios Deluquez"

El Entorno Del Plc
October 2019 22
Topografia
October 2019 37