miércoles, 2 de enero de 2019

50 ejercicios ensamblador MPLABx y CCS con el PIC16F1827 EUSART Ej #8

Con este ejercicio vamos a implementar un ejemplo conocido como ECO, lo que sucede es que lo que escribimos en una terminal es enviado al microcontrolador por el puerto serie y este lo va devolviendo por su pin TX de esta manera podemos ver lo que vamos enviando desde el terminal como un ECO de lo enviado.

Codigo fuente en ASM
Codigo prinsipal.


 1 ;*******************************************************************************
  2 ;                                                                              *
  3 ;    Filename:  Proyecto USART                                                 *
  4 ;    Date:      29/07/2017                                                     *
  5 ;    File Version:   0.01                                                      *
  6 ;    Author:    Mariano Rocha                                                  *
  7 ;    Company:   Electronicos embebidos                                         *
  8 ;    Description: RX-TX USART                                                     *
  9 ;                                                                              *
 10 ;*******************************************************************************
 11 LIST P=16f1827
 12 RADIX HEX
 13 include  P16f1827.inc
 14 __CONFIG _CONFIG1, _FOSC_XT & _WDTE_OFF & _PWRTE_ON & _MCLRE_OFF & _CP_OFF & _CPD_OFF & _BOREN_ON & _CLKOUTEN_OFF & _IESO_ON & _FCMEN_ON    
 15 __CONFIG _CONFIG2, _WRT_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_LO & _LVP_ON
 16     
 17     
 18 CBLOCK 0X20
 19 Text,t1,t2,t3,t4,t5,t6,t7,t8,t9,t10,t11,t12,t13,t14,t15
 20 ENDC    
 21          
 22 
 23     ORG        0
 24     goto       INICIO
 25     
 26 CONFIG_USART_9600:
 27     BANKSEL    TXSTA
 28     movlw      B'10100100' 
 29     movwf      TXSTA
 30     movlw      .25
 31     movwf      SPBRGL
 32     clrf       SPBRGH
 33     BANKSEL    RCSTA
 34     movlw      B'10000000'     
 35     movwf      RCSTA
 36     BANKSEL    TXSTA
 37     bsf        TXSTA,TXEN
 38     BANKSEL    RCSTA
 39     bsf        RCSTA,CREN
 40     BANKSEL    PIR1
 41     bsf        PIR1,TXIF
 42     BANKSEL    TRISB
 43     bcf        TRISB,2
 44     BANKSEL    BAUDCON
 45     movlw      B'00000000' 
 46     movwf      BAUDCON
 47     BANKSEL    0
 48     return
 49 
 50 UART_WRITE:
 51     BANKSEL   TXREG
 52     movwf     TXREG
 53     BANKSEL   PIR1
 54     btfss     PIR1,TXIF
 55     goto      $-1
 56     return
 57     
 58 UART_WRITE_STRING:    
 59      movwf     FSR0
 60 UART_1:
 61      movf      INDF0,w
 62      btfsc     STATUS,Z
 63      return
 64      call      UART_WRITE
 65      incf      FSR0,f
 66      BANKSEL   0
 67      goto      UART_1 
 68 
 69 UART_READ:
 70     bsf        STATUS,Z
 71     BANKSEL    PIR1 
 72     btfss      PIR1,RCIF
 73     return
 74     BANKSEL    RCREG
 75     movf       RCREG,W
 76     return    
 77      
 78      
 79 INICIO:
 80     BANKSEL   ANSELB
 81     clrf      ANSELB    
 82     BANKSEL   0
 83     call      CONFIG_USART_9600
 84     movlw     'I'
 85     call      UART_WRITE
 86     movlw     'N'
 87     call      UART_WRITE    
 88     movlw     ':'
 89     call      UART_WRITE    
 90     
 91 MAIN:
 92     call       UART_READ
 93     btfsc      STATUS,Z
 94     goto       MAIN
 95     call       UART_WRITE
 96     goto       MAIN
 97     
 98 goto $
 99     
100 end;      

Esquematico


Version CCS del mismo proyecto


Descargar las verciones ASM y CCS de este ejercicio.
https://twitter.com/Mariano56917789


No hay comentarios:

Publicar un comentario