历史上的今天
返回首页

历史上的今天

今天是:2025年08月13日(星期三)

正在发生

2019年08月13日 | 壹拾陆:LCD1602的显示

2019-08-13 来源:eefocus

#操作方法




**原理图**

代码


******************************************************************

*   【课程17】 ****LCD1602的实验***********

*   【说  明】 ****

*   【描  述】 ****在LCD1602上显示字符

******************************************************************  

---------------------------------------------------------


基本操作:

读状态: RS=0,RW=1,EN=1

输出:D0~D7=状态字;

写指令: RS=0,RW=0,EN=下降沿脉冲

D0~D7=指令码;

读数据: RS=1,RW=1,EN=1

输出: D0~D7=数据;

写数据: RS=1,RW=1,EN=下降沿脉冲

D0~D7=数据;

*********************************************************/


#include //51头文件,


//---------常用的两个宏定义-------------- 

#define uint8 unsigned char

#define uint16  unsigned int

//--------1602的控制引脚定义-------------

sbit RS = P2^5;

sbit RW = P2^6;

sbit EN = P2^7;


//----------显示的数据------------

uint8 Data1[7]="welcom!";

uint8 Data2[13]="www.yxarm.net";


//-----------函数的声明------------------

void DelayMS(uint16 dly);


//----------液晶模块的声明---------------

bit BUSY(void);

void Write_cmd(uint8 cmd);

void Write_dat(uint8 dat);

void LCD_Init(void);


//---------Main Task---------------------

void main(void)

{

uint8 i;

LCD_Init();

while(1)

{

Write_cmd(0x85); //第一行

for(i=0;i<7;i++)

Write_dat(Data1[i]);

Write_cmd(0xc2); //第二行

for(i=0;i<13;i++)

Write_dat(Data2[i]);

}

}


/********************************************************

** 名称 :void DelayMS(uint16 dly)

** 功能 :毫秒级延时(12M的晶振)

** 入口参数 :dly  用户的延时参数   

** 出口参数 :无   

*********************************************************/

void DelayMS(uint16 dly)

{

uint16 x,y;

for(x=dly;x>0;x--)

for(y=124;y>0;y--);

}

/********************************************************

** 名称 :bit BUSY(void)

** 功能 :检测LCD1602是否处于忙状态;

** 入口参数 :无   

** 出口参数 :bit Bit

返回1,则BUSY

返回0,则OK   

*********************************************************/

bit BUSY(void)

{

bit Bit;

RS = 0;

RW = 1;

EN = 1;

DelayMS(1);

Bit = (bit)(P0 & 0x80); //最高位为忙信号位

EN = 0;

return Bit;

}


/********************************************************

** 名称 :void Write_cmd(uint8 cmd)

** 功能 :写命令

** 入口参数 :cmd  控制命令   

** 出口参数 :无   

*********************************************************/

void Write_cmd(uint8 cmd)

{

while(BUSY()); //测忙

RS = 0;

RW = 0;

EN = 0;

P0 = cmd;

EN = 1;

DelayMS(1);

EN = 0;

}


/********************************************************

** 名称 :void Write_dat(uint8 dat)

** 功能 :写数据

** 入口参数 :dat  要显示的数据  

** 出口参数 :无   

*********************************************************/

void Write_dat(uint8 dat)

{

while(BUSY()); //测忙

RS = 1;

RW = 0;

EN = 0;

P0 = dat;

EN = 1;

DelayMS(1);

EN = 0;

}

/********************************************************

** 名称 :void LCD_Init(void)

** 功能 :液晶的初始化

** 入口参数 :无 

** 出口参数 :无   

*********************************************************/

void LCD_Init(void)

{

Write_cmd(0x38); //功能设置

DelayMS(1);

Write_cmd(0x0c); //显示开关控制

DelayMS(1);

Write_cmd(0x06); //输入方式设置

DelayMS(1);

Write_cmd(0x01); //清除LCD的显示内容

DelayMS(1);

}



推荐阅读

史海拾趣

E-tec Interconnect Ltd公司的发展小趣事

随着技术的不断成熟和产品质量的不断提升,E-tec开始积极拓展市场。他们与多家国际知名的电子设备制造商建立了合作关系,产品逐渐进入全球供应链。为了进一步提升产品质量和竞争力,E-tec通过了ISO 9001质量管理体系认证,以及多项行业内的品质认证,如UL、CE等。这些认证不仅提升了公司的品牌形象,也增强了客户对公司的信任。

港源(GANGYUAN)公司的发展小趣事

随着技术的不断成熟和产品质量的不断提升,E-tec开始积极拓展市场。他们与多家国际知名的电子设备制造商建立了合作关系,产品逐渐进入全球供应链。为了进一步提升产品质量和竞争力,E-tec通过了ISO 9001质量管理体系认证,以及多项行业内的品质认证,如UL、CE等。这些认证不仅提升了公司的品牌形象,也增强了客户对公司的信任。

宇阳科技(EYANG)公司的发展小趣事

作为电子行业的领军企业之一,宇阳科技始终坚持以创新为驱动的发展战略。公司不断投入研发资金,加强技术团队建设,积极引进先进技术和管理经验。通过持续创新和技术升级,宇阳科技成功推出了多款具有自主知识产权的新型电子元器件产品,并引领了行业潮流。同时,公司还积极参与行业标准制定和技术交流合作等活动,为推动电子行业的发展做出了积极贡献。

以上五个故事梗概概述了宇阳科技在电子行业中的发展历程和主要成就。这些故事不仅展现了公司的技术实力和市场地位,也体现了公司不断创新、追求卓越的发展理念。

BILIN公司的发展小趣事

宇阳科技自2001年成立以来,一直致力于片式多层陶瓷电容器(MLCC)的研发和生产。2002年,公司成功研发出0402 BME微型片式多层陶瓷电容器,并通过了新产品鉴定,填补了国内市场的空白。这一创新不仅彰显了宇阳科技在MLCC领域的技术实力,也为公司赢得了市场的认可,为后续的发展奠定了坚实的基础。

Deutronic Elektronik GmbH公司的发展小趣事

为了进一步提升竞争力,Deutronic Elektronik GmbH开始实施全球化战略。公司在美国和中国设立了子公司,并通过并购等方式加强了在欧洲和亚洲市场的布局。这些举措不仅增强了公司的市场影响力,还为公司带来了更多的资源和优势。通过全球化战略的实施,Deutronic Elektronik GmbH逐渐成为一家具有全球影响力的电子科技企业。

广东华裕(GDHY)公司的发展小趣事

1983年,Deutronic Elektronik GmbH在德国阿德尔科芬成立,当时只是一家专注于电源技术的小公司。创始人凭借对电力电子技术的深刻理解和对市场需求的敏锐洞察,开始了公司的创业之旅。公司初期专注于电源产品的研发和生产,通过技术创新和质量保证,逐渐在行业内建立了良好的声誉。

问答坊 | AI 解惑

选择工控行业的女生应不应该放弃?

当初填报志愿,不知道为什么就报考了这个专业,到了大学班里只有不到1/6的女孩!面临毕业找工作,大部分的单位都会毅然的打出只招男生的要求,看来这确实是一个比较辛苦奔波的行业!我现在还没找到工控专业的工作,有好几次都想放弃。照这样下去我 ...…

查看全部问答>

win32项目如何转为ppc2003?

我这是个xxx.dll,win32平台下已经做好了,想在wince上用 所有的设置都复制过去了,包括预处理器定义   编译能成功,链接的时候却出现一个问题: 无法打开xxx.lib…

查看全部问答>

*.ubi、*.nb*、*.bin有什么区别

如题?哪位高手知道麻烦解释一下…

查看全部问答>

无线上网时收不到短信

使用无线数据卡通过电脑拨号上网时,如果正在打开一个网页且在没有完全打开的情况下发现收不到短信,但是当网页打开完毕后就是正常的,有没有人熟悉这种情况,是正常的还是不正常的,PS域是怎样处理这样的情况的,有没有相关协议明确的说明了这种现 ...…

查看全部问答>

编程器 读写 错误

自制编程器:       用并口的17脚触发计数器产生地址 ,16脚地址清零,14脚存储器oe控制,1脚存储器we控制。程序运行时 输入偶数结果正常,输入奇数结果出错。用fflush 及取消输入子函数 调试无效 。请智者示教 。非常感谢! ...…

查看全部问答>

关于控件图片闪烁, 感谢91program.

自定义控件的背景图片闪烁现象可以用如下办法解决: case WM_ERASEBKGND:    return TRUE; 如果是系统按钮, 我只是换掉系统按钮的背景图, 这种情况下产生的闪烁又该如何处理呢?…

查看全部问答>

触摸键问题请教

请教版主:      今年5月份前做了一个触摸键项目用的是103K3做的,项目已做完效果不错,这两天又有一个新项目要用到触摸键,但现在新建工程文件设置好后编译出现以下错误,不知道是怎么回事??请指教?? #error clnk ...…

查看全部问答>

谈谈大家对TI电源产品的认识

      TI电源产品系列极多,型号更是名目繁多,对于新手想上手却是不容易。所以希望有经验的前辈师傅们多多发表你们的见解和认识,希望能够帮助到后辈。在此,我代表广大青年电子设计爱好者表示感谢!…

查看全部问答>

【低功耗】Xilinx官方低功耗设计资料

Xilinx官网提供了许多低功耗设计的参考资料及其软件,分享到这里方便大家使用!! Xilinx 7 系列 FPGA 功耗评估软件 Xilinx Virtex5_Virtex6系列FPGA功耗评估软件 Xilinx Spartan3A_Spartan6系列FPGA功耗评估软件 Xilinx XPower 估计器用 ...…

查看全部问答>