Autor Tema: enviar datos de un pic a una pc por medio de un modem  (Leído 2043 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado osesli

  • PIC10
  • *
  • Mensajes: 3
enviar datos de un pic a una pc por medio de un modem
« en: 13 de Enero de 2004, 17:00:00 »
hola alguien me podria ayudar estoy empezando a trabajar con pic´s pero quiero almacenar unos datos el el pic y posteriormente conectarme con una PC via modem, me gustaria saber si alguien tiene alguna iformacion sobre eso. gracias

Desconectado rafamolin

  • PIC10
  • *
  • Mensajes: 4
RE: enviar datos de un pic a una pc por medio de un modem
« Respuesta #1 en: 23 de Enero de 2004, 03:21:00 »
Si lo que quieres es  comectar el pic a traves de un linea de telefon RTB, necesitas conectar el pic a un modem externo por el puerto RS232 de modem y utilizar comandos AT para conectar con el otro modem del PC, establecer la comunicación y enviar los datos.
Busca información sobre los Comandos AT o Hayes.

Desconectado ma-tec

  • Colaborador
  • PIC12
  • *****
  • Mensajes: 76
    • www.matec.es.tl
RE: enviar datos de un pic a una pc por medio de un modem
« Respuesta #2 en: 26 de Enero de 2004, 15:13:00 »

yo realice una aplicacion con protocolo hayes

con un pic f84 y un moden externo cardinal pero  el modem da lo importante es conocer elo protocolo de tu modem un standar es el  hayes. .


;**************************************************************************
; SERIAL.ASM VERCION 09/11/99
; SUMAT. PROG. OBJETO 9B32 XT ON ON
;**************************************************************************

LIST P = 16F84
#INCLUDE "P16F84.INC"
TITLE "SERIAL.ASM"

;********** Tabla de Equivalencias **********

RA_MOD EQU 0DH ; 0000 1101
RB_MOD EQU 0FH ; 0000 1111

;********** PUERTA A ***********

RX1 EQU 0 ; READ MAX 232 MODEM PIN 17
TX EQU 1 ; TRANSMITE MAX 232 PIN 18
RX2 EQU 2 ; READ MAX 232 BALANZA PIN 1
IN2 EQU 3 ; NADA PIN 2

;********** PUERTA B ***********

IN3 EQU 0 ; NADA PIN 6
IN4 EQU 1 ; NADA PIN 7
CINP EQU 2 ; SALIDA 1 PIN 8
INFE EQU 3 ; SALIDA 2 PIN 9

REL1 EQU 4 ; BOTON PIN 10
REL2 EQU 5 ; NADA PIN 11
REL3 EQU 6 ; NADA PIN 12
REL4 EQU 7 ; NADA PIN 13

;************** REGISTROS USADOS **************
RTCC EQU 01H ; TIMER CERO
PCL EQU 02H ; PROGRAM COUNTER

STATUS EQU 03H
FSR EQU 04H ;
PORTA EQU 05H
PORTB EQU 06H
PEPO EQU 018
TEMP EQU 09H
OCHO EQU 0DH ; OCHO BITS
NUME EQU 0EH ; NUMERO
CURSO EQU 0FH ; BYTE PARA CURSOR DISPLAY
CONT EQU 08H
DIEZ EQU 10H ; BYTE PARA WR EN DISPLAY
ONCE EQU 11H ; PARA INDICE DE TABLA
DEL3 EQU 14H
DEL2 EQU 13H
DEL1 EQU 12H
PUNT EQU 15H
CONTA EQU 16H
FLAG EQU 17H
;*********** BITS USADOS ************

C EQU 00H
Z EQU 02H
;************ FLAGS ***************

CERO EQU 0 ; FLAG CERO
;*********** SUB-RUTINA DE DELAY **********

ORG 00H

GOTO START ; BEGIN PROGRAM

;********** DELAY ENTRE BITS *****************

DELAY MOVLW 12H ;12H PARA 9600 / XTAL DE 4 MEGA HZ.
MOVWF DEL3
X1 CLRWDT
NOP
DECFSZ DEL3,1
GOTO X1
nop
nop
nop
RETLW 00H
;********** DELAY MEDIO BITS *****************

DEMBI MOVLW 09H ; PARA 9600 BAUDIOS / XTAL DE 4 MEGA HZ.
MOVWF DEL1
X03 CLRWDT
NOP
DECFSZ DEL1,1
GOTO X03
RETLW 00H

;******* SERIAL INPUT *** PONE EN RAM DATA FROM MAX 232 **********

SEINP CLRF NUME
CLRWDT
BTFSS PORTA,RX1 ; SKIP SI HAY START BIT.
RETLW 00 ; ESPERA EN CERO NO HAY DATA

STBIT CALL DELAY ; DELAY ENTRE BITS
CALL DEMBI ; CALL MEDIO BIT.
MOVLW 08H ; OCHO BITS
MOVWF OCHO

CLRF NUME ; PARTE CON BYTE EN CERO

S3 BTFSS PORTA,RX1 ; LEE DATA SERIAL
GOTO S0

BCF STATUS,C ; 0
GOTO S1 ; FUE CERO 1

S0 BSF STATUS,C ; FUE UNO 1

S1 RRF NUME,1 ; 2
CALL DELAY ; DELAY ENTRE BITS 3

DECFSZ OCHO,1
GOTO S3

SPB CALL DELAY ; STOP BITS

RETLW 00H
;******* SERIAL INPUT *** DESDE LA BALANZA **********

SEINPY CLRWDT
BTFSS PORTA,RX2 ; SKIP SI HAY START BIT.
GOTO SEINPY ; ESPERA EN CERO NO HAY DATA

STBITY CALL DELAY ; DELAY ENTRE BITS
CALL DEMBI ; CALL MEDIO BIT.
MOVLW 08H ; OCHO BITS
MOVWF OCHO

CLRF NUME ; PARTE CON BYTE EN CERO

S3Y BTFSS PORTA,RX2 ; LEE DATA SERIAL
GOTO S0Y

BCF STATUS,C ; 0
GOTO S1Y ; FUE CERO 1

S0Y BSF STATUS,C ; FUE UNO 1

S1Y RRF NUME,1 ; 2
CALL DELAY ; DELAY ENTRE BITS 3

DECFSZ OCHO,1
GOTO S3Y

SPBY ;CALL DELAY ; STOP BITS

RETLW 00H
;************ DELAY UN SEGUNDO *******************

D1SEG MOVLW 03H
D1S MOVWF DEL3
MOVLW 05H
MOVWF DEL2
CLRF DEL1
W1 CLRWDT
DECFSZ DEL1,1
GOTO W1
DECFSZ DEL2,1
GOTO W1
DECFSZ DEL3,1
GOTO W1
RETLW 00H



;********** SERIAL OUTPUT ********** PONE NUME EN MAX 232 **********

SEOUT BCF PORTA,TX ; START BITS
caLL DELAY
;CALL retardo
;call retardo
MOVLW 08H ; SIETE BITS
MOVWF OCHO
NOP

S13 RRF NUME,1

BTFSS STATUS,C ; 0
GOTO S10 ; FUE CERO 1
BSF PORTA,TX ; FUE UNO 1
GOTO S11 ; 2

S10 BCF PORTA,TX ; 2

S11 CALL DELAY ; DELAY ENTRE BITS 3

DECFSZ OCHO,1
GOTO S13

BSF PORTA,TX ; STOP BITS
CALL DELAY
CALL DELAY

RETLW 00H

;********************************************************

TABLA INCF PUNT,1
MOVF PUNT,0 ; TRAE REGISTRO AL WORK
ADDWF PCL,1

RETLW 2CH ; ,
RETLW 20H ; N
RETLW 20H ; T
RETLW 20H ; ,
RETLW 34H ; +
RETLW 37h ; 0
RETLW 2eh ; 0
RETLW 35H ; 3
RETLW 33H ; 5
RETLW 4bH ; 0
RETLW 47H ; .
RETLW 4dH ; 7
RETLW 0dH ; K
RETLW 0aH
RETLW 4BH
RETLW 67H
RETLW 0DH
RETLW 0AH

;**********************************

;********************** PROGRAMA **********************

START ; MOVLW RB_MOD ;RECONOCE BOTON DE PRNT
; TRIS PORTB
; ANDLW 01H
; BTFSS PORTB,C
; GOTO START
; BCF PORTB,C


MOVLW RA_MOD ;inicializa Port_A
TRIS PORTA
MOVWF PORTA

BSF PORTA,RD
BSF PORTA,TX ; ES

; GOTO SERIAL


CLRF CONTA
INICIO CALL SEINP
MOVF NUME,0
XORLW 00
BTFSC STATUS,Z
GOTO INICIO
MOVF NUME,W
XORLW 52
BTFSS STATUS,Z
GOTO INICIO
CALL DELAY
INCF CONTA,1
MOVF CONTA,W
XORLW 02
BTFSS STATUS,Z
GOTO INICIO


CALL D1SEG
MOVLW "A"
MOVWF NUME
CALL SEOUT
MOVLW "T"
MOVWF NUME
CALL SEOUT
MOVLW "Q"
MOVWF NUME
CALL SEOUT
MOVLW "0"
MOVWF NUME
CALL SEOUT
MOVLW "E"
MOVWF NUME
CALL SEOUT
MOVLW "1"
MOVWF NUME
CALL SEOUT
MOVLW "S"
MOVWF NUME
CALL SEOUT
MOVLW "0"
MOVWF NUME
CALL SEOUT
MOVLW "="
MOVWF NUME
CALL SEOUT
MOVLW "0"
MOVWF NUME
CALL SEOUT
MOVLW " "
MOVWF NUME
CALL SEOUT

;ATQ0E1S0=0 ATQ0V1E1S0=0
MOVLW "A"
MOVWF NUME
CALL SEOUT
MOVLW "T"
MOVWF NUME
CALL SEOUT
MOVLW "Q"
MOVWF NUME
CALL SEOUT
MOVLW "0"
MOVWF NUME
CALL SEOUT
MOVLW "V"
MOVWF NUME
CALL SEOUT
MOVLW "1"
MOVWF NUME
CALL SEOUT
MOVLW "E"
MOVWF NUME
CALL SEOUT
MOVLW "1"
MOVWF NUME
CALL SEOUT
MOVLW "S"
MOVWF NUME
CALL SEOUT
MOVLW "0"
MOVWF NUME
CALL SEOUT
MOVLW "="
MOVWF NUME
CALL SEOUT
MOVLW "0"
MOVWF NUME
CALL SEOUT
MOVLW 0D
MOVWF NUME
CALL SEOUT
MOVLW 0A
MOVWF NUME
CALL SEOUT
MOVLW 0A
MOVWF NUME
CALL SEOUT
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
CALL D1SEG
;****************** RUTINA TX *****************
CLRF PEPO
SERIAL MOVLW "P"
MOVWF 20
MOVLW "E"
MOVWF 21
MOVLW "S"
MOVWF 22
MOVLW "O"
MOVWF 23
MOVLW " "
MOVWF 24
MOVLW " "
MOVWF 2B
MOVLW "K"
MOVWF 2C
MOVLW "g"
MOVWF 2D
MOVLW 0D
MOVWF 2E
MOVLW 0A
MOVWF 2F

ESPERA CALL SEINP
MOVF NUME,0
XORLW 31
BTFSS STATUS,Z
GOTO ESPERA

SERI CALL SEINPY ; SERIAL INPUT
MOVF NUME,W
XORLW 30
BTFSS STATUS,Z ; SKIP SI ES IGUAL A 2CH
GOTO SERI


MOVLW 06H
MOVWF CONT ; CANTIDAD DE BYTES
MOVLW 25H
MOVWF FSR ; PRIMERA ADDRESS

NEXT CALL SEINPY ; SERIAL INPUT.
MOVF NUME,W ; TRAE DATA DE RUTINA SERIAL
MOVWF INDF ; WRITE EN RAM APUNTADA POR F.S.R.

INCF FSR,1 ; FILE SELECT REGISTER.
DECFSZ CONT,1
GOTO NEXT





MOVLW 010H
MOVWF CONT ; CANTIDAD DE BYTES
MOVLW 20H
MOVWF FSR ; PRIMERA ADDRESS

NEX1 MOVF INDF,W ; TRAE BYTE DESDE LA RAM.
MOVWF NUME
CALL SEOUT ; WRITE WORK EN DISPLAY
INCF FSR,1 ; FILE SELECT REGISTER.

DECFSZ CONT,1
GOTO NEX1

WAIT CLRWDT

INCF PEPO,1
MOVF PEPO,W
XORLW 0FF
BTFSS STATUS,Z
GOTO SERI

MOVLW "+" ;+++ATH
MOVWF NUME
CALL SEOUT
MOVLW "+"
MOVWF NUME
CALL SEOUT
MOVLW "+"
MOVWF NUME
CALL SEOUT
MOVLW "A"
MOVWF NUME
CALL SEOUT
MOVLW "T"
MOVWF NUME
CALL SEOUT
MOVLW "H"
MOVWF NUME
CALL SEOUT
MOVLW 0A
MOVWF NUME
CALL SEOUT
MOVLW 0D
MOVWF NUME
CALL SEOUT
GOTO START
;************************************************

 
 
LA CLAVE DEL EXITO ES SABER
PARA DONDE VA LA GENTE Y
LLEGAR PRIMERO.

Desconectado osesli

  • PIC10
  • *
  • Mensajes: 3
RE: enviar datos de un pic a una pc por medio de un modem
« Respuesta #3 en: 30 de Enero de 2004, 16:12:00 »
MUCHAS GRACIAS A LOS DOS POR LA INFORMACION QUE ME PROPORCIONARON AHORA VOY A INVESTIGAR MAS SOBRE LO QUE ME RECOMIENDAN Y DESPUES SI TENGO ALGUNA DUDA LOS VOY A MOLESTAR CON ALGUNAS PREGUNTAS MUCHAS GARCIAS Y BUENA SUERTE.