PIC16F877A no puedo encender un led

Todos los Microcontroladores y sus diferentes "familias". Todo este espacio es tuyo para mostrar tu código, consultar con los que más conocen del tema y para disfrutar de estos increíbles y poderosos componentes electrónicos.

Moderador: HJ

PIC16F877A no puedo encender un led

Notapor mdptweety » Lun Jul 20, 2015 9:09 pm

Hola. Estoy teniendo problemas para trabajar con el PIC16F877A. Aclaro que soy recien un iniciado en el tema. El asunto esta que cuando lo simulo con MPLABSim o con Proteus funciona bien, sin embargo a la hora de ponerlo en la protoboard no anda ni para atras. Queria saber si tengo algun error en la programacion o quizas es en el hardware.

El programa ASM:

list p=16f877a ; list directive to define processor
#include <p16f877a.inc> ; processor specific variable definitions
errorlevel -302
__CONFIG _CP_OFF & _WDT_OFF & _BODEN_OFF & _PWRTE_ON & _RC_OSC & _WRT_OFF & _LVP_OFF & _CPD_OFF

RESET_VECTOR CODE 0x0000 ; processor reset vector
nop ; nop for icd
pagesel start
goto start ; go to beginning of program


MAIN_PROG CODE

start org 0x010
clrf reg_h
clrf reg_m
clrf reg_l
clrf PORTA
clrf PORTB
clrf PORTC
bsf STATUS,RP0 ; PASO A BANCO 1
bcf STATUS,RP1 ;
movlw b'00000000'
movwf TRISB ; PORTB TODAS OUTPUTS
movwf TRISA ;
movwf TRISC ;
movwf TRISD ;
bcf STATUS,RP0 ; PASO A BANCO 0

movlw b'11111111'
movwf PORTB
movwf PORTA
movwf PORTC
movwf PORTD
bsf PORTB,1
bsf PORTB,2
bsf PORTB,3

END ; directive 'end of program'

El OUTPUT luego de compilar:

----------------------------------------------------------------------
Debug build of project `C:\LED\Led.mcp' started.
Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36
Preprocessor symbol `__DEBUG' is defined.
Mon Jul 20 21:04:53 2015
----------------------------------------------------------------------
Clean: Deleting intermediary and output files.
Clean: Deleted file "C:\LED\Led.o".
Clean: Deleted file "C:\LED\Led.err".
Clean: Deleted file "C:\LED\Led.lst".
Clean: Deleted file "C:\LED\Led.cof".
Clean: Deleted file "C:\LED\Led.hex".
Clean: Deleted file "C:\LED\Led.mcs".
Clean: Done.
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\MPASMWIN.exe" /q /p16F877A "Led.asm" /l"Led.lst" /e"Led.err" /o"Led.o" /d__DEBUG=1
Executing: "C:\Program Files (x86)\Microchip\MPASM Suite\mplink.exe" "16f877a.lkr" "Led.o" /u_DEBUG /z__MPLAB_BUILD=1 /z__MPLAB_DEBUG=1 /o"Led.cof" /M"Led.map" /W
MPLINK 4.36, Linker
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors : 0

MP2HEX 4.36, COFF to HEX File Converter
Copyright (c) 1998-2010 Microchip Technology Inc.
Errors : 0

Loaded C:\LED\Led.cof.
----------------------------------------------------------------------
Debug build of project `C:\LED\Led.mcp' succeeded.
Language tool versions: MPASMWIN.exe v5.36, mplink.exe v4.36, mplib.exe v4.36
Preprocessor symbol `__DEBUG' is defined.
Mon Jul 20 21:04:54 2015
----------------------------------------------------------------------
BUILD SUCCEEDED

Aclaro que use directamente el Project Wizard del MPLAB 8.53. Utilizo un PIC16F877A con cristal de 10 MHZ. Tengo conectada la pata 1 Vpp a Vcc mediante una resistencia de 10k. Y los puertos estan conectados a masa mediante LED + Resistencia 330. Me dijeron que de las 4 patas de Vdd y Vss solo conecte un par. Probe conectando dos y conectando las cuatro con los mismos resultados. El PIC sin embargo lo he programado antes con otros programas para otras funciones y no ha fallado pero bueno, ahora no anda jaja y quisiera saber si es el programa o por ahi cague el PIC.
Desde ya muchas gracias!!!
mdptweety
 
Mensajes: 40
Registrado: Lun Sep 02, 2013 9:18 pm

Re: PIC16F877A no puedo encender un led

Notapor HJ » Lun Jul 20, 2015 9:25 pm

Hola
El problema puede deberse a que utilizas un cristal de 10MHz y en la palabra de configuración le dices que utilice un RC externo...
En el simulador anda porque esas cosas no las tiene en cuenta.

Deberías colocar que utilizas un HS, es muy probable que sea _HS_OSC para ese micro, pero verifícalo en la hoja de datos, o mejor en el p16f877a.inc

Saludos
HJ
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 475
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: PIC16F877A no puedo encender un led

Notapor mdptweety » Mar Jul 21, 2015 7:49 am

Ah, no se que es un HS jaja, pero bueno, investigo y me fijo. Muchas gracias por la rapida respuesta
mdptweety
 
Mensajes: 40
Registrado: Lun Sep 02, 2013 9:18 pm

Re: PIC16F877A no puedo encender un led

Notapor HJ » Mar Jul 21, 2015 10:18 am

Hola nuevamente
mdptweety escribió:Ah, no se que es un HS

HS se refiere a High-Speed Crystal o Cristal de alta velocidad y es uno de las tantas configuraciones de oscilador posibles.

Saludos
HJ
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 475
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina

Re: PIC16F877A no puedo encender un led

Notapor mdptweety » Mar Jul 21, 2015 12:49 pm

Ya funciono!! Gracias maestro. Efectivamente el problema estaba en la eleccion del tipo de oscilador. Elimine en la configuracion el tipo _RC_OSC y lo reemplace por _HS_OSC y quedo perfecto!!.
mdptweety
 
Mensajes: 40
Registrado: Lun Sep 02, 2013 9:18 pm

Re: PIC16F877A no puedo encender un led

Notapor HJ » Mar Jul 21, 2015 1:37 pm

Me alegra que hayas solucionado tu problema.

Saludos
HJ
"Cuando llegue la inspiración, que me encuentre trabajando"
Picasso, Pablo
Avatar de Usuario
HJ
 
Mensajes: 475
Registrado: Jue Mar 21, 2013 3:16 pm
Ubicación: Tanti - Córdoba - Argentina


Volver a Microcontroladores

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 1 invitado

cron