本站首页 电路图 元器件 设计制作 电子维修 电子资料 技术资讯 单片机 PCB 电路制图 创意设计 造型设计 电脑网络 平面设计 神气科技 创业资料 产品营销 供求信息 本站邮购 创业指南 I C设计 研发生产 网站制作 人力资源 免费资源 实用查询 工业设计 动画制作
您当前的位置:中国电子产品开发网创意设计设计文献 → 创意设计内容 退出登录 用户管理
创意设计栏目导航
热门创意设计
相关创意设计
1602LCD四位数据接口驱动1602LCD四位数据接口驱动程序
作者:佚名  来源:不详  发布时间:2008-2-3 11:50:17

减小字体 增大字体

提供数字电路设计、模拟电路设计、单片机软件开发,电子产品批量生产,请联系:
无锡神气科技有限公司:
www.shenqikeji.com;0510-88966311;13961896016;QQ:908821848
/////LCM_start/////
/*============================================================
1602LCD四位数据接口驱动程序 马文垒 2004/12/13
==============================================================
感谢:本程序参考 明皓的1602LCM液晶显示屏的驱动函数和实例

连接线图:
----------------------------------
| LCM-----51  | LCM-----51 | 
----------------------------------
|RS-----P2.1 | DB4-----P1.4 |
|RW-----P2.0 | DB5-----P1.5 |
|E -----P2.2 | DB6-----P1.6 |
|VLCD接1K电阻到GND| DB7-----P1.7 |
---------------------------------------------------
[注:AT89S51使用12M晶振]
=============================================================*/
void writelcd(bit command,unsigned char ddata)
{
ReadStatusLCM(); //检测忙
LCM_Data = (ddata&0xf0)|(P1&0x0f);
LCM_RW = 0;
if(command==0) LCM_RS = 0; else LCM_RS=1;
LCM_E = 1;
LCM_E = 0;
LCM_E = 0;
LCM_Data = ((ddata<<4)&0xf0)|(P1&0x0f);
if(command==0) LCM_RS = 0; else LCM_RS=1;
LCM_E = 1;
LCM_E = 0;
LCM_E = 0;
}

//读状态
unsigned char ReadStatusLCM(void)
{
P1_7=1;
LCM_RS = 0;
LCM_RW = 1;
LCM_E = 0;
LCM_E = 0;
LCM_E = 1;
while(P1_7&0x01);//检测忙信号
return(P1_7);
}

void LCMInit(void) //LCM初始化
{
LCM_Data=0xff;
writelcd(0,0x28); //三次显示模式设置,不检测忙信号
Delay5Ms();
writelcd(0,0x28);
Delay5Ms();
writelcd(0,0x28);
Delay5Ms();
writelcd(0,0x28); //显示模式设置,开始要求每次检测忙信号
writelcd(0,0x0c); // 显示开及光标设置
writelcd(0,0x01); //显示清屏
writelcd(0,0x06); // 显示光标移动设置
}

//按指定位置显示一个字符
void DisplayOneChar(unsigned char X, unsigned char Y, unsigned char DData)
{
Y &= 0x1; X &= 0xF; //限制X不能大于15,Y不能大于1
if (Y) X |= 0x40; //当要显示第二行时地址码+0x40;
X |= 0x80; //算出指令码
writelcd(0,X);
writelcd(1,DData);
}

//按指定位置显示一串字符 ***原来的遇到空格0x20就不显示***
void DisplayListChar(unsigned char X, unsigned char Y, unsigned char code *DData)
{
unsigned char ListLength,j;
ListLength = strlen(DData);
Y &= 0x1;
X &= 0xF; //限制X不能大于15,Y不能大于1
if (X <= 0xF) //X坐标应小于0xF
{
for(j=0;j<ListLength;j++)
{
DisplayOneChar(X, Y, DData[j]); //显示单个字符
X++;
}
}
}

//5ms延时
void Delay5Ms(void)
{
unsigned int TempCyc = 5552;
while(TempCyc--);
}

//400ms延时
void Delay400Ms(void)
{
unsigned char TempCycA = 5;
unsigned int TempCycB;
while(TempCycA--)
{
TempCycB=7269;
while(TempCycB--);
};
}
/////LCM_end///////
提供数字电路设计、模拟电路设计、单片机软件开发,电子产品批量生产,请联系:
无锡神气科技有限公司:
www.shenqikeji.com;0510-88966311;13961896016;QQ:908821848
[] [返回上一页] [打 印]
创意设计评论 (评论内容只代表网友观点,与本站立场无关!)

用户名: 查看更多评论

分 值:100分 85分 70分 55分 40分 25分 10分 0分

内 容:

         (注“”为必填内容。) 验证码: 验证码,看不清楚?请点击刷新验证码

关于本站 - 网站帮助 - 广告联系 - 下载声明 - 友情链接 - 网站地图 - 管理登陆 - - -