• Martes 5 de Noviembre de 2024, 14:36

Mostrar Mensajes

Esta sección te permite ver todos los posts escritos por este usuario. Ten en cuenta que sólo puedes ver los posts escritos en zonas a las que tienes acceso en este momento.


Mensajes - kenshinkof

Páginas: [1]
1
Microcontroladores / Re:DS1302
« en: Domingo 10 de Agosto de 2008, 20:32 »
EL PASADO PROGRAMA QUE PUSE  ES PARA MANDAR LOS SEGUNDOS POR SERIAL A 300BSP PERO EN EL CICLO DE LECTURA PUEDES USAR LAS VARIABLES DE HOR MIN Y SEGUN PARA ALTERARLO COMO TU QUIERAS.

A TAMBIEN RETARDO.INC ES EL SIGUIENTE

;........................................................................
R_ContA   equ   20            
   R_ContB   equ   21
   R_ContC   equ   22
   

Retardo_1

      clrf    R_ContA
bug      incf    R_ContA

      clrf    R_ContB
bug2      incf    R_ContB
      
      clrf    R_ContC
bug3      incf    R_ContC

      btfss   R_ContC,7
      goto    bug3

      btfss   R_ContB,7
            goto    bug2

      btfss   R_ContA,4
      goto    bug

      return
;COPIALO EN NOTE PAD GUARDALO COMO RETARDOS.INC Y PEGALO EN MPAST SUITE

2
Microcontroladores / Re:DS1302
« en: Domingo 10 de Agosto de 2008, 20:28 »
;DS1302    CONEXIONES SON RB1 A IO  RB2  A RST  RB3 A SCLK
                 list      p=16F876
   radix      hex
   INCLUDE     <P16F876.INC>
   __config H'3F79'
   IO         EQU 1; Son los pines del puerto donde están conectadas las terminales de comunicación
   RST        EQU 2; Estas pueden variar según el circuito y la disposición de pines
   SCLK       EQU 3;
    ROTA       EQU 23;
    ALFA       EQU 24;
    UNDATO     EQU 25; Localidad de memoria donde se almacenará temporalmente el dato recibido del DS1302
   SEGUN      EQU 26; Localidad que almacena los segundos, leídos del DS1302
   MIN        EQU 27; Localidad que almacena los minutos, leídos del DS1302
   HOR        EQU 28; Localidad que almacena las horas, leídos del DS1302
    DELAY      EQU 29;
       
    ORG  0

   BSF   STATUS,RP0   
   MOVLW D'207'
   MOVWF SPBRG
   CLRF  TXSTA
    CLRF  TRISB
   BCF   STATUS,RP0
   
   MOVLW  0XA0
   MOVWF  RCSTA
    CLRF   PORTB

   ;Deshabilita el Write Protect
ESCRITURA
      MOVLW       0X8E ;Comando que apunta al registro de control para una escritura
      CALL       COMRTC ;Llama a la rutina que envía el comando hacia el DS1302
      MOVLW       0X00 ;Este dato deshabilita el Write Protect para permitir futuras escrituras
      CALL        ENVIARTC1;Llama a la rutina que envía el dato hacia el DS1302
;***************************************************
;ESCRIBE el numero 0x35 a al registro correspondiente de los segundos del DS1302
      MOVLW       0X80 ; POSICIONA LA LOCALIDAD DE LOS SEGUNDOS PARA ESCRITURA
      CALL       COMRTC; Llama la rutina que envía el comando
      MOVLW       0X35 ;ENVIA EL DATO 0X35 A LOS SEGUNDOS
      CALL        ENVIARTC1; Llama a la rutina que envía el dato hacia el DS1302
;****************************************************
;ESCRIBE el numero 0x22 a al registro correspondiente de los minutos del DS1302
      MOVLW    0X82 ; POSICIONA LA LOCALIDAD DE LOS MINUTOS PARA ESCRITURA
      CALL    COMRTC; Llama la rutina que envía el comando
      MOVLW    0X22 ;ENVIA EL DATO 0X22 A LOS MINUTOS
      CALL    ENVIARTC1; Llama a la rutina que envía el dato hacia el DS1302
;****************************************************
;ESCRIBE el numero 0x13 al registro correspondiente de las horas del DS1302
      MOVLW    0X84 ; POSICIONA LA LOCALIDAD DE LAS HORAS PARA ESCRITURA
      CALL    COMRTC; Llama la rutina que envía el comando
      MOVLW    0X13 ;ENVIA EL DATO 0X13 A LAS HORAS
      CALL    ENVIARTC1; Llama a la rutina que envía el dato hacia el DS1302
      BCF       PORTB,RST ;Deshabilita las comunicaciones
       
;//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
LECTURA
;OPERACIONES DE LECTURA
;***************************************************
;Lee el registro correspondiente de los segundos del DS1302
      MOVLW    0X81 ; POSICIONA LA LOCALIDAD DE LOS SEGUNDOS PARA LECTURA
      CALL    COMRTC; Llama la rutina que envía el comando
      CALL    RECIBRTC1; Llama a la rutina que recibe el dato enviado desde el DS1302
      MOVF    UNDATO,W; Mueve el dato recibido a W
      MOVWF    SEGUN ; Guarda el dato en la variable SEGUN
;***************************************************   

;Lee el registro correspondiente de los minutos del DS1302
      MOVLW    0X83 ; POSICIONA LA LOCALIDAD DE LOS MINUTOS PARA LECTURA
      CALL    COMRTC; Llama la rutina que envía el comando
      CALL    RECIBRTC1; Llama a la rutina que recibe el dato enviado desde el DS1302
      MOVF    UNDATO,W; Mueve el dato recibido a W
      MOVWF    MIN ; Guarda el dato en la variable MIN
;***************************************************
      ;Lee el registro correspondiente de las horas del DS1302
      MOVLW    0X85 ; POSICIONA LA LOCALIDAD DE LAS HORAS PARA LECTURA
      CALL    COMRTC; Llama la rutina que envía el comando
      CALL    RECIBRTC1; Llama a la rutina que recibe el dato enviado desde el DS1302
      MOVF    UNDATO,W; Mueve el dato recibido a W
      MOVWF    HOR ; Guarda el dato en la variable HOR
       
        BSF    STATUS,RP0
        BSF    TXSTA,TXEN
        BCF    STATUS,RP0

        MOVF   SEGUN,W
        MOVWF  TXREG
        CALL   Retardo_1
       GOTO   LECTURA
     
   
       


;DE ESTA MANERA ES COMO SE ESCRIBEN Y SE LEEN LOS REGISTROS DEL DS1302. USTED PUEDE MANIPULAR
;LOS DATOS RECIBIDOS, QUE SE HAN GUARDADO EN LA RAM, PARA MOSTRARLOS EN UN DISPLAY
FIN       GOTO FIN
COMRTC   MOVWF ALFA
      BSF STATUS,RP0
      BCF TRISB,IO ;CONFIGURA EL PUERTO COMO SALIDA
      BCF STATUS,RP0
      BSF PORTB,RST ;HABILITA LA COMUNICACIÓN
      MOVLW 0X08
      MOVWF ROTA ;ESTE ES UN CONTADOR
COMRTC1 BSF PORTB,IO ;PONE A 0 O A 1 EL PIN IO DEL PUERTO
      BTFSS ALFA,0 ;DEPENDIENDO EL VALOR DEL BIT 0 DEL DATO A ENVIAR
      BCF PORTB,IO
      BSF PORTB,SCLK; FLANCO DE SUBIDA DE SCLK
        CALL RETARDO
      BCF PORTB,SCLK; FLANCO DE BAJADA DE SCLK
      DECFSZ ROTA,F ;
      GOTO FALTAN
      RETURN
FALTAN  RRF ALFA,F ;ROTA EL DATO A ENVIAR
        GOTO COMRTC1
;*************************************************
;RUTINA QUE ENVIA UN DATO AL DS1302 DESPUES DEL COMANDO
ENVIARTC1
         MOVWF ALFA
         MOVLW 0X08
         MOVWF ROTA
         BSF STATUS,RP0
         BCF TRISB,IO
         BCF STATUS,RP0
OTRO2       BSF PORTB,IO;PONE A 0 O A 1 EL PIN IO DEL PUERTO
         BTFSS ALFA,0 ;DEPENDIENDO EL VALOR DEL BIT 0 DEL DATO A ENVIAR
         BCF PORTB,IO;
            BSF PORTB,SCLK; FLANCO DE SUBIDA DE SCLK
            CALL RETARDO
         BCF PORTB,SCLK; FLANCO DE BAJADA DE SCLK
         DECFSZ ROTA,F
         GOTO FALTAN12
         BCF PORTB,RST
         RETURN
         FALTAN12 RRF ALFA,F
         GOTO OTRO2
;*******************************************************

;RUTINA QUE RECIBE UN DATO DESDE EL DS1302
RECIBRTC1   BSF STATUS,RP0
         BSF TRISB,IO
         BCF STATUS,RP0
         MOVLW 0X08
         MOVWF ROTA
OTRO22      BSF UNDATO,7 ;Registro donde se guarda bit a bit el dato proveniente del DS1302
         BTFSS PORTB,IO
         BCF UNDATO,7
         BSF PORTB,SCLK
            CALL  RETARDO
         BCF PORTB,SCLK; SEÑAL DE RELOJ
         DECFSZ ROTA,F
         GOTO FALTAN22
         BCF PORTB,RST
         RETURN
FALTAN22    BCF STATUS,C
         RRF UNDATO,F
         GOTO OTRO22

;.......................................................
RETARDO
         CLRF   DELAY
BUCLE       INCF   DELAY
         BTFSS  DELAY,5  
            GOTO   BUCLE
            RETURN
            INCLUDE <RETARDOS.INC>
END

Páginas: [1]