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

希望回答简短易理解在线等... 希望回答简短易理解
在线等
展开
 我来答
pzowen
2010-06-24 · TA获得超过206个赞
知道小有建树答主
回答量:177
采纳率:0%
帮助的人:126万
展开全部
首先你要确定你的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++;
}
hepday
2010-06-24 · TA获得超过718个赞
知道小有建树答主
回答量:1074
采纳率:73%
帮助的人:300万
展开全部
单片机命令LCD说:“你给我显示字符:!#¥…………—*…………”
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
念善思70
2010-06-24 · TA获得超过280个赞
知道小有建树答主
回答量:144
采纳率:0%
帮助的人:89.2万
展开全部
急不得,看看看时序图和指令代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2010-06-24
展开全部
做研究 怎么这么浮躁?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式