Problema para transmitir con pic16f877a a serial

buenas a todos tengo un pequeño problema con el pic 16f877a y la tx serial soy nuevo en el tema 16f877 asi que queria pedirles un sencillo programa que envie mensajes serial, hasta el momento he logrado transmitir, pero siempre varios mensajes(quiero 1 solo mensaje )
por ejemplo que en la pantalla del hiper me muestre "hola" (yo lo hice pero me muestra hola hola hola hola ... etc) asi que si me ayudan seria super gracias de antemano (trabajo en asm)
 
gatoton dijo:
buenas a todos tengo un pequeño problema con el pic 16f877a y la tx serial soy nuevo en el tema 16f877 asi que queria pedirles un sencillo programa que envie mensajes serial, hasta el momento he logrado transmitir, pero siempre varios mensajes(quiero 1 solo mensaje )
por ejemplo que en la pantalla del hiper me muestre "hola" (yo lo hice pero me muestra hola hola hola hola ... etc) asi que si me ayudan seria super gracias de antemano (trabajo en asm)


bueno lo que pasa es que como mandas cadenas de caracteres por el envio el iperterminal lo muestra junto todo si pienso que puede ser que el bucle lo tienes infinito ahi nadmas acomodalo para q te lo muestre solo una ves en el cilo do while
 
bueno este es el programilla para q lo vean :D

((lo q en realidad quiero hacer es que detecte un codigo ascII osea una tecla del pc y que luego envie un mensaje, lo hise pero en el 16f84a en este no he podido aun me enredo con muchas cosillas ))
el programa seria una cosa asi....
si presionas "a" llama un mensaje y lo transmite por el puerto serie pero solo 1 ves :D saludosgracias por las respuestas
 

Adjuntos

  • tx_129.asm
    3 KB · Visitas: 36
hola hice yo tmbien uno de transmision y de resivir datos, o que hice en este programa en
asambler, ahi te va pero la unica diferencia es que lo hice con un pic16f628a..
pero solamente cambiale..el pic en el programa y listo...al conectalo y debe de aparecer primero "ESCRIBA SU NUMERO FAVORITO" y depsues tienes que ingresar la "W" para que se encienda un led...

;----------------------------------
;AUTOR: JORGE ARTURO RDZ HDZ
;TITULO: TRANFERENCIA DE DATOS EN RX Y TX
;FECHA: DOMINGO,07/JUNIO/'09
;----------------------------------

;----------------------------------
; CONFIGURACION
;----------------------------------

LIST P=16F628A
#INCLUDE <P16F628A.INC>
__CONFIG _MCLRE_ON & _CP_OFF & _WDT_OFF & _LVP_OFF & _PWRTE_ON & _XT_OSC

;---------------------------------
; VARIABLES
;---------------------------------
CBLOCK 0X20
CONTADOR
NUMERO
ENDC

ORG 0
GOTO START
ORG 5

;----------------------------------
; CONFIGURACION DEL PIC
;----------------------------------

START BSF STATUS,RP0 ;BANCO 1-----------------------------
MOVLW B'00000010'
MOVWF TRISB ;RB1 COMO ENTRADA Y EL RESTO COMO SALIDA
MOVLW B'00100100' ;CONFIGURA LA TRANSMISION
MOVWF TXSTA ;EN TXSTA, TRANSMISION ACTIVADA
MOVLW D'103' ;ACTIVACION DEL LOS BAUDIOS
MOVWF SPBRG ;A 2400
MOVLW B'11000111'
MOVWF OPTION_REG
BCF STATUS,RP0 ;BANCO 0------------------------------
MOVLW B'10010000' ;RESIVE DATOS CONTINUIOS
MOVWF RCSTA ;Y ACTIVA RX,TX DEL PORTB
MOVLW D'7' ;DESACTIVAR LOS COMPARADORES
MOVWF CMCON
CLRF PORTB
;----------------------------------
; INCIO DEL PROGRAMA
;----------------------------------

MAIN MOVF NUMERO,W
CALL TABLA
CALL ENVIAR
INCF NUMERO,F
MOVF NUMERO,W
XORLW D'28'
BTFSS STATUS,Z
GOTO MAIN
CALL PAUSE_1
CLRW
CLRF NUMERO
AGAIN CALL RESIBO
XORLW 'W'
BTFSS STATUS,Z
GOTO OFF
BSF PORTB,7
GOTO AGAIN

OFF BCF PORTB,7
GOTO AGAIN

;---------------------------------
; ENVIO AL TX
;---------------------------------

ENVIAR MOVWF TXREG
BSF STATUS,RP0 ;BANCO 1---------------------------
END_TX BTFSS TXSTA,TRMT
GOTO END_TX
BCF STATUS,RP0 ;BANCO 0---------------------------
RETURN

;---------------------------------
; RESIBO DEL RX
;---------------------------------

RESIBO MOVF RCREG,W
RETURN

;--------------------------------
; RETARDO_1S
;--------------------------------

PAUSE_1 MOVLW 0X64 ;SE CARGA LA CONTADOR CON 100
MOVWF CONTADOR
DELAY BCF INTCON,T0IF ;LE LIMPIA EL BIT, DE DESBORDAMIENTO DE TMRO
MOVLW 09 ;SE CARGA 217
MOVWF TMR0 ;A TMRO
DELAY2 BTFSS INTCON,T0IF ;ESPERA EL DESBORAMIENTO DE TMRO
GOTO DELAY2 ;BUCLE
DECFSZ CONTADOR,F ;DECREMENTE A 1 EL CONTADOR
GOTO DELAY ;BUCLE
RETURN

;--------------------------------
; TABLA
;--------------------------------

TABLA ADDWF PCL,F
DT "ESCRIBA SU NUMERO FAVORITO: "
END
 
Atrás
Arriba