Autor Tema: sSoy nuevo: Problema con imprimir una variable en LCD, usando mikrobasic  (Leído 2254 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado JALH

  • PIC10
  • *
  • Mensajes: 1
Hola a Todos.. me dirijo a ustedes ya q Soy nuevo utilizando PIC, y he estado aprendiendo a hacer programas en mikrobasic, todo iva bien hasta me encontre el siguiente proyecto, el cual necesito ayuda de ustedes por favor:

Para este ejemplo se ha realizado un programa que muestra el valor cargado
en una variable a la cual hemos denominado “Dato”, y la cual podrá ser
incrementada al accionar el pulsador “P1” conectado en RB0; el valor de esta
variable también podrá decrecer al accionar el pulsador “P2” conectado en
RB1.
Los puertos han sido configurados de la siguiente manera:
• Puerto B: se configura como entrada ya que en los pines RB0 y RB1
estarán conectados los pulsadores P1 y P2.
• Puerto D: se configura como salida ya que éste será utilizado para el
control de la pantalla LCD.
La variable “Dato” ha sido inicializada con un valor cargado igual a 25. Para
aumentar o disminuir este valor, simplemente se pregunta si en RB0 o en RB1
hay un cambio de estado lógico. Adicionalmente se establecen dos
condiciones que se deben cumplir para que la variable pueda aumentar su
valor o disminuir:
• La primera condición al pulsar P1 para el incremento es: solo podrá ser
incrementado el valor cargado en la variable “Dato”, si ésta es menor
(“<”) a cincuenta (50).
• La segunda condición al pulsar P2 para disminuir el valor cargado en la
variable es: solo se podrá disminuir el valor cargado en la variable
“Dato” si ésta es mayor (“>”) a cero (0).




------Mi problema es q no logro que se refleje la variable dato en la LCD(en la imagen se puede observar q no aparece el valor de dato)---- entonces quisiera que me ayudaran a encontrar cual es mi error en el siguiente codigo.. Por Favoooor:

program proyecto_11_LCD_2_aumentar_1_y_disminuir_1

dim LCD_RS as sbit at portd.2
    LCD_EN as sbit at portd.3
    LCD_D4 as sbit at portd.4
    LCD_D5 as sbit at portd.5
    LCD_D6 as sbit at portd.6
    LCD_D7 as sbit at portd.7

    LCD_RS_Direction as sbit at TRISd.2
    LCD_EN_Direction as sbit at TRISd.3
    LCD_D4_Direction as sbit at TRISd.4
    LCD_D5_Direction as sbit at TRISd.5
    LCD_D6_Direction as sbit at TRISd.6
    LCD_D7_Direction as sbit at TRISd.7
   
dim dato as byte

main:

trisd=0
portd=0
trisb= 255
portd=0
dato=25

inicio:


if portb.0=1 and (dato < 50) then
dato=(dato+1)
delay_ms(350)
else

if portb.1=1 and (dato > 0) then
dato=(dato-1)
delay_ms(350)
else

if portb.1=0 and (portb.0=0) then
dato=dato
end if
end if
end if

LCD_init()
LCd_cmd(_LCD_clear)
LCD_cmd(_LCD_cursor_off)
Lcd_out(1,1,"P1 Suma,P2 Resta")
Lcd_out(2,1,"Dato:")
 Lcd_Chr(2, 8, dato)

end.


 

anything