Curso de programación de PIC en PICBasic Pro

por si acaso a alguien no le compilaba ya lo corregi solo le quite lo que decia @device y le inclui una linea para que le reconozca al oscilador externo ahora bien posee algunas preguntas puntuales mi querido amigo autotronico porque mandas a uno estos registros es por el micro o que razon tiene te agradeceria un poco que me explicaras por favor en el codigo coloque las lineas que quisiera que me des una mano por favor
Código:
'OPTION_REG =%00111111
PORTA=0:TRISA=%00000001
PORTB=0:TRISB=%00000000
PORTC=0:TRISC=%00000000
PORTD=0:TRISD=%00000000
ADCON1= %10001110 '
T2CON = %00000101
PR2=249
'-----------------------------------------------------------------
'@ DEVICE PIC16F877                                                    
'@ DEVICE PIC16F877, WDT_OFF             
'@ DEVICE PIC16F877, PWRT_OFF            
'@ DEVICE PIC16F877, PROTECT_OFF        
'@ DEVICE PIC16F877, XT_OSC             
@devicext_osc
'-----------------------------------------------------------------
DEFINE OSC 4
'**************** ADC ************************
DEFINE ADC_BITS 10    ' 
DEFINE ADC_CLOCK 1    ' 
DEFINE ADC_SAMPLEUS 3 ' 
'****************HPWM ********************
DEFINE CCP1_REG   PORTC    'Hpwm 1 pin port
DEFINE CCP1_BIT     2      	'Hpwm 1 pin bit
DEFINE CCP2_REG   PORTC    'Hpwm 2 pin port
DEFINE CCP2_BIT     1      'Hpwm 2 pin bit 
'******************* VARIABLES ********************
HAM var word
X   VAR WORD
DUTY VAR BYTE   
'---------------------------------------------------------------------------

CCP1CON.2=1    'PORQUE LO COLOCAS ASI 
CCP1CON.3=1   'PORQUE LO COLOCAS ASI 

CCP2CON.2=1  'PORQUE LO COLOCAS ASI 
CCP2CON.3=1   'PORQUE LO COLOCAS ASI 


TIEMPO:
      DUTY=50
      GOSUB SALIDA
      
      GOTO TIEMPO
      
SALIDA:
       ADCIN 0,HAM
       PR2=((1024-HAM)*/5625)/100+24
       
       X=(PR2+1)* DUTY /25
       CCP1CON.4=X.0      'PORQUE LO COLOCAS ASI 
       CCP1CON.5=X.1      'PORQUE LO COLOCAS ASI 
       
       CCP2CON.4=X.0       'PORQUE LO COLOCAS ASI 
       CCP2CON.5=X.1       'PORQUE LO COLOCAS ASI 
      
       CCPR1L=X>>2          'PORQUE LO COLOCAS ASI 

      CCPR2L=X>>2	    'PORQUE LO COLOCAS ASI 
       RETURN

De antemano gracias por la auda
 
Muchas gracias autotronico, era lo que necesitaba para poder entender el tema y has especificado con detalles cada linea de programación, vegna tío muy bien :aplauso: :aplauso: :aplauso:
 
holaaaa amigo esta especial este curso que nos das en la programación de microcontroladores..pero tengo una duda ¿ como puedo habilitar del PIC16F877A dos puertos ( RC0-RC7 y RD0-RD7) que son 16 pines, para encender por medio de un pulsador los 16 Leds con estos efecto???

puedes ayudarme con la programación en microcode studio...???
es para un proyecto que voy a presentar de termino de preparatoria Tecnica.......

Deanteano muchisimas gracias...espero me puedas ayudar...

Te anexo una imagen de lo que te comento...

Saludos.....
 

Adjuntos

  • Simulación.jpg
    Simulación.jpg
    135.8 KB · Visitas: 77
Que tal Shura!! bueno respecto a la ayuda que pides, no se como querías que fuese exactamente la cuestión con los LEDs, aquí te hice un ejemplo que quizás te sirva para lo que estas buscando, consiste en que todos los LED están apagados y al presionar el pulsador se van encendiendo de uno en uno en un orden, desde el puerto C0 hasta C7 y de ahí continua desde D0 hasta D7 y espera que vuelvas a presionar el pulsador para volver a repetir. En el archivo PBP detalle cada linea de programacion y te vas a encontrar con una linea que dice al inicio:

PORTC=%00000001 ;eso significa que el 0 es estado bajo o 0 vts y el 1 estado alto 5 vts, puedes cambiarlos hacer combinaciones y obtendrás nuevas formas de encender y apagar los LED que están en el PIC, bueno espero haberte ayudado en tu duda.
 

Adjuntos

  • LUCES PIC16F877A.rar
    12.3 KB · Visitas: 166
shura
en el inicio de este curso mecatrodatos tiene ejemplos para hacerlo con pic basic pro
es bastante sencillo debes configurar el oscilador, los puertos y cuando presiones el pulsador
activas todo el puerto que quieres
 
MUCHISIMAS GRACIAS NANO24 y ati arturouc, me sirvio tu ejemplo que me colocaste...asi era como lo queria camarada y muchas gracias por contestar rapido...

fue de mucho tu ayuda....

te debo una...

saludos desde monterrey nuevo leon mexico...
 
MUCHISIMAS GRACIAS NANO24 y ati arturouc, me sirvio tu ejemplo que me colocaste...asi era como lo queria camarada y muchas gracias por contestar rapido...

fue de mucho tu ayuda....

te debo una...

saludos desde monterrey nuevo leon mexico...

Saluds Shura, desde venezuela y pues de nada, aqui estamos todos para compartir y ayudar en lo que se pueda. :D
 
muchas gracias queridos colegas revisare lo que me han facilitado y lo aplicare ahora saquenme de una duda en un L293D puedo usarlo para conectar la salida del micro que me da el pulso PWM y poder hacer funcionar mi motor disculpen si mi pregunta ofende por lo basico pero es algo que me tiene un poco inquieto de antemano gracias por la ayuda
 
Hola amigos qe tal...espero q todo bien...

pues les tengo una pregunta...

estoy programando un PIC16F877A y quiero saber si no tiene nada que ver que mi programa que estoy realizando (pbp) sea muy largo (en cuestion de caracteres que forman el programa) para la capacidad del PIC?

espero me ayan entendido y me puedan ayudar...

deantemano muchisimas gracias....

anexo el archivo "pbp"
 

Adjuntos

  • Untitled.rar
    1.5 KB · Visitas: 125
que tal amigos estoy haciendo un contador de 0-99 en micro code studio y hay un error creo que de tiempos si me pudieran ayudar .. gracias hay dejo la programacion y el circuito en proteus

TRISA=0
TRISB=0
CONTA VAR BYTE
UNIDAD VAR BYTE
DECENA VAR BYTE
DECE VAR BYTE

UNIDAD=0
DECE=0


INCREMENTAR:
PORTA=1
FOR CONTA= 1 TO 10
LOOKUP CONTA,[8,0,1,2,3,4,5,6,7,8,9],UNIDAD
PORTB=UNIDAD
PAUSE 150
NEXT
GOSUB DECENAS

DECENAS:
PORTB=DECENA
PORTA=2
IF DECENA=10 THEN INCREMENTAR
DECENA=DECENA+1
PAUSE 100
GOSUB INCREMENTAR

END
 
Última edición:
Hola amigos qe tal...espero q todo bien...

pues les tengo una pregunta...

estoy programando un PIC16F877A y quiero saber si no tiene nada que ver que mi programa que estoy realizando (pbp) sea muy largo (en cuestion de caracteres que forman el programa) para la capacidad del PIC?

espero me ayan entendido y me puedan ayudar...

deantemano muchisimas gracias....

anexo el archivo "pbp"


Con que no pase el limite de memoria de programa del pic ya compilado esta bien
 
michas gracias amigo "snakewather" pero me puedes decir

como puedo revisar la capacidad de memoria del PIC16F877A contra mi programa compilado???

Deantemano muchas gracias///
 
Atricio esta es la versión mejorada del control para operación y manipulación de motores con el L293D que mecatrodatos posteo en este hilo no me acuerdo bien cual es el Numero de pagina, pero era algo de proyectos con motores seria bueno volverlo a retomar.

http://www.solarbotics.com/assets/documentation/kit10.pdf

Que tal autotronic! Quería hacerte una pregunta nada mas para que me des una idea, como haría para medir distancias por infrarrojo, yo tengo ya la configuración para poner el pic a mandar señales de 38Khz a través de IR, pero como hago para poder calcular distancias? es que pienso hacer un robot y que dependiendo de la distancia que se encuentre de los objetos el regule la velocidad de los motores. Lo de los motores es lo de menos esa parte si tengo una idea de como hacerlo, bueno lo digo para ahorrarte molestias. :cool:
 
ola amigos...me pueden ayudar si mi codigo .hex que anexo excede la capaidad de mi PIC16F877A? me pueden decir como puedo saber esto???

saludos///

espero me puedan ayudar...
 

Adjuntos

  • UNTITLED.rar
    2.7 KB · Visitas: 87
michas gracias amigo "snakewather" pero me puedes decir

como puedo revisar la capacidad de memoria del PIC16F877A contra mi programa compilado???

Deantemano muchas gracias///


En la primera hoja del DATASHEET del PIC vienen las especificaciones para Program Memory.
te adjunto esta imagen para que sepas el tamaño de tu programa.

saludos:apreton:
 

Adjuntos

  • Tamaño Program PBP.JPG
    Tamaño Program PBP.JPG
    48.3 KB · Visitas: 64
gracias---amigo----

pero por alguna razon no me sale este dato en mi compilador..podrias hacerme el favor de probarmelo en tu compilador y decirme el espacio que ocupa..y si e excedido la memoria de mi PIC16F877A

te anexo el codigo en "PBP"
y tan bien te anexo una imagen de lo que me sale en mi compilador, de echo me sale una leyenda que me pone en duda..lo veras en la imagen

Saludos y deantemano muchisimas gracias...
:apreton:

aqui esta la imagen uppssss:rolleyes:
 

Adjuntos

  • Picture1.jpg
    Picture1.jpg
    85.2 KB · Visitas: 58
  • mipbp1.rar
    2.7 KB · Visitas: 107
  • Picture3.jpg
    Picture3.jpg
    90.7 KB · Visitas: 57
Última edición:
Atrás
Arriba