Curso de programación de PIC en PICBasic Pro

Listo aca esta problemas de configuracion, aprte los puertos estan compuestos de ocho pines del porta.0 al portb.0 por lo cual cuando trabajes el trisa o porta=%00000000 son ocho espacios que debes de llenar el primero de derecha a izquierda es el pin 0 "cero" y el primero que esta de lado
del %0 es el pin 7 saludos pruebalo y me avisas


'****************************************************************
'* Name : UNTITLED.BAS *
'* Author : [select VIEW...EDITOR OPTIONS] *
'* Notice : Copyright (c) 2010 [select VIEW...EDITOR OPTIONS] *
'* : All Rights Reserved *
'* Date : 19/08/2010 *
'* Version : 1.0 *
'* Notes : *
'* : *
'****************************************************************
@ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
@ DEVICE pic16F628A, WDT_ON ' Watchdog Timer ON
@ DEVICE pic16F628A, PWRT_ON ' Power-On Timer
@ DEVICE pic16F628A, BOD_ON
@ DEVICE pic16F628A, MCLR_OFF ' Master Clear Opción interno
@ DEVICE pic16F628A, LVP_OFF ' Bajo voltaje de programación
@ DEVICE pic16F628A, CPD_OFF ' Protección del código de memoria OFF
@ DEVICE pic16F628A, PROTECT_OFF ' protección de código OFF
Define osc 4
CMCON = 7

pause 500'TIEMPO DE ESPERA 1/2 SEG. PARA ESTABILIZAR EL PIC
trisa.0=0
trisa.1=0
trisa.2=0
trisa.3=0
trisa.4=1
trisa.5=0
trisa.6=0
trisb=%00000000
car var byte
ser var byte
ver var byte
ter var byte
vuelve :
for car=1 to 10 step 1
porta=%00000001:portb=%00010000:pause 4
porta=%00000010:portb=%00100111:pause 4
porta=%00000100:portb=%01111000:pause 4
porta=%00001000:portb=%00100111:pause 4
porta=%01000000:portb=%00010000:pause 4
next
for ser=1 to 10 step 1
porta=%00000001:portb=%00100000:pause 4
porta=%00000010:portb=%00100111:pause 4
porta=%00000100:portb=%01111000:pause 4
porta=%00001000:portb=%00100111:pause 4
porta=%01000000:portb=%00100000:pause 4
next
for ver=1 to 10 step 1
porta=%00000001:portb=%01000000:pause 4
porta=%00000010:portb=%00100111:pause 4
porta=%00000100:portb=%01111000:pause 4
porta=%00001000:portb=%00100111:pause 4
porta=%01000000:portb=%01000000:pause 4
next
for ter=1 to 10 step 1
porta=%00000001:portb=%00100000:pause 4
porta=%00000010:portb=%00100111:pause 4
porta=%00000100:portb=%01111000:pause 4
porta=%00001000:portb=%00100111:pause 4
porta=%01000000:portb=%00100000:pause 4
next
goto vuelve
end
 
gracia reyvilla por responder ;pero trate de compilar lo que me pusiste en el foro y me salen estos errores
 

Adjuntos

  • errores.jpg
    errores.jpg
    146.1 KB · Visitas: 58
gracia reyvilla por responder ;pero trate de compilar lo que me pusiste en el foro y me salen estos errores
Hola:
Disculpa voy a dar mi opinión. El Microcode que supongo es que están usando tiene dos opciones para usar un determinado compilador que lo ven en "View" > "Compile and Program Options"; por lo que se, es cuando se usan Fuses y el compilador asociado es el MPASM te genera errores como los que te han salido. Para arreglar eso debes usar el compilador del PicBasic que está en "C:\PBP", entonces los asocias por medio del botón que está en la imagen; luego de eso te debe aparecer al costado la dirección del compilador "C:\PBP".

Intenta eso.

Saludos.
 

Adjuntos

  • 1.jpg
    1.jpg
    34.2 KB · Visitas: 60
hola amigos estoy haciendo ahora otro ejercicio que consiste en hacer que pase una letra por una matriz 7*5 pero tengo un problema hay una columna de leds que no encienden no se a que se debe
otra cosa en el programa utilizo el comando data no se si lo utilizo bien por favor cualquier ayuda a qui dejo el archivo con el pbp,proteus,hex
 

Adjuntos

  • Nueva carpeta (3).rar
    15.6 KB · Visitas: 157
para seguirte ayudando necesito saber que tanto sabes de picbasic asi que la mejor forma para mi seria que expusieras tu programa y explicaras paso a paso que pretendes hacer con cada linea, asi te entiendo mas y aprendes mas, no se que dices ese es mi pensar...saludos
 
hola amigos estoy haciendo ahora otro ejercicio que consiste en hacer que pase una letra por una matriz 7*5 pero tengo un problema hay una columna de leds que no encienden no se a que se debe
otra cosa en el programa utilizo el comando data no se si lo utilizo bien por favor cualquier ayuda a qui dejo el archivo con el pbp,proteus,hex
Nunca conectaste al bus RA4.
Aunque la hubieras conectado, RA4 es open drain --> necesita una resistencia de pullup.
 
amigo reyvilla aqui te dejo mi explicacion
espero que me deje entender

hola eduardo tienes razon de RA4 ya lo conectepero de todas maneras sigo con en problemo de encendido de una columna
 

Adjuntos

  • explic.rar
    1.5 KB · Visitas: 152
Última edición:
Segun le entiendo a Eduardo es que le pongas una resistencia digamos de 4.7k conectada al positivo o negativo no recuerdo pero yo ya hice algo similar...

asi mas o menos...
-------------------------------
 

Adjuntos

  • Dibujo.JPG
    Dibujo.JPG
    91.6 KB · Visitas: 98
Última edición:
Hola, ya que aca se concentra casi todo lo de picbasic pro consulto por aca para no abrir otro hilo, resulta que estoy con un proyecto con el RTC DS1307, todo funciona hermoso, hasta da la hora y todo :eek:..Bueno el tema es que quiero fijar unas alarmas por soft son el clasico IF, ahora el problema es que el RTC manda los datos en BCD (a la hora de sacarlo por lcd se acompaña de HEX2 para poder verlo en hexa de 2 digitos) y como que se complica a la hora de comparar valores en esta codificacion...(seria menos complicado en HEX o DEC)
Alguien pudo salir del mismo problema? o alguna ayuda para solucionar esto?
Muchas Gracias.
 
hola chicos.
aca dejo mi proyecto BLMC, al parecer ya funciona porlomenos en proteus jeje... en esta semana lo pruebo. (nota: los leds simbolizan los mosfets, y el contador, el detector de zero crossing)
saludosss
 

Adjuntos

  • blmc.rar
    33.8 KB · Visitas: 202
Última edición:
hola lubeck.
el potenciometro es para variar la velocidad del motor por medio de pwm.
en realidad enves de PULSOUT, lleva la instruccion PWM por ejemplo: PWM porta.0,frec,5 pasa que mi pc se planta si uso esa instruccion con proteus, no se porque sera... en esta semana pruebo el proyecto
saludosss.
 
PWM porta.0,frec,5

PWM Pin,Duty,Cycle

no sera asi...

PWM porta.0,127,frec

ahi mandaria la frecuencia al 50%

Pues nop... no le encuentro una secuencia... Alta tecnologia para mi D@rio.. :D

peron con el PWM como lo puse a mi si me funciona....
Asi lo hice pero no encuentro que secuencia quieres dar...
Código:
define osc20
CMCON = 7                
TRISA=0           
trisb=%01110000   
porta=0
portb=0
frec var byte 

Loop:                     
 pot portb.3,137,frec     
 if portb.4 and portb.5 then gosub paso3
 if portb.4 and portb.6 then gosub paso5
 if portb.5 and portb.6 then gosub paso6
 if portb.4 then gosub paso1
 if portb.5 then gosub paso2
 if portb.6 then gosub paso4
goto loop

paso1:
 pwm porta.0,127,frec
 low portb.0
 high portb.1
 low portb.2
return

paso2:
 pwm porta.0,127,frec
 low portb.0
 low portb.1
 high portb.2
return

paso3:
 pwm porta.1,127,frec
 low portb.0
 low portb.1
 high portb.2
return

paso4:
 pwm porta.1,127,frec
 high portb.0
 low portb.1
 low portb.2 
return

paso5:
 pwm porta.2,127,frec
 high portb.0
 low portb.1
 low portb.2 
return

paso6:
 pwm porta.2,127,frec
 low portb.0
 high portb.1
 low portb.2
return
saludos ya nos contaras....
 
Última edición:
Bien con la idea de conocer y aplicar conceptos empezamos con Proyectos de PIc de la serie 18F

Código:
'PICBASIC PRO programa 1 desarrollo de proyectos con micros de la serie 18F
'PROGRAMA 1
'Desarrollo para mostrar resultado de 10-bit A/D de conversión en la pantalla LCD
'con el PIC 18f4550. Entrada analógica conectarse al canal(RA0)

'Definir LOADER_USED para permitir el uso del gestor de arranque.
'Esto no afectará al funcionamiento normal del programa.

Define	LOADER_USED	1
Define	RESET_ORG	800h
Define	OSC	48		' Define Oscilador a 48MHz

' Se definen registros del LCD
Define	LCD_DREG	PORTD
Define	LCD_DBIT	4
Define	LCD_RSREG	PORTE
Define	LCD_RSBIT	0
Define	LCD_EREG	PORTE
Define	LCD_EBIT	1

' Se definen pararametros ADCIN 
Define	ADC_BITS	10	         ' Establece el número de bits en el resultado
Define	ADC_CLOCK	3	         ' Ajuste el reloj de origen (rc=3)
Define	ADC_SAMPLEUS	50	 ' Establezca el tiempo de muestreo en uS

Medición var	Word		 ' Crear variable para almacenar resultado

TRISA = %11111111	' Selecciona PORTA como entrada
ADCON1 = %00001010	' Selecciona Puerto A como analogo
ADCON2 = %10000000	' Jstifica muestro hacia la derecha
Low PORTE.2		
Pause 500		                        ' pausa
inicio:	
ADCIN 0, Medición		        ' leer pin y guardar en variable medicion 
Lcdout $fe, 1		                ' limpiar LCD
Lcdout "MEDICION: ", Dec Medición	' mostrar valor decimal 
Pause 100		                        ' pausa 
GoTo inicio		                        ' Repetir proceso

End

Especificación PIC 18f4550
 

Adjuntos

  • PIC18F4550.pdf
    1.6 MB · Visitas: 177
Última edición:
Atrás
Arriba