Configuración de PIC16F877A PORTA como puerto de salida digital

1

Estoy tratando de usar PORTA de PIC16F877A como puerto de salida digital. Pero de alguna manera no parece estar funcionando.

Estoy utilizando MPLAB X IDE MPASM para ensamblar el código. Abajo está el código que estoy usando para inicializar PORTA -

banksel PORTA;
clrf PORTA;

banksel ADCON1
movlw 0x06
movwf ADCON1

banksel CMCON
movlw 0x07
movwf CMCON

banksel TRISA
movlw 0x00
movwf TRISA

banksel PORTA
movlw 0xFF
movwf PORTA

Los LED en la salida no se iluminan en absoluto. ¿Qué me estoy perdiendo? No espero que el RA4 brille ya que sé que requiere una resistencia de pull-up externa, pero ¿qué ocurre con otros LED?

Cualquier ayuda sería muy apreciada. Gracias de antemano.

    
pregunta Swapnil

2 respuestas

4

Parece que este código, tal como es, está configurando las salidas digitales correctamente. Es bueno que haya utilizado BANKSEL para eliminar cualquier problema de configuración bancaria posiblemente mala. Sin embargo, este código todavía tiene algunos problemas serios:

  1. No hay un solo comentario a la vista.

  2. ¿Cómo se reunió esto? Opcodes no están permitidos en la columna 1.

  3. Solo usar una constante HEX para varios campos de bits es una programación irresponsable, como su "MOVLW 0x07". El código debe explicar qué es cada campo de bit individual y qué lo está configurando. Algo como esto:
        banksel blonkcon1
        movlw   b'10010010'
                ; 1-------  enable the blonkulator module
                ; -XX-----  unused
                ; ---10---  prescaler of 7
                ; -----010  select single-shot operation
        movwf   blonkcon1
    

Para probar la configuración del pin por sí misma, desconecte los LED y solo mire lo que hacen los pins con un alcance. Hay una buena probabilidad de que su problema sea con el circuito. Mostrar el circuito completo.

    
respondido por el Olin Lathrop
0

Harías bien para asegurarte de que los pines no sean tomados por el ADC, ya que están siguiendo un reinicio: Los pines PORTA se multiplexan con entradas analógicas y entrada VREF analógica. La operación de cada pin se selecciona borrando / configurando los bits de control en el registro ADCON1 (Registro de control A / D1). El registro TRISA controla la dirección de los pines RA, incluso cuando se utilizan como entradas analógicas. El usuario debe asegurarse de que los bits en el registro TRISA se mantengan configurados cuando se utilizan como entradas analógicas. Nota: en un reinicio de encendido, estos pines se configuran como entradas analógicas y se leen como '0' Hugh

    
respondido por el Hugh

Lea otras preguntas en las etiquetas