• Sábado 4 de Mayo de 2024, 08:27

Autor Tema:  Pic 18f452 No Tengo Salida  (Leído 5693 veces)

angelesahu

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Pic 18f452 No Tengo Salida
« en: Jueves 4 de Octubre de 2007, 21:30 »
0
Que tal gente necesito ayuda por favor he manejado el pic 16f84 ahora tengo un trabajo con el pic 18f452 sencillo un contador descendente del 0 al 9 mostrado en un display 7 seg  por medio del puerto b como salida este programa ya lo tengo  para el 16f84 pero en el 18f452 no funciona me imagino que tengo mal direcciona
do el puerto a mal configurado si alguien me puedde ayudar de antemano gracias

este es el programa para el 16f84


     list p=18f452
     radix hex
status  equ 0x03
portb   equ 0x06
trisb    equ 0x06
cont    equ 0x0c
pc       equ 0x02
ret1     equ 0x08
    org 0x00
inicio clrf portb
       
       bsf status,5      ; cambiamos al banco 1
         movlw 0x00   :configuramos puerto b como salida
         movwf trisb
       
          bcf status,5       ;regresamos al banco 0
com     movlw 0x0a
          movwf cont        ;ponemos el valor 10 en la variable cont
          call segmento      ;llamamos a segmento
          movwf portb        ;ponemos el valor de w en el puerto b
             call retardo
          decf cont              ;decre cont
          movf cont,0           ;movemos el valor de cont a f
          btfsc status,2
          goto com
          goto nuevo
segmento addwf pc       ;sumamos al contador el valor de f  
         nop
         retlw 0x3f
         retlw 0x06
         retlw 0x5b           ; retlw al regresar se lleva el valor en este caso 5b en w
         retlw 0x4f
         retlw 0x66
         retlw 0x6d
         retlw 0x7d
         retlw 0x07
         retlw 0x7f
         retlw 0x67
     
retardo movlw 0xff
        movwf ret1
otra    decfsz ret1,1
        goto otra
        return
          end

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Pic 18f452 No Tengo Salida
« Respuesta #1 en: Jueves 4 de Octubre de 2007, 23:02 »
0
Hola! Si, las direcciones de los registros están mal... fíjate en la hoja de datos del 452.
Como en la familia 16F, la 18F siempre tiene las mismas direcciones para los registros comunes entre un micro y otro... Una buena idea es escribir un archivo declarando todos estos registros, y luego incluirlo en nuestros programas; se reduce la posibilidad de errores, además de agilizar el trabajo...
La familia 18F también tiene una forma especial de acceder a los registros... ;)
Saludos

angelesahu

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Pic 18f452 No Tengo Salida
« Respuesta #2 en: Viernes 5 de Octubre de 2007, 05:50 »
0
Muchas gracias huquen haus tirol me es de gran ayuda tu respuesta
voy a checar la hoja de datos y espero y me sigas ayudando  :hola:  :hola:

Alternative

  • Miembro MUY activo
  • ***
  • Mensajes: 176
    • Ver Perfil
Re: Pic 18f452 No Tengo Salida
« Respuesta #3 en: Viernes 5 de Octubre de 2007, 19:34 »
0
Saludos..
Yano utilises el cambio de banco o salto de banco, no es necesario.
Te recomiendo que utilices la libreria y cuando te funcione
declaralos a tu conveniencia:

LIST   p=18F452
include<p18F452.inc>

Las declaraciones de registros generales son desde la cero

cont1         EQU   00
cont2         EQU   01


;Ejemplo


; Cristal de 16Mhz
; Calculos para 1 seg = 15625 = 3D09
; Preescaler 256
; como debe ser negativo => 0xFF - 0x3D = C2
                            0xFF - 0x09 = F6

; Ojo en la conversion me equivoque y coloque valor_TMR0L      EQU   0xF7


          list       P=18F452
         INCLUDE<P18F452.INC>


    __CONFIG _CONFIG1H, _OSCS_ON_1H & _HSPLL_OSC_1H
    ;XT OSCILATOR
    __CONFIG _CONFIG2L, _BOR_OFF_2L & _BORV_45_2L & _PWRT_ON_2L
    ;BROWN OUT RESET-BOWN OUT VOLTAGE-POWER UP TIMER
    __CONFIG _CONFIG2H, _WDT_OFF_2H & _WDTPS_128_2H
    ;WATCHDOG_TIMER
    __CONFIG _CONFIG4L, _STVR_ON_4L & _LVP_OFF_4L & _DEBUG_OFF_4L
    ;LOW VOLTAGE PROGRAM
    __CONFIG _CONFIG5H, _CPB_ON_5H & _CPD_ON_5H
    ;DATA EE MEMORY
    __CONFIG _CONFIG6L, _WRT0_OFF_6L & _WRT1_OFF_6L & _WRT2_OFF_6L & _WRT3_OFF_6L
    ;FLASH PROGRAM WRITE
    __CONFIG _CONFIG6H, _WRTC_OFF_6H & _WRTB_OFF_6H & _WRTD_OFF_6H
    ;FLASH PROGRAM WRITE

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

cont100         EQU   0x2A

valor_TMR0H      EQU   0xC2
valor_TMR0L      EQU   0xF7

         org   0
         goto   start
         org   8
         goto   rstimer

;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

start         bcf   TRISC,0         ;Salida indicadora de LED
            
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@            INICIO DEL PROGRAMA           @@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

         clrf   PORTC
         movlw   0XA0
         movwf   INTCON
         movlw   B'00000111'
         movwf   T0CON
         movlw   valor_TMR0H
         movwf   TMR0H
         movlw   valor_TMR0L
         movwf   TMR0L
         bsf   T0CON,TMR0ON      ;Enable TMR0
nada         goto   nada
         
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@           T I M E R           @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
;@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@

rstimer         bcf   INTCON,TMR0IF
         movlw   valor_TMR0H
         movwf   TMR0H
         movlw   valor_TMR0L
         movwf   TMR0L
         btfsc   PORTC,0
         goto   apaga
         goto   prende

apaga         bcf   PORTC,0
         retfie
prende         bsf   PORTC,0
         retfie

         END

angelesahu

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Pic 18f452 No Tengo Salida
« Respuesta #4 en: Viernes 5 de Octubre de 2007, 21:39 »
0
:hola: gracias Alternative es bueno saber que no es necesario cambiar de banco
 como te digo solo he utilizado el 16f84 y ahora que veo el 18f452 tiene mucho mas funciones que no conosco y mucho mas registros de funciones especiales
pero espero poco a poco ir aprendiendo; Por cierto ya logre tener salida en el puerto b (configurar el puerto b como salida), mi error era que tenia mal direccionado el puerto pero ahora configuro el puerto E como salida de la misma manera que el puerto b pero no tengo ninguna señal si tienes algun fragmento de programa donde se configure el puerto E te lo agradeceria mucho  :whistling:
y si puedes decirme como usar las librerias ya que definitivamente soy nuevo en esto de antemano Gracias

Alternative

  • Miembro MUY activo
  • ***
  • Mensajes: 176
    • Ver Perfil
Re: Pic 18f452 No Tengo Salida
« Respuesta #5 en: Sábado 6 de Octubre de 2007, 02:39 »
0
SAludos.
Yo te recomendaria que antes de saltar al 18F452 utilices el 16F877, ya que por ejemplo ahorita no te funciona el PORTE, ni tampoco te va a funcionar el PORTA, ya que estos los tienes que configurar como salidas Digitales.

Con respecto a manuales, nunca he visto uno en español para el uso del 18F452, los unicos que he visto de manuales son para el 16F84, lo unico que vas a encontrar el el datasheet asi que te recomiendo que tomes tu diccionario y a machetearle, no hay de otra, asi empece tambien.

Mira te coloco un ejemplito para sacar un dato por el PORTB, PORTE
Haa yo utilizo sus librerias, nunca he declarado registros, no me acomodo

;@@@@@@@@@@@@@@@@@@@@@
  LIST p=18F452
  include<p18F452.inc>

   org 0
   goto start

;@@@@@@@@@@@@@@@@@@@@@
;  DECLARACIONES
;@@@@@@@@@@@@@@@@@@@@@

start   clrf TRISB
          clrf TRISE
         movlw 0x07       ;PORTA y PORTE Out/Inp Digital
         movwf ADCON1
;@@@@@@@@@@@@@@@@@@@@@
;  INICIO DE PROGRAMA
;@@@@@@@@@@@@@@@@@@@@@
          movlw 0x01
          movwf PORTB
          movlw 0x02
          movwf PORTE
          sleep
          END      



SALUDOS Y AHORA SI TOMA TU DICCIONARIO
Y HA ESTUDIAR, PORQUE NO HAY DE OTRA
BYE :hola:

Huguen_aus_Tirol

  • Miembro MUY activo
  • ***
  • Mensajes: 318
    • Ver Perfil
    • http://www.erhard-automation.co.cc
Re: Pic 18f452 No Tengo Salida
« Respuesta #6 en: Sábado 6 de Octubre de 2007, 09:29 »
0
En estos micros, después de un reset las entradas con función analógica quedan activadas. En los registros del conversor hay que configurar las entradas (o salidas) como digitales, salvo que usemos alguna como analógica. Las entradas analógicas abarcan el puerto A y el E, de hay el problema que tienes...
Es algo que siempre pasa...

Saludos

angelesahu

  • Nuevo Miembro
  • *
  • Mensajes: 9
    • Ver Perfil
Re: Pic 18f452 No Tengo Salida
« Respuesta #7 en: Martes 9 de Octubre de 2007, 19:04 »
0
:D Muchas gracias a Alternative y a huguen_aus_tirol sus comentarios me han sido de mucha ayuda ya tengo salida en los puertos y Pues si no hay mas que
la hoja de datos ya he buscado por otro lado  algo en español del 18f y no encuentro nada y gracias nuevamente :hola: