TODOPIC
Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: maxluis en 28 de Enero de 2004, 19:50:00
-
HOLA:
A TODOS, LOS DEL FORO.
DESEO COMUNICARME EN FORMA SERIAL ENTRE DOS PIC UN 16F877(COMO MAESTRO) Y EL 16F628(COMO ESCLAVO),PUESTO QUE ESTE ULTIMO PERMITE ESTA COMUNICACION, HE LOGRADO COMUNICAR DOS PIC POR MEDIO DE I2C, PIC 16F877 Y 16F874,ME GUSTARIA VER UN EJEMPLO MAESTRO-ESCLAVO EN PBP,ESPERO QUE ALGUIEN DEL FORO PUEDA ORIENTARME,PARA LOGRAR ESTE DESAFIO.
CUALQUIER RESPUESTA EN ESTE SENTIDO DESDE YA SE LES AGRADECERA.
MAXLUIS
-
Hola Maxluis,
la verdad no e usado aun el Usart del 16f628, pero pienso que si ya lo tienes entre otros dos pics, solo debes de cmabiarlo para el f628, con los comandos serin y serout, puedes hacer la prueba leyendo un dato del maestro y gusrdandolo en la eeprom del esclavo.
Un saludo
Una razon asm para migrar a PBP PLUS!!
-
Que onda maxluis,
Si no has visto codigos, aqui te envo este, solo tienes que confirgurar el TXSTA para poner uno como MASTER (osc, interno ) y a ese codigo le incluyes un baud rate y al otro pic como esclavo, (oscilador del MAster) y yap, los comandos se usan directitos como los muestro acontinuacion:
Device 16F877
XTAL = 4
Dim B1 as Byte
SPBRG = 25 "veloc, en 2400KB/s chekar tabla de DS
RCSTA = %10000000 " Recepcion
TXSTA = %10110000 "transmision aqui ya esta en Master
Loop: Gosub GetChar "espera de datos
If B1 = 0 Then Loop " si no hay sigue esperando
Gosub PutChar " si hay, lo envia de nuevo
Goto Loop " al terminar vuelve a empezar
GetChar: B1 = 0 " limpia variable
If PIR1.5 = 1 Then B1 = RCREG " si hay dato (flag)en pin RX lo coloca en variable
Return "Regresa de la llamada con el dato
PutChar: If PIR1.4 = 0 Then PutChar " espera flag
TXREG = B1 " pone la variable en pin de salida TX
Return "Regresa de la llamada
Para el esclavo solo cambia el TXSTA a esclavo y yap
Espero que te ayude en tu proyecto.
Saludos
Baygon
Una razon asm Para migrar a PBP PLUS!!
-
Hola maxluis,
Aqu te dejo mi codigo de MAESTRO a ESCLAVO como lo necesitas por si no lo tienes aun.
MAESTRO(TRANSMISOR)::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"AUTOR: LAGER "
"MICRO: 16F877 "
"OSCILADOR: 4MHZ "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
DEVICE=16F877
DECLARE XTAL 4
ADCON1 = 7
DIM VAR1[30]AS BYTE "UN PAQUETE EN BLANCO DE PARADA PARA EL RECEPTOR ESCLAVO
DIM C AS BYTE
DECLARE LCD_DTPIN PORTA.0
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTA.4
TRISB.1=1
SYMBOL BOTON=PORTB.1
PORTB_PULLUPS=TRUE
VAR1[0]="M":VAR1[1]="A":VAR1[2]="E":VAR1[3]="S":VAR1[4]="T":VAR1[5]="R"
VAR1[6]="O":VAR1[7]="=":VAR1[8]="1":VAR1[9]="6":VAR1[10]="F":VAR1[11]="8"
VAR1[12]="7":VAR1[13]="7":VAR1[14]="E":VAR1[15]="S":VAR1[16]="C":VAR1[17]="L"
VAR1[18]="A":VAR1[19]="V":VAR1[20]="O":VAR1[21]="=":VAR1[22]="1":VAR1[23]="6"
VAR1[24]="F":VAR1[25]="6":VAR1[26]="2":VAR1[27]="8"
SPBRG=103
PIE1.4=1
RCSTA=%10000000
TXSTA=%10110000
ESPERA:IF BOTON=1 THEN ESPERA
FOR C=0 TO 29
TXREG=VAR1[C]
ESPERA2:IF PIR1.4=0 THEN ESPERA2
NEXT
PRINT " MENSAJE "
PRINT $FE, $C0, " ENVIADO "
END
ESCLAVO(RECEPTOR):::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
"AUTOR: LAGER "
"MICRO: 16F628 "
"OSCILADOR: 4MHZ (reloj interno) "
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
DEVICE=16F628
CONFIG INTRC_OSC_NOCLKOUT,WDT_OFF,PWRTE_ON,CP_OFF,BODEN_OFF,LVP_OFF,MCLRE_OFF
CMCON = 7
PORTB_PULLUPS=TRUE
DECLARE LCD_DTPIN PORTA.0
DECLARE LCD_ENPIN PORTB.3
DECLARE LCD_RSPIN PORTA.4
DIM VAR2[28] AS BYTE
DIM A AS BYTE
CLEAR
PIE1.5=1
TXSTA = %00010000
RCSTA = %10010000
ESPERA:IF PIR1.5=0 THEN ESPERA
FOR A=0 TO 27
VAR2[A]=RCREG
ESPERA2:IF PIR1.5=0 THEN ESPERA2
NEXT
CLS
FOR A=0 TO 13
PRINT VAR2[A]
DELAYMS 200
NEXT
PRINT $FE, $C0
FOR A=14 TO 27
PRINT VAR2[A]
DELAYMS 200
NEXT
END
Espero que te sriva de algo, si necesitas el Design de proteus para correrlo me dices y te lo envio.
Saludos pana
Una razon asm para migrar a PBP PLUS!!