收藏 分销(赏)

LCD编程PPT学习课件.ppt

上传人:w****g 文档编号:11119961 上传时间:2025-07-02 格式:PPT 页数:53 大小:13.64MB 下载积分:14 金币
下载 相关 举报
LCD编程PPT学习课件.ppt_第1页
第1页 / 共53页
LCD编程PPT学习课件.ppt_第2页
第2页 / 共53页


点击查看更多>>
资源描述
,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,单击此处编辑母版标题样式,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,*,单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,*,STM32F10 x,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,单击此处编辑母版标题样式,*,LCD,,LCM,介绍,LC,M1602,LCM1602,编程步骤,8.1,8.2,8.,3,第八章,LCD,编程,自定义字符 及其 显示方法,8.,4,(,),1,2025/7/2 周三,8,.1,LCD,,LCM,介绍,1、,什么是 LCD、LCM,2、,LCD模块 分类,2,2025/7/2 周三,LCD:Liquid Crystal Display,,液晶显示器,背光:,液晶是一种介于固态与液态之间的物质,本身不能发光,需要借助额外的光源才行。,在液晶显示屏背面,需要有背光。,LCM:Liquid Crystal Display Module,,LCD模块,1、什么是 LCD、LCM:,3,2025/7/2 周三,严格地说,,1602,12864,都应该称为,LCD,模块,4,2025/7/2 周三,2、LCD模块 分类:,段码型,点阵型,段码型显示的产品:例如计算器、电子表,字符点阵型,图形点阵型,字符点阵型的产品:例如LCM1602,图形点阵型的产品:例如LCM12864,5,2025/7/2 周三,段码液晶叫法起源于早期液晶显示屏开始应用之时,主要是替代LED数码管(由7个笔段组成,仅能,显示数字,09),,产品,如计算器、,电子,表等,显示内容均为数字,也较简单。,段码型:,6,2025/7/2 周三,段码式液晶,最普遍的,类似数码管的,“,8,”,字段,一个,“,8,”,字由7个笔段组成,也就是7个液晶像素,。,只能这7个笔段显示,或不显示。,7,2025/7/2 周三,“,米,”,字型 段式液晶,的,“,8,”,字由1,5,个像素组成。,8,2025/7/2 周三,当然段式液晶的笔段可以做成任意形状,只要驱动芯片的驱动能力许可。比如公司的logo,其它图案,文字等等。,段式液晶材料制作,价格低廉。段式液晶的驱动成本也很低廉,9,2025/7/2 周三,字符点阵型 和 图形点阵型产品 的区别:,(i)字符点阵型:,10,2025/7/2 周三,(ii)图形点阵型:,11,2025/7/2 周三,12,2025/7/2 周三,字符点阵型 和 图形点阵型产品 的区别:,(i)字符点阵型:整个屏虽然是由点阵构成。但,整个屏被分成若干个小区域(例如1602:被分成16*2=32个区域),每个小区域显示1个字符,该,小区域,是由很少的点阵来显示,,(,例如1602:,该小区域是由5*7点阵构成,)。,所以,通常,字符(点阵)型只用来显示数字、字母,不用来显示汉字、图形。,但是,若要用字符点阵型,显示汉字、图形也可:处理方法-用2个或更多个小区域来显示汉字、图形。,(ii)图形点阵型:它是由许多等间隔的点,围成的一个大的点阵列构成。例如LCM12864是由128*64个点构成。,13,2025/7/2 周三,8,.,2,LCM1602,1、LCM1602,简介,2、LCM1602,各引脚的定义,3、LCM1602 与 单片机 的,连接图,4、,LC,M1602,控制器,控制时序,5、,LC,M,1602,控制器 指令和状态字,6,、,LCM1602,的,4,种存储器类型,14,2025/7/2 周三,LCM1602为字符型(点阵式),LCD,模块。,字符型液晶显示模块是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。,但是,通过自定义,也可显示简单的汉字和图形。,LCM1602的每一个显示的字符(或字母、数字等)是由,5*7,或,5*11,点阵组成。,每个点阵字符(5*7或5*11点阵)之间有一个间隔,起到字符间距和行间距的作用。,1、LCM1602简介,15,2025/7/2 周三,16,2025/7/2 周三,正面,反面,17,2025/7/2 周三,编 号,符 号,引脚说明,编 号,符 号,引脚说明,1,GND,电源地,9,D2,双向数据口,2,Vcc,电源正极,10,D3,双向数据口,3,V,0,对比度调节,接可调电位器。,直接接地:对比度最高,11,D4,双向数据口,4,RS,数据,/,命令选择,,0:指令,或,状态,1:数据,12,D5,双向数据口,5,R/W,读,/,写选择,,1:读,0:写,13,D6,双向数据口,6,E,模块使能端,,下降沿触发:写数据或指令,1:读,14,D7,双向数据口,7,D0,双向数据口,15,BLA,背光源正极,8,D1,双向数据口,16,BLK,背光源地,2、,LC,M1602各引脚的定义,18,2025/7/2 周三,19,2025/7/2 周三,3、LCM1602 与 单片机 的连接图,(1)LCM1602 与 MCS51单片机 的,连接图,(2)LCM1602 与 STM32单片机 的,连接图,20,2025/7/2 周三,LC,M与,STC89C52,的连接图,如右图所示:,(1)LCM1602 与 MCS51单片机 的连接图,LC,M,1602,有八个数据引脚(,D0,D7,)与,STC89C52,相连,用于接收指令和数据;,STC89C52,通过LCM1602的,RS,,,RW,和,E,这三个端口控制,LC,M模块。,P22,P22,21,2025/7/2 周三,(2)LCM1602 与 STM32单片机 的连接图,原理图,-LCM1602,与,STM32,单片机 的连接图,.ppt,22,2025/7/2 周三,写指令,输入:,RS=L,,,RW=L,,,E=,下降沿脉冲,,,DB0,DB7=,指令码输出:无,读状态,输入:,RS=L,,,RW=H,,,E=H,输出:,DB0,DB7=,状态,写数据,输入:,RS=H,,,RW=L,,,E=,下降沿脉冲,,,DB0,DB7=,数据输出:无,读数据,输入:,RS=H,,,RW=H,,,E=H,输出:,DB0,DB7=,数据,(,从,LCD,读数据,一般无必要,),状态,指令,4、,LC,M1602控制器控制时序:,数据,数据,LCM1602的控制器,,(控制驱动电路,为HD44780/KS0066,),其控制时序如下:,23,2025/7/2 周三,5、,LC,M,1602,控制器指令和状态字,工作方式,设置指令:,DL:,设置数据总线宽度,,一般设置为 1;,DL=1:数据总线宽度为 8 位,即 DB7,DB0 有效;,DL=0:数据总线宽度为 4 位,即 DB7,DB4 有效。,N,:,设置显示,字符的,行数,,,1602 LCD,一般都设置为,1,;,N=0,:为一行字符;,N=1,:为两行字符;,F:,设置,显示,字符的点阵,,一般设置为 0;,F=0,:为,5X7,点阵字符体;,F=1,:为,5X11,点阵字符体;,1,这位,很多的数据参考手册都写错了,24,2025/7/2 周三,显示状态,设置指令:,该指令控制着画面、光标和闪烁的开与关。,D:,画面显示,控制位;D=1 为显示开,D=0 为显示关;该指令仅影响显示屏的开关,并不影响显存中的数据。,C:,光标显示,控制位;C=1 光标显示;C=0 光标不显示。,B:,光标,闪烁,显示,控制位;B=1,光标,闪烁启动;B=0,光标,闪烁关闭;,25,2025/7/2 周三,光标,或,画面,滚动,设置指令:,S/C(Screen/Cursor),:滚动对像的选择,S/C=1,画面滚动,S/C=0,光标滚动,R/L(Right/Left):,滚动方向的选择,R/L=1 向右滚动,R/L=0 向左滚动,S/C R/L 设定情况,0 0 光标左移 1 格,且 AC 值减 1,0 1 光标右移 1 格,且 AC 值加 1,1 0 显示器上画面(即字符和,光标,全部),左移一格,1 1 显示器上画面(即字符和,光标,全部),右移一格,26,2025/7/2 周三,写或读一个字符后,,光标,或,画面,滚动,设置指令:,I/D(Increase/Decrease):I/D=0 当,写或读一个字符后,光标,左,移1格,,AC自动减一;I/D=1 当,写或读一个字符后,光标,右,移1格,,AC自动增一;,S(shift):设置,写或读一个字符后,,是否允许,画面平移,S=1:当写或读一个字符后,,允许,画面,平移,;,S=0:当写或读一个字符后,,画面不动,。,例如,S=1:当写或读一个字符后,整屏显示(I/D=1)左移或者右移(I/D=0)一格。达到光标不移动而屏幕移动的效果。,S=0,:当写或读一个字符后,整屏显示不移动。,当,I/D=1,,,光标,右,移1格,,AC,自动增一,;,当,I/D=0,,,光标,左,移1格,,,AC自动减一,。,27,2025/7/2 周三,清屏,指令:,功能:,清除液晶显示器,即将,DDRAM,的内容全部填入,空白,的,ASCII,码,20H;,光标归位,即将光标撤回液晶显示屏的左上方,;,将地址计数器,(AC),的值设为,0,。,28,2025/7/2 周三,光标归位,指令:,功能:,把光标撤回到显示器的左上方,;,把地址计数器,(AC),的值设置为,0;,保持,DDRAM,的内容不变。,29,2025/7/2 周三,CGRAM,地址设置,指令:,该指令将 6位的 CGRAM 地址写入地址指针计数器 AC 内,,随后的数据操作是对 CGRAM的读/写操作。,注:CGRAM 为用户自定义字符的空间,用来保存用户自定义的字符的字模。不同于显存(DDRAM)。,例如,把自定义的字符的字模,写入,CGRAM,中。,30,2025/7/2 周三,DDRAM,地址设置,指令:,该指令将,7,位的,DDRAM,地址写入地址指针计数器,AC,当中,,随后的数据操作是对,DDRAM,(显存)的读,/,写操作,例如,把,当前所要显示的字符的字符代码,(即该字符的,ASCII,码,,即该字符在,字符库中的,地址码,)写入,DDRAM,。,注意:该指令不是把欲显示的字符的字模写入,DDRAM,中。这点不同于,CGRAM,地址设置指令。欲显示的字符的字模事先已保存在,CGROM,中。,一旦某字符的,ASCII,码写入,DDRAM,,,LCM1602,控制器 就会自动去,CGROM,字模存储器中,查找该字符的字模,在,LCM1602,液晶屏上,显示该字符。,31,2025/7/2 周三,固化在,CGROM,中的字符,和在,CGRAM,中自定义的字符,显示方式都是一样:,首先,光标定位:用,函数,LCD_SetCursor(),光标定位。,其次,,显示字符:,用,函数,LCD_DISP_CHAR(m),显示字符。该函数的,参数:,在字符库中,,当前所要显示的字符的字符代码,(即该字符的,ASCII,码,,即该字符在,字符库中的地址码,),32,2025/7/2 周三,状态查询字,BF,(,Busy Flag,):为状态查询位,代表内部操作是否完成。,1,:忙,代表内部操作,未,完成。,0,:空闲,代表内部操作,已,完成。,AC6,0,:为,7,位的,AC,值,即当前地址指针计数器,AC,的值。,33,2025/7/2 周三,34,2025/7/2 周三,6,、,LCM1602,的,4,种存储器类型,在,LCM1602,中,包括,4,种类型的存储器:,DDRAM,、,CGROM,、,CGRAM,、字模存储器。,1,、,DDRAM,显示数据,RAM,2,、,CGROM,用于保存已固化好的字模库,3,、,CGRAM,用于保存自定义的字模库,4,、字模存储器,是由,CGROM,和,CGRAM,构成,固化了,192,个常用字符的字模,35,2025/7/2 周三,36,2025/7/2 周三,3,、,LCD,初始化,5,、,设置光标位置,显示字符,4,、,LCD,清屏,8.,3,LCM1602,编程步骤,1,、,加入头文件,2,、,使能,使用到的,外设对应的时钟,37,2025/7/2 周三,1,、加入头文件,#include stm32f10 x_lib.h,/,若使用,RCC_Configuration();,使能,GPIO,外设对应的时钟,还必须加入以下头文件。,/,若使用具体的使能外设命令(例如,,RCC_APB2PeriphClockCmd(),等),则不需要加入以下命令。,#include HelloRobot.h,38,2025/7/2 周三,#include,“,LCD.h,/,该头文件的作用,:对,main(),函数中使用的函数,进行声明。,声明,本文件要用到的,其它文件中的函数。(省略了,extern,),实际可以直接在,main,函数之前,声明这些函数,以代替本头文件。,声明,调用,/,以上这些函数在,LCD.C,中定义,39,2025/7/2 周三,2,、,使能,使用到的,外设对应的,时钟,RCC_APB2PeriphClockCmd,(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);,在LCD_Init(),函数中,只定义了外设的结构体变量,没有对外设的时钟使能,必须在这里,补加 对外设的时钟使能。,40,2025/7/2 周三,void LCD_Init(void),GPIO_InitTypeDef GPIO_InitStructure;,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_7;,GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_,Out,_PP;,GPIO_Init(GPIOA,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;,GPIO_Init(GPIOB,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;,GPIO_Init(GPIOA,for(i=0;i100000;i+);,LCD_SET_IRS();/,选择输出:命令 给,LCD,LCD_WRITE();/,使,74HC595,的,OE,脚,为,0,:,74595,并行输出数据,;,同时,LCM1602,写控制端:,0,写,LCM1602,有效,for(i=0;i100;i+);,LCD_INPUT(0 x38);/,设置显示模式:,8,位数据宽度,,2,行显示,,5*7,点阵,LCD_INPUT(0 x0E);/,开显示,显示光标,LCD_INPUT(0 x06);/,光标移动的设置:在写入或读出一个字符后,光标加,1,右移,并且地址指针加,1,定义结构体变量,对,GPIO,参数,进行设置,写,LCM1602,控制器指令,设置其工作方式,41,2025/7/2 周三,LCD_Init(),功能,:,GPIO,端口参数设置,写,LCM1602,控制器指令,设置其工作方式,42,2025/7/2 周三,3,、,LCD,初始化:,使用函数,LCD_Init(),设置与,LCD,相连的,STM32,管脚,初始化,LCD,模块,初始化过程包括以下2方面:,43,2025/7/2 周三,void LCD_Init(void),GPIO_InitTypeDef GPIO_InitStructure;,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_7;,GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_,Out,_PP;,GPIO_Init(GPIOA,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10|GPIO_Pin_11|GPIO_Pin_12;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;,GPIO_Init(GPIOB,GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;,GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;,GPIO_Init(GPIOA,for(i=0;i100000;i+);,LCD_SET_IRS();/,选择输出:命令 给,LCD,LCD_WRITE();/,使,74HC595,的,OE,脚,为,0,:,74595,并行输出数据,;,同时,LCM1602,写控制端:,0,写,LCM1602,有效,for(i=0;i100;i+);,LCD_INPUT(0 x38);/,设置显示模式:,8,位数据宽度,,2,行显示,,5*7,点阵,LCD_INPUT(0 x0E);/,开显示,显示光标,LCD_INPUT(0 x06);/,光标移动的设置:在写入或读出一个字符后,光标加,1,右移,并且地址指针加,1,设置与,LCD,相连的,STM32,管脚,初始化,LCD,模块,44,2025/7/2 周三,!详细注释:,LCD_Init(),函数,.doc,45,2025/7/2 周三,4,、,LCD,清屏,【法一】使用函数 LCD_Clr(),【法二】使用函数 LCD_CMD(0 x01),46,2025/7/2 周三,void LCD_Clr(void),unsigned char i;,LCD_SetCursor(,0 x00,);,for(i=0;iLCD_MAX_Col;i+),LCD_DISP_CHAR(,);,LCD_SetCursor(,0 x40,);,for(i=0;iLCD_MAX_Col;i+),LCD_DISP_CHAR(,);,【法一】使用函数 LCD_Clr(),47,2025/7/2 周三,【法二】使用函数 LCD_CMD(,0 x01,),void LCD_CMD(unsigned char ch),int i;,LCD_SET_,I,RS();,for(i=0;i100;i+);/延时,LCD_INPUT(ch);,在长沙太阳人电子有限公司的,“,1602液晶说明.pdf,”,P3,设置数据总线上,传送的是指令,48,2025/7/2 周三,LCD_SET_,I,RS();,设置数据总线上,传送的是指令,LCD_SET_,D,RS();,设置数据总线上,传送的是数据,49,2025/7/2 周三,(,1,),设置光标位置,:使用函数,LCD_SetCursor(),5,、,设置光标位置,显示字符,1602LCM,:可显示,2,行,每行,16,个字符。,第,1,行,16,个字符的地址,每个字符对应的地址:,第,2,行,16,个字符的地址,例,1,,把光标定位在第,1,行第,1,个字符的位置:,LCD_SetCursor(0 x00);,例,2,,把光标定位在第,2,行第,1,个字符的位置:,LCD_SetCursor(0 x40);,50,2025/7/2 周三,函数,LCD_SetCursor(),:,既实现了光标定位,又实现了,DDRAM,的地址设定。,51,2025/7/2 周三,(,2,),显示字符,:使用函数,LCD_DISP_CHAR(),该函数的,参数:,单个,字符常量,(即用,单引号,括起的,一个字符),或,单个,字符的,ASCII码,例如,,LCD_SetCursor(0 x40);,LCD_DISP_CHAR(2);/在LCD1602第2行,显示2,LCD_DISP_CHAR(0 x32);/在LCD1602第2行,显示2,52,2025/7/2 周三,LCD,,LCM,介绍,LC,M1602,LCM1602,编程步骤,8.1,8.2,8.,3,第八章,LCD,编程,自定义字符 及其 显示方法,8.,4,(,),53,2025/7/2 周三,
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服