单片机如何驱动LCD显示字符

希望回答简短易理解
在线等

首先你要确定你的LCD是什么型号,是否有字库 等等, 而后对应找这个型号的datasheet 查看怎么驱动他。一般都会有例子,多逛逛单片机论坛吧 有用的。别老来百度问些不知道怎么回答的问题
下面我给一个单片机驱动1602液晶的部分代码,希望有用。
/*******************************************************************************
1602LCD
*******************************************************************************/
#include <reg51.h>
#include <intrins.h>
#define unit unsigned int
#define char unsigned char

sbit rs = P2^1;
sbit rw = P2^2;
sbit ep = P2^0;
char code ask[]={0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39,0xb0};
/* 0 1 2 3 4 5 6 7 8 9 - */
char code dis1[] = {"welcome!"};
char code dis2[] = {"pzowen love you!"};

//***********************************************//
//***********************************************//
///////////////////////////////////////////////////
///////////////////////////////////////////////////
delay(char ms)
{ // 延时子程序
char i;
while(ms--)
{
for(i = 0; i<250; i++)
{
_nop_();
_nop_();
_nop_();
_nop_();
}
}
}

lcd_wcmd(char cmd)
{ // 写入指令数据到LCD
delay(1);
rs = 0;
rw = 0;
ep = 0;
_nop_();
_nop_();
P0 = cmd;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;

}

lcd_pos(char pos)
{ //pos=0x40; //设定显示位置
lcd_wcmd(pos|0x80);
//lcd_wcmd(pos);

}

lcd_wdat(char dat)
{ //写入字符显示数据到LCD
delay(1);
rs = 1;
rw = 0;
ep = 0;
_nop_();
_nop_();
P0 = dat;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 1;
_nop_();
_nop_();
_nop_();
_nop_();
ep = 0;

}

lcd_init()
{
delay(1); //LCD初始化设定
lcd_wcmd(0x38); //显示模式设置:单行,8字符,5x7点阵
delay(1);
delay(1);
lcd_wcmd(0x0c); //开显示,关光标,不闪烁
delay(1);
delay(1);
lcd_wcmd(0x06); //设置输入模式:光标增量移动,显示不移位
delay(1);
delay(1);
//lcd_wcmd(0x01); //清除LCD显示的内容
//delay(1);

}

void main()
{
char i;
char k;
lcd_init(); // 初始化LCD
delay(10);
lcd_pos(0x04); // 设置显示位置为第一行的第5个字符
i = 0;
while(dis1[i]!='\0')
{ // 显示字符"welcome!"
lcd_wdat(dis1[i]);
//lcd_wdat(ask[xianshi[i]]);
delay(30);
i++;
}
//lcd_wdat(xianshi[1]);
//delay(30);

delay(20);
lcd_init();
delay(10);
lcd_pos(0x40); // 设置显示位置为第二行第二个字符
delay(10);
i = 0;
while(dis2[i]!='\0')
{
lcd_wdat(dis2[i]); // 显示字符" "
//lcd_wdat(ask[xianshi[i]]);
delay(30);
i++;
}
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-06-24
单片机命令LCD说:“你给我显示字符:!#¥…………—*…………”
第2个回答  2010-06-24
急不得,看看看时序图和指令代码
第3个回答  2010-06-24
做研究 怎么这么浮躁?

lcd1602用来显示什么信息?单片机如何驱动它的显示?
LCD1602是一种显示模块,专用于显示信息。其显示容量为2行16字符,工作电压在4.5V至5.5V范围内,设计电路时可按照5V系统进行,但需确保电压不低于4.5V。在5V电压下,测量到的工作电流为2mA,此数值指液晶本身,而LED背光的功率消耗则相对较高,通常在10至20毫安之间。LCD1602共有16个引脚,每个引脚的...

51单片机实验,如何让LCD12864显示字符?程序如何下载到单片机里面呢?主 ...
也可以把12864的驱动程序单独编一个源文件(.c文件),添加到工程中 并用一个头文件(主要声明函数和变量)引导,主文件中包含头文件即可,编译链接不用你介入,都有是编译器的事 如我用STC12C单片机和液晶屏时:include<STC12C54.H> include<EEPROM.H> include<YEJING1602.H> 把液晶屏操作函数和EE...

单片机控制TFTLCD显示汉字问题
因为输入的字符串是Unicode编码,而字模库是GBK编码的,要正确取出字模就得先进行编码转换。如果字模库改为Unicode编码,或输入字符串改为GB编码,就不需要转换了。

51单片机显示LCD屏幕?
1、首先我们打开Keil μVision编译器,新建一个工程,然后保存在硬盘上的位置,然后选择Atmel-AT89C51单片机为模型,并启动器添加STARTUP.A51文件,然后在当前目录下新建一个C文件,并将其添加入工作路径。2、导入51单片机的头文件以及LCD1602的头文件。3、创建一个延时函数,可以传入想要具体延时的时长,...

关于单片机的LCD显示问题
2.必须同时给8位数,如果只给一位,LCD1602也会按8位数接收的,其余7位就是未知的,也就没有意了。3.D0~D7送出的数据分命令字和显示字符,显示的字符是ASCll码形式。要显示浮点数,需要把每一位数转换成字符。例,数字1,内部计算是0X01,但要变成字符'1',即0X31。4.在哪行显示,先要写一...

如何用单片机让数码管显字
把0x7d送到8位移位寄存器74HC164即可。显然,要显示字符0~9、A~F,其高4位为全0,而低4位为十六进制数。如果要显示的数高半字节不是0,则要通过程序加以变换。这种静态LED显示法有着显示亮度大,软件较为简单的特点,但硬件上使用芯片多,每个LED显示器需要一个驱动电路。

...我是学电子的,遇到一个用51单片机完成的LCD显示问题。希望能得到你...
其实,很简单,在给LCD1602送字符时,在带上显示的位置坐标参数吧,这个参数,你用一个变量,每送一个字符变量加1,下次,再显示就在下一个位置了,依次显示就行了。注意每一行只能显示16个字符啊,一行显示满了,要么换下一行,要么像字幕一样向左滚动显示。你这程序发图片,谁能看清楚啊,太累了...

超详细讲解,LCD1602电路与驱动
RS、RW、E连接单片机I\/O口,D0-D7连接单片机的I\/O口,需接上拉电阻。A接背光正极,K接电源地。LCD1602的读操作、写操作时序图和时序参数图以及DDRAM、CGROM和CGRAM的定义和作用将在后续章节详细介绍。DDRAM(Display Data RAM)用于存储待显示的字符代码,共80个字节,屏幕仅显示在指定范围内的字符...

关于单片机液晶屏LCD12864的程序
\/ 程序名称:带汉字库的12864液晶显示模块驱动 程序功能:显示字符 、汉字和图片 开发工具:Kile MCU型号:AT89S52-24PU 时钟频率:11.0592MHZ 程序作者:yuan 版权说明:yuan \/ include<reg52.h> include "lcd.h"include "util.h"sbit E=P1^5;\/\/脉冲使能 sbit RW=P1^6;\/\/读写选择 sbit RS=...

单片机中 LCD1602不能显示字符
有光标闪烁表明显示正常阿,你想想,光标要闪烁,显示器初始化没问题,传输的数据也就没问题,显示也就没有问题了。因为其闪烁是由命令控制的。现在你可以根据闪烁光标查下看是不是对比度或亮度问题。先从硬件上查,不行就量下两块板的接口电压,对比找 ...

相似回答