找回密码
 注册会员
更新自动建库工具PCB Footprint Expert 2024.04 Pro / Library Expert 破解版

LCD1602的四线驱动真的这么难吗???

[复制链接]
admin 发表于 2012-9-2 22:30:40 | 显示全部楼层 |阅读模式

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有账号?注册会员

×
玩过LCD1602四线驱动的朋友帮一下忙!
我的1602用八线驱动都还可以显示到字符的,但换了四线驱动,就送不了数据了解!现粘上源码,希望大家指点!
/*****************************/
#include <reg51.h>
#define uint unsigned int
#define uchar unsigned char
uchar num;
uchar code table[] = {"I LOVE MCU"};
sbit bg=P0^3; //液晶背光控制端口
sbit lcdrs=P0^0;
sbit lcdrw=P0^1;
sbit lcden=P0^2;
sbit fmq=P2^3;
/*******************************/
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

/********写命令***************/
void write_com(uchar com)
{
lcdrs=0;
lcdrw=0;
lcden=0;
P0=(com&0xf0); //写高四位
lcden=1;
delay(10);
lcden=0;
P0=(com&0x0f)<<4; //低4位移到高4位
lcden=1; //写低4位
delay(10);
lcden=0;
}






/*******写数据****************/
void write_data(uchar date)
{
lcdrs=1;
lcdrw=0;
lcden=1;
P0=(date&0xf0);//写高四位
lcden=1;
delay(10);
lcden=0;
P0=(date&0x0f)<<4; //把低4位移到高4位
lcden=1;
delay(10);
// lcden=0;
}

/*********初始化*************/
void init()
{ bg=0;
// lcden=0; //打开使能端
write_com(0x28); //设置16X2显示,5X7点阵,8位数据接口
write_com(0x0f); //00001DCB D=1开显示;D=0关显示 ;C=1显示光标,C=0不显示光标
//B=1光标闪烁;B=0光标不闪烁
write_com(0x05); //000001NS N=1时,当读或写一个字符后地址指针加1,且光标加1
//N=0时,当读或写一个字符后地址指针减1,且光标减1
//S=1时,当写一个字符后整屏显示左移(N=1)
//或右移(N=0),以得到光标不移动,屏幕移动的效果
//S=0时,当写一个字符时整屏显示不移动
write_com(0x01); //数据指针清0,显示清0
write_com(0x80+0x01); //设置第一行要显示的地址指针

}
/**************************************/
void main ()
{ write_com(0x01); //数据指针清0,显示清0
init();

delay(5);
/* for(num=0;num<11;num++)
{
write_data(table[num]);
delay(10);
}*/
while(1);
}
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

QQ|手机版|MCU资讯论坛 ( 京ICP备18035221号-2 )|网站地图

GMT+8, 2024-11-29 12:38 , Processed in 0.061979 second(s), 10 queries , Redis On.

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表