救命呀~~求一个带字库液晶lcd12864显示程序,要串行方式显示的。。显示的内容无所谓,就想看一下显示效果

 我来答
百度网友222f35a
2013-04-27 · TA获得超过104个赞
知道答主
回答量:69
采纳率:100%
帮助的人:50.4万
展开全部
//有些12864的串并口选择端是连Vcc的,这样的12864即使带字库,也不能用串口
#include <REG52.h>
#define uint unsigned int
#define uchar unsigned char
sbit CS=P2^0;
sbit SID=P2^1;
sbit SCLK=P2^2;
//sbit PS1=P3^2;
uchar code disps[]={"I LOVE MCU!"};
uchar code dispx[]={"我爱单片机!"};
void delay_1ms(uint x)
{
uint i,j;
for(j=0;j<x;j++)
for(i=0;i<110;i++);
}
void send_command(uchar command_data)
{
uchar i;
uchar i_data;
i_data=0xf8;
CS=1;
SCLK=0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data<<=4;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
delay_1ms(10);
}
void send_data(uchar command_data)
{
uchar i;
uchar i_data;
i_data=0xfa;
CS=1;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data&=0xf0;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
i_data=command_data;
i_data<<=4;
for(i=0;i<8;i++)
{
SID=(bit)(i_data&0x80);
SCLK=0;
SCLK=1;
i_data=i_data<<1;
}
CS=0;
delay_1ms(10);
}
void lcd_init()
{
delay_1ms(100);
send_command(0x30); /*设置8位数据接口,基本指令模式。*/
send_command(0x02); /*清DDRAM*/
send_command(0x06); /*游标及显示右移一位*/
send_command(0x0c); /*整体显示开,游标关,反白关*/
send_command(0x01); /*写入空格清屏幕*/
send_command(0x80); /*设定首次显示位置*/
}
void display_s()
{
uchar a;
send_command(0x80);
for(a=0;a<11;a++)
{
send_data(disps[a]);
}
}
void display_x()
{
uchar a;
send_command(0x92);
for(a=0;a<11;a++)
{
send_data(dispx[a]);
}
}
main()
{ //PS1=0;
lcd_init();
display_s();
display_x();
while(1);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式