¿Qué es el REGISTRO W en un PIC y por qué es necesario?

Поделиться
HTML-код
  • Опубликовано: 17 сен 2024
  • En este video te explico al registro de trabajo W REG del PIC y su funcionalidad al incorporarlo con la ALU y el Registro STATUS.

Комментарии • 10

  • @odiseaelectronica1284
    @odiseaelectronica1284 3 года назад +1

    Amigo, excelente video muy claro y al punto. Sigue adelante

  • @velocete3x196
    @velocete3x196 3 года назад +1

    Fue mejor la explicacion del w en el microcontrolador que en el pic !!!

  • @sensorics
    @sensorics 2 года назад

    muy claro

  • @julersaulcanchoanccasi953
    @julersaulcanchoanccasi953 3 года назад

    Hey Bro cuando subes más vídeos

    • @tvcomo6886
      @tvcomo6886  3 года назад

      Pronto, algo que te ande haciendo falta?

    • @julersaulcanchoanccasi953
      @julersaulcanchoanccasi953 3 года назад

      @@tvcomo6886 Pues
      anteriormente te comente que tenia unas practicas del timer 0 y 1 y logre hacerlo a la perfección
      me gustaria que hagas videos para
      controlar motores paso a paso ,servomotores,ADC,DAC de momento bro

    • @julersaulcanchoanccasi953
      @julersaulcanchoanccasi953 3 года назад

      llist p=16f877 ;Comando que indica el Pic usado
      include "p16f877.inc" ;Etiquetas genéricas para el Pic16F877
      CONTA EQU 0x20 ;Variable CONTA en dirección 0x20 hexadecimal de ;memoria RAM
      org 0x00 ;Inicio del programa en la posición cero de memoria
      nop ;Libre (uso del debugger)
      nop
      _inicio
      bsf STATUS,RP0 ;Ir banco 1
      bcf STATUS,RP1
      clrf TRISA ;PORTA salida
      clrf TRISB ;PORTB salida
      clrf TRISC ;PORTC salida
      clrf TRISD ;PORTD salida
      clrf TRISE ;PORTE salida
      movlw b'11000110' ;Configuración del modulo TMR0
      movwf OPTION_REG ;Preescaler = 128
      bcf STATUS,RP0 ;Ir banco 0
      bcf STATUS,RP1
      clrf PORTC ;PORTC = 0
      _bucle
      call _retardo ;Llama la rutina de retardo
      incf PORTC,F ;Incrementa el valor del PORTC
      goto _bucle ;Ir _bucle
      _retardo ;T = 4 * Tosc * Valor de TMR0 * Preescaler
      movlw d'64' ;Cargar el valor de CONTA para 1 segundo
      movwf CONTA
      _espera1
      clrf INTCON ;Deshabilitar interrupciones
      movlw d'134' ;Cargar el valor de TMR0 para 122 cuentas
      movwf TMR0 ;(Complemento)
      _espera
      btfss INTCON,T0IF ;Esperar desborde del TMR0
      goto _espera
      decfsz CONTA,F ;Decrementar el registro CONTA hasta cero
      goto _espera1 ;Si no es cero: ir a _espera1
      return ;retorno de call
      end
      para este ejericio
      use el timer 0

    • @julersaulcanchoanccasi953
      @julersaulcanchoanccasi953 3 года назад

      y despues hice el otro ejercicio con el timer 1
      list p=16f877 ;Comando que indica el Pic usado
      include "p16f877.inc" ;Etiquetas genéricas para el Pic16F877
      CONTA EQU 0x20 ;Variable CONTA en dirección 0x20 hexadecimal
      ;de memoria RAM
      org 0x000 ;Inicio del programa en la posición cero de memoria
      nop ;Libre (uso del debugger)
      nop
      _inicio
      bsf STATUS,RP0 ;Ir banco 1
      bcf STATUS,RP1
      clrf TRISA ;PORTA salida
      clrf TRISB ;PORTB salida
      clrf TRISC ;PORTC salida
      clrf TRISD ;PORTD salida
      clrf TRISE ;PORTE salida
      movlw b'10000000' ;configuración del registro OPTION
      movwf OPTION_REG
      bcf STATUS,RP0 ;Ir banco 0
      bcf STATUS,RP1
      movlw b'00110000' ;Contador interno de 16 bits
      movwf T1CON
      clrf CONTA ;CONTA = 0
      clrf PORTC ;PORTC = 0
      _bucle
      movf CONTA,W ;Cargar el valor de CONTA en W
      call _display ;Llama a la tabla _display
      movwf PORTC ;Al retornar de la subrutina el valor de W se saca
      ;por el PORTC
      call _retardo ;Llama a la subrutina retardo
      incf CONTA,F ;incrementa el valor de CONTA
      movlw d'8' ;Verifica si ha llegado a 8
      subwf CONTA,W
      btfss STATUS,Z
      goto _bucle ;Si no es 8: ir _bucle
      clrf CONTA ;Si es 8: CONTA = 0
      goto _bucle ;Ir _bucle
      _retardo
      bcf PIR1,TMR1IF ;Borrar la bandera de desborde
      clrf TMR1L ;Limpiar los registros de conteo
      clrf TMR1H
      bsf T1CON,TMR1ON ;Habilita el TMR1
      _espera
      btfss PIR1,TMR1IF ;Verificar el desborde
      goto _espera ;Si no ir _espera
      bcf T1CON,TMR1ON ;Si desborda: limpiar bandera de desborde
      return ;Retorno
      _display
      addwf PCL,F ;pcl + W >>>> W
      ;El PCL se incrementa con el valor de W
      ;proporcionando un salto
      retlw b'10000000' ;retorna con valores para PORTC
      retlw b'11000000'
      retlw b'11100000'
      retlw b'11110000'
      retlw b'11111000'
      retlw b'11111100'
      retlw b'11111110'
      retlw b'11111111'
      end

    • @tvcomo6886
      @tvcomo6886  3 года назад

      Me da gusto ver que has podido avanzar con el curso, te dejo aquí estos links, estos videos ya están en la lista de reproducción del curso por si quieres echarles un ojo. ruclips.net/video/ENem6cO9cG8/видео.html ruclips.net/video/fas2XdXgwAQ/видео.html ruclips.net/video/nPFiN8pNY5g/видео.html ruclips.net/video/_L8oNFvFDZ4/видео.html