Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

19/09/2008 #1


LCD grafico GLCD basado en controlador KS0108, desarrollo en MikroC
Pues el tema es el siguiente, quiero graficar en GLCD (graphic lcd crystal display) basado en controlador KS0108, espero se me una mas gente, por el moemento estoy aprendiendo a programar con MikroC. Ahi va mi primera duda, y es :

Yo tengo toda la logica del sistema que estoy diseñando programada en ASM, el pic empleado es el PIC16f887 de 44 pines de montaje superficial, le tengo trabajando el modulo conversor A/D, el modulo comparador con voltaje de referencia, interrupciones en el puerto b (7 pulsadores), y los tres timer (tmr0,tmr1,tmr2) ya ocupados cada uno haciendo su trabajo. Ahora solo me falta visualizar todo esto, por eso la GLCD.

¿Puedo dejar esa parte de codigo en ASM y hacer la parte de la LCD en C?
Hasta pronto.
19/09/2008 #2

Avatar de asherar

Assembler dentro de C
Efectivamente. El compilador C de mmikroC y el HT-picC te permiten incluir instrucciones o partes de código mediante la función "asm" en la forma:

...
(viene código C)
asm { ( instrucciones en assembler) };
(sigue código C)
...

Tenés que fijarte en el documento de ayuda o en el del compilador porque algunas cosas cambian de un compilador a otro. Por ejemplo la forma de invocar a las variables, los bits, etc.

Saludos

Editado: mikroC no tiene rutinas para el 16F876 que hagan "sprintf" para convertir un numero en cadena y poder mandarlo como texto.
Te paso una rutina que hice para el rango 0 a 999 y anda al pelo. Al menos hasta ahora no le encontré bugs.

Código:
//  Este es el encabezador para poner en un archivo "varios.h"
char *hex2dec(char HEX);

//  Esta es la rutina 
//  El dato HEX debe ser un número de tres cifras (0 a 999).
//  Así como está escribe los ceros a la izquierda
char *hex2dec(char HEX)
{
char U, C, D, CH[4]; 

  C =  HEX/100;
  D = (HEX - C*100) /10;
  U = (HEX - C*100 - D*10);
  CH[0] = 48+C; // 48 es el ascii del 0
  CH[1] = 48+D;
  CH[2] = 48+U;
  CH[3] = 0;       // Fin de la cadena

return CH;
}

// Esta es la forma de invocarla desde el programa. 
// TORQUE es una variable char sin signo, de hasta 16 bits. 

    strcpy(TXT,hex2dec(TORQUE));
    Mostrar_Texto(8, 9,TXT); // TORQUE
16/10/2010 #3

Avatar de javierdavid2006

LCD grafico GLCD basado en controlador KS0108, desarrollo en MikroC
Hola a todos, tengo un problema y es que quiero mostrar una conversion analogia a digital en una glcd de controlador ks0108 realizado en ccs de pcw, pero no se como poner la variable de voltaje en el glcd, para los textos fijos no tengo problemas.

Gracias a todos.
20/10/2010 #4

Avatar de COARITES

Respuesta: LCD grafico GLCD basado en controlador KS0108, desarrollo en MikroC
Esto va para alguien que tenga un tiempito. Tengo a la mano un GLCD de TOWWAY el LM12864ldy queria saber si este glcd tiene incorporado un controlador ks108 y si se puede programar en PICC de CCS.
18/12/2015 #5


LCD grafico GLCD basado en controlador KS0108, desarrollo en MikroC
Hola a todos. Quiero saber si alguien puede ayudarme.
Estoy trabajando con una LCD Gráfica y el microcontrolador 18F4685 con el compilador de mikro C.

El detalle es que al momento de correr el programa en proteus, la LCD me muestra cosas raras.
Al inicio pretendí mandar una imagen y en la LCD me divide en dos la pantalla y sólo me muestra la mitad de la imagen en ambas mitades de la LCD.

Pensé que sería mi programa, así que mandé una línea y me pone barras en negro y después me dibuja la línea que yo programo.

¿Me podrían ayudar? Ya no sé si es mi programa o es la conexión.

El código es éste:
Código PHP:
char GLCD_DataPort at PORTD;
sbit GLCD_CS1 at RB0_bit;
sbit GLCD_CS2 at RB1_bit;
sbit GLCD_RS at RB2_bit;
sbit GLCD_RW at RB3_bit;
sbit GLCD_EN at RB4_bit;
sbit GLCD_RST at RB5_bit;

sbit GLCD_CS1_Direction at TRISB0_bit;
sbit GLCD_CS2_Direction at TRISB1_bit;
sbit GLCD_RS_Direction at TRISB2_bit;
sbit GLCD_RW_Direction at TRISB3_bit;
sbit GLCD_EN_Direction at TRISB4_bit;
sbit GLCD_RST_Direction at TRISB5_bit;


void main (){

  
Glcd_Init();

 while (
1){
  
Glcd_Fill(0);
   
delay_ms (1000);
Glcd_H_Line(1050201);
}


Imágenes Adjuntas
Tipo de Archivo: jpg grafica2.jpg (73,7 KB (Kilobytes), 3 visitas)
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.