Curso de programación de PIC en PICBasic Pro

La estas errando en que piensas en decimal, piensa en hexadecimal!!!....
mira esto...
https://www.forosdeelectronica.com/posts/378995/
 
pensaba que esto necesitaba algun tipo de definición, ahora entiendo que no es así.
passd.highbyte
passd.lowbyte

Ok, correcto, ahora veo que aunque envío pass a pantalla no me la muestra, se queda en una tira negra y lo único que agregué fue:
Lcdout $fe, 1
Lcdout $fe, 2,#passd
pause 3000

Como siempre, muchas gracias amigo.
 
Ja,Ja,Ja... es cierto que sí...

pero es que estoy probando el mismo ejercicio al que me referiste, también sale en negro tal y como el que publiqué hace un rato, qué será...
 
Bueno, ya volví, me quedé sin internet.

Código:
 @ DEVICE pic16F628A, INTRC_OSC_NOCLKOUT ' Opción del Osc Interno
 ' Define osc 4
  @ 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
 
 CmCon=7  
TrisB=0 
 DEFINE LCD_DREG PORTB 'UTILIZAR 4 BITS DEL PUERTO B PARA TX DE DATOS
DEFINE LCD_DBIT 4     'DESDE EL BIT B.4 AL BIT B.7
DEFINE LCD_RSREG PORTB'UTILIZAR EL REGISTRO  DE CONTROL/DATOS EN EL PUERTO B
DEFINE LCD_RSBIT 1    'EN EL BIT B.1
DEFINE LCD_EREG PORTB 'UTILIZAR EL ENABLE EN EL PUERTO B
DEFINE LCD_EBIT 3     'EN EL BIT B.3

passd var word

data    @2,$07,$DF ' graba esto al quemar el pic en la eeprom

read 2,passd.highbyte 'lee la posicion2 que es 07 y lo coloca en la parte alta del byte
read 3,passd.lowbyte  'lee la posicion3 que es DF y  lo coloca en la parte baja del byte
'como 07DF es 2015 en decimal entonces la variable passd=2015

passd=2013 'cambiamos el valor de passd

'como 2013 en hex = 07DD

write 2,passd.highbyte  'colocamos la parte alta que es $07 en la posicion 2
write 3,passd.lowbyte  'colocamos la parte baja que es $DD en la posicion 3
'la eeprom quedaria asi...
'00 07 DD

Lcdout $fe, 2,dec passd
 
Ya volví a resucitar, aquí anexo la simulación, es solo el pic con la pantalla, aunque ella funciona bien, el problema es al quemarla que no funciona.
 

Adjuntos

  • PRUEBAS LOGICAS2.rar
    13.9 KB · Visitas: 134
Listo!

El problema era del pic, como que soy muy ordinario todavia, ayer dañé uno, hoy seguí dañando y me queda solo uno, creo que sería la manipulación exagerada que les dí.

Bueno Lubeck, como siempre me has sido de gran ayuda, mil y mas gracias por ayudarme y soportarme viejo, hasta pronto y suerte.
 
Hola!

Soy nuevo en el foro y e leido varias temas que estan muy buenos, ahorita solo estaba programando con MPLAB usando el PIC16F84A para que encendiera/apagara unos LEDS pero ahora que busque mas informacion de los microcontroladores y los programas para programarlo encontre el Pic Basic Pro adapatado al MPLAB y se me hace mas facil en cuanto a la forma de encender/apagar los leds, bueno tambien e usado poco el MIKROBASIC, con este pude conectar una pantalla de LCD al pic que muestre un texto de derecha a izquierda en la linea de abajo y despues se pase a la de arriba igual de derecha a izquierda, bueno ahora e estado leyendo y ya le medio adapte con PBP un contador jeje escribo medio porque no lo muestra como yo quiero esque tengo pensado hacer una secuencia de leds junto con unos botones, y pues espero que me puedan orientar.

Bueno el programa lo tengo con un PIC16F873A, un LCD 2X16 y 4 botones, y funciona de la siguiente forma:

Al momento de que un boton se acciona indica un numero en el lcd, al llegar a un conteo de 3 se enciende un led y ya no cuenta mas aunque siga accionando el boton, osea ya no se mueve el numero del lcd y el led sigue prendido :) esto es igual para los 3 primeros botones, hasta aqui si es como quiero que quede, bueno el problema es que e intentado hacer que el cuarto boton al accionarlo se prenda un cuarto led (como si indicara que se reiniciaria el programa) y despues se apague junto con los demas como un reset y se le borren los datos al lcd y al pic, osea que me reinicie el programa para empezar con el conteo de los primeros 3 botones (estoy usando la memoria del PIC para que en caso de que se me corte la energia que energiza a este o algo por el estilo pues se queden almacenados los conteos y si se vuelve a energizar pues sigue el ciclo en el que se quedo).

¿Alguien sabra que es lo que le falta para que quede como les comento?

Espero que ustedes me puedan orientar o aclararme en que ando mal.

De antemano gracias!
 
Que tal estoy realizando un control de velocidad y giro con POTENCIOMETRO a través de un driver lm293 y un pic 16f84A , el progrma es el siguiente:
Código:
define osc 4 ; especifica que se va a utilizar uno de 4 Mhz 

TRISB = %00000000      ; PUERTO B COMO SALIDA 
EN1      VAR PORTB.0
IN2      VAR PORTB.1
IN1      VAR PORTB.2
EN2      VAR PORTB.3
IN3      VAR PORTB.4
IN4      VAR PORTB.5

POT_VAL VAR BYTE         ; VARIABLE PARA EL POTENCIOMETRO           
MOT_PWR VAR BYTE         ;

INICIO: ;
pot PORTA.0,255,POT_VAL 
SELECT CASE POT_VAL      ; IMPLEMENTACION DE DECISIONES
CASE IS <128 
MOT_PWR = 127-POT_VAL   
HIGH IN2: LOW IN1: HIGH IN3: LOW IN4
CASE 128 
MOT_PWR = 0
CASE IS >128 
MOT_PWR = POT_VAL-127
LOW IN2: HIGH IN1: LOW IN3: HIGH IN4
CASE ELSE ;
END SELECT ;
PWM EN1, MOT_PWR, 30 : PWM EN2, MOT_PWR, 30 
GOTO INICIO
END

Mi inquietud es que al realizar la simulación el pwm en los enables no operan al tiempo :rolleyes:
aunque estables una condicional con :)) para realizar las dos funciones al tiempo. que otro comando se utilizar para la realización de dos operaciones simultaneas.
 

Adjuntos

  • control circuito.rar
    20 KB · Visitas: 146
Hola atricio, necesitas un PIC que use ADC, que PIC vas a utilizar? y que programa estas utilizando para programar? Estuve leyendo uno que se basa en Pic Basic Pro y al momento de simularlo da un eror de +/- 1ºC usando 8 bits de resolución del ADC, si lo quieres mas exacto entonces usas los 10 bits del ADC.
 
ya la simulacion en proteus me anda bien tenia un error en la descripcion a las entradas del lm 293 para el giro de los motores cambie la habilitación de las entradas y listo.

Código:
HIGH IN2: LOW IN1: low IN3: high IN4
CASE 128 
MOT_PWR = 0
CASE IS >128 
MOT_PWR = POT_VAL-127
LOW IN2: HIGH IN1: high IN3: low IN4
CASE ELSE ;
END SELECT ;
PWM EN1, MOT_PWR, 30 : PWM EN2, MOT_PWR, 30 
GOTO INICIO
END
 
En el archivo no agregaste el .hex autotronico, entonces solo te faltaba el high invertirlo por low jeje suele pasar, lo programaste con MPLAB? los motores son de CD? haber si subes tu proyecto completo para compartirlo en el foro para la gente.

Saludos.
 
Bien lo que pasa es que le estoy ayudando a un gran amigo que le habían planteado realizar un control de velocidad y giro para dos motores DC por medio de un potenciometro , pero solamente tiene el pic 16f84A y me comento que se le había paso comprar uno que tuviera conversor análogo digital pic 16f877A u otro con conversores A/D, se ahorro el pic ya que le funciona al pelo.:LOL:

como puedes ver en el documento anexo lo compile en PBP anidado en MPLAB
 

Adjuntos

  • control circuito.rar
    56.7 KB · Visitas: 214
Atrás
Arriba