|
Para todos aquellos que quieren saber como hacer funcionar un display
de cristal liquido aquí les muestro como, para el display
HTE9000-95-0010 que usa los integrados de Toshiba
T6961A y T7934
Para obtener las hojas de especificaciones de los integrados, los puedes
obtener del sitio de toshiba o directamente bajarlos de aquí :
El display antes mencionado tiene 14 terminales como las que muestra
la siguiente figura, y su forma de conectarlo a la computadora por el puerto
paralelo, aquí solamente el display es de 20 caracteres por 2 lineas:
El programa es el siguiente para hacer funcionar el display de Toshiba
HTE9000-95-0010
-------solo copia y pega en cualquier editor de textos para que lo
puedas correr en C -------------
/* LCD Module Software
*/
/* 16th Sept 1999
*/
/* Copyright 1999 Diego Puente Lerma
*/
/* obtained from WWW - http://www.senet.com.au/~cpeacock
and modified*/
/* by diego puente lerma for LCD toshiba
HTE9000-95-0010
*/
/* Email - [email protected]
*/
/*
*/
/* Register Select must be connected
to Select Printer (PIN 17) */
/* Enable must be connected to Strobe
(PIN1)
*/
/* DATA 0:7 Connected to DATA 0:7
*/
#include <dos.h>
#include <string.h>
#define PORTADDRESS 0x378 /* Enter Your Port Address Here */
#define DATA PORTADDRESS+0
#define STATUS PORTADDRESS+1
#define CONTROL PORTADDRESS+2
void main(void)
{
char string[] = {"Testing 1,2,3
"
"It' Works !
"};
char init[10];
int count;
int len;
init[0] = 0x30; /* Init Display */
init[1] = 0x30; /* Init Display */
init[2] = 0x30; /* Init Display */
init[3] = 0x38; /* Set function 8bits,
2lines,5x7 dots*/
init[4] = 0x0F; /* Display ON/OFF control
D,Cursor C,blink B */
init[5] = 0x01; /* Clear Display */
init[6] = 0x01; /* other Clear Display
-Not necessary- */
init[7] = 0x14; /* Cursor/Display Shift
*/
init[8] = 0x82; /* Set DD RAM addres
*/
outportb(CONTROL, inportb(CONTROL) &
0xDF); /* Reset Control Port - Make sure Forward Direction */
outportb(CONTROL, inportb(CONTROL) | 0x08); /* Set Select Printer (Register Select) */
for (count = 0; count <= 8; count++)
{
outportb(DATA, init[count]);
outportb(CONTROL,inportb(CONTROL) | 0x01); /* Set Strobe (Enable)*/
delay(20);
/* Larger Delay for INIT */
outportb(CONTROL,inportb(CONTROL) & 0xFE); /* Reset Strobe
(Enable)*/
delay(20);
/* Larger Delay for INIT */
}
outportb(CONTROL, inportb(CONTROL) & 0xF7); /* Reset Select Printer (Register Select)*/
len = strlen(string);
for (count = 0; count < len; count++)
{
outportb(DATA, string[count]);
outportb(CONTROL,inportb(CONTROL) | 0x01); /* Set Strobe*/
delay(2);
outportb(CONTROL,inportb(CONTROL) & 0xFE); /* Reset Strobe*/
delay(2);
}
}
Existen otros proyectos que estoy realizando como un grabador de memorias EPROM para la computadora y otro con un microprocesador de 8 bits Motorola MC6802 que sera del tipo portatil,
Si necesitas un simulador del MC6800 o 6802 obtenlo de aquí
Simulador del 6800
Simulador del 6802
Preguntas?, dudas?, comentarios
Try My Fast URL: http://clik.to/clubderobotica
HOME DIEGO'S PAGE REGLAMENTO OBJETIVOS