单片机lcd接口控制实例(c语言的)

展示一下lcd的各种不同的显示控制,讲解求详细不好意思,我用的是这样结构的lcd,2行X16列... 展示一下lcd的各种不同的显示控制,讲解求详细
不好意思,我用的是这样结构的lcd,2行X16列
展开
 我来答
zhatianyi
2011-01-31 · TA获得超过323个赞
知道小有建树答主
回答量:99
采纳率:0%
帮助的人:110万
展开全部

典型的128×64LCD显示模块(串行,见电路图)

驱动函数:

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

函数名:LCD12864底层驱动程序(串行接口)

调  用:lcm_w_byte();

参  数:要发送的字节数据

返回值:无

结  果:发送一个字节给LCM

备  注:

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

//发送一个字节(底层函数)

void lcm_w_byte(unsigned char bbyte) {

 unsigned char i;

  for(i=0;i<8;i++){

     SID=bbyte&0x80; //取出最高位

   SCLK=1;

     SCLK=0;

     bbyte<<=1; //左移

    }  

}

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

函数名:写指令或数据函数

调  用:lcm_w_test(?,?);

参  数:(位,字节);位:0指令,1数据;

返回值:无

结  果:

备  注:

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

void lcm_w_test(bit start, unsigned char ddata) {

 unsigned char start_data,Hdata,Ldata;

   if(start==0){

  start_data=0xf8;  //0:写指令

    }else{    

     start_data=0xfa;  //1:写数据

 }

   Hdata=ddata&0xf0;    //取高四位

   Ldata=(ddata<<4)&0xf0;  //取低四位

   lcm_w_byte(start_data);   //发送起始信号

   DELAY_MS(1); //延时是必须的

   lcm_w_byte(Hdata);       //发送高四位

   DELAY_MS(1);  //延时是必须的

   lcm_w_byte(Ldata);    //发送低四位

   DELAY_MS(1);  //延时是必须的

}

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

//清屏函数

void lcm_clr(void){

 lcm_w_test(0,0x01);

 DELAY_MS(20); //启动等待,等LCM讲入工作状态

}

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

//向LCM发送一个字符串,长度64字符之内。

//应用:lcm_w_word("您好!"); 

void lcm_w_word(unsigned char *str){

  while(*str != '\0'){

   lcm_w_test(1,*str++);

        } *str = 0;

}

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

//初始化LCM

void lcm_init(void)  {

 DELAY_MS(200); //启动等待,等LCM讲入工作状态

   lcm_w_test(0,0x30);  //8 位介面,基本指令集

   lcm_w_test(0,0x0c);  //显示打开,光标关,反白关

   lcm_w_test(0,0x01);  //清屏,将DDRAM的地址计数器归零 

 DELAY_MS(200); //启动等待,等LCM讲入工作状态

}

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

使用以上驱动函数后,即可这样用几条命令简单控制

 lcm_init();//初始化液晶显示器

         lcm_clr();//清屏

 lcm_w_word(" 要显示的文字");//

                CH_H();//渐亮

 DELAY_MS(1000); //显示等留3秒

 CH_L();//渐暗

意法半导体(中国)投资有限公司
2023-06-12 广告
STM32是一种32位的微控制器,由意法半导体(STMicroelectronics)公司设计和生产。STM32是一种非常常见的嵌入式系统芯片,广泛应用于物联网、汽车、工业控制、医疗设备等领域。STM32具有以下特点:1. 体积小巧:STM... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
甜甜JaT
2011-02-10 · TA获得超过640个赞
知道小有建树答主
回答量:102
采纳率:0%
帮助的人:81.1万
展开全部
这是很常规的1602LCD,你只要向你的供应商要技术1602电子文档,上面什么都有!
以下是一点简单的介绍:
指令表
指令名称 指 令 码
RS R/W DB7 DB6 DB5 DB4 DB3 DB2 DB1 说 明 执行周期
FCP=250KH2
清 屏 L L L L L L L L L H 清除屏幕,置AC为零 1.64ms
返 回 L L L L L L L L H 设DDRAM地址为零,显示
回原位,DDRAMM内容不变 1.64ms
输入方式设置 L L L L L L L H I/D S 设光标移动方向并指定整体
显示是否移动 40us
显示开关控制 L L L L L L L H D C B 调整体显示开关(D),光标
开关(C)及光标位的字符闪
耀(B) 40us
移 位 L L L L L H S/C R/L 移动光标或整体显示,同时
不改变DD RAM 内容 40us
功能设置 L L L L H DL N F 投接口数据位数(DL)显示
行数(L)及字形(F) 40us
CG RAM地址
设置 L L L H ACG 设CG RAM地址,设置后DD
RAM数据被发送和接收 40us
DD RAM
地址设置 L L H ADD 设DD RAM地址,设置后DD
RAM数据被发送和接收 40us
读忙信号(BF)
及地址高数器 L H BL AC 读忙信号位(BF)判断内部
操作正在执行并读地址计数
器内容 0us
写数据CG/DD
RAM H L 写数据 写数据到CG或DD RAM 40us
Tadd=6ns
读 数 据 由
CG/DD RAM H H 读数据 写数据到CG或DD RAM 40us
Tadd=6ns
I/D 1:增量方式,0:减量方式
S 1:移位
S/C1:显示移位,0:光标移位
R/L1:右移,0:左移
D L1:8位,0:4位
N 1:2行,0:1行
F 1:5×10。0:5×7 DD RAM显示数据RAM
CG RAM 字符生成RAM
AC:用于DD和CG RAM
地址的地址计数器 执行周期随主频而改变
例如:当fcp或Fosc为270KH2
40us×250/270
BF 1:内部操作,0:接收指令
RS :寄存器选择
R/W :读/写 =37us

初始化方法
用户所编的显示程序,开始必须进行初始化,否则模块无法正常显示,下而介绍两种初始化方法:
5.5.1 利用内部复位电路进行初始化
如果电路电源能满足图5.2a所示的条件的话,就可行初始化,下面指令是在初始化进程中执行的。
(1) 清屏(DISPLAY CLEAR);
(2) 功能设置(FUNCTION SET)
DL=1:8Bin接口数据
N=0:1行显示;F=0:5×7dot字形;
(3) 显示开/关控制(Display ON/OFF Conrtol)
D=0:显示关;C=0:光标关;B=0:消隐关
(4) 输入方式设置(ENTRY MODE SET)
I/D=1:(增量);S=0:无移位;
希望能对你有点帮助!
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式