第八章-LCD编程课件.ppt

上传人(卖家):ziliao2023 文档编号:6016710 上传时间:2023-05-22 格式:PPT 页数:53 大小:13.04MB
下载 相关 举报
第八章-LCD编程课件.ppt_第1页
第1页 / 共53页
第八章-LCD编程课件.ppt_第2页
第2页 / 共53页
第八章-LCD编程课件.ppt_第3页
第3页 / 共53页
第八章-LCD编程课件.ppt_第4页
第4页 / 共53页
第八章-LCD编程课件.ppt_第5页
第5页 / 共53页
点击查看更多>>
资源描述

1、LCD,LCM 介绍介绍LCM1602LCM1602 编程步骤编程步骤8.1 8.28.3第八章 LCD 编程自定义字符自定义字符 及其及其 显示方法显示方法8.4()8 8.1.1 LCDLCD,LCM LCM 介绍介绍1、什么是 LCD、LCM2、LCD模块 分类STM32F10 xLCD:Liquid Crystal Display,液晶显示器背光:液晶是一种介于固态与液态之间的物质,本身不能发光,需要借助额外的光源才行。在液晶显示屏背面,需要有背光。LCM:Liquid Crystal Display Module,LCD模块1、什么是 LCD、LCM:v严格地说,1602,12864

2、都应该称为 LCD模块STM32F10 x2、LCD模块 分类:段码型点阵型段码型显示的产品:例如计算器、电子表字符点阵型图形点阵型字符点阵型的产品:例如LCM1602图形点阵型的产品:例如LCM12864STM32F10 x段码液晶叫法起源于早期液晶显示屏开始应用之时,主要是替代LED数码管(由7个笔段组成,仅能显示数字09),产品如计算器、电子表等,显示内容均为数字,也较简单。段码型:STM32F10 x 段码式液晶,最普遍的,类似数码管的“8”字段,一个“8”字由7个笔段组成,也就是7个液晶像素。只能这7个笔段显示,或不显示。STM32F10 x “米”字型 段式液晶的“8”字由15个像

3、素组成。STM32F10 x 当然段式液晶的笔段可以做成任意形状,只要驱动芯片的驱动能力许可。比如公司的logo,其它图案,文字等等。段式液晶材料制作,价格低廉。段式液晶的驱动成本也很低廉STM32F10 x字符点阵型 和 图形点阵型产品 的区别:(i)字符点阵型:STM32F10 x(ii)图形点阵型:STM32F10 xSTM32F10 x字符点阵型 和 图形点阵型产品 的区别:(i)字符点阵型:整个屏虽然是由点阵构成。但整个屏被分成若干个小区域(例如1602:被分成16*2=32个区域),每个小区域显示1个字符,该小区域是由很少的点阵来显示,(例如1602:该小区域是由5*7点阵构成)。

4、所以,通常字符(点阵)型只用来显示数字、字母,不用来显示汉字、图形。但是,若要用字符点阵型,显示汉字、图形也可:处理方法-用2个或更多个小区域来显示汉字、图形。(ii)图形点阵型:它是由许多等间隔的点,围成的一个大的点阵列构成。例如LCM12864是由128*64个点构成。8 8.2 2 LCM1602LCM1602 1、LCM1602简介2、LCM1602各引脚的定义3、LCM1602 与 单片机 的连接图4、LCM1602控制器 控制时序5、LCM1602控制器 指令和状态字6、LCM1602的4种存储器类型STM32F10 xn LCM1602为字符型(点阵式)LCD模块。n字符型液晶显

5、示模块是一种专门用于显示字母、数字、符号等的点阵式液晶显示模块。n但是,通过自定义,也可显示简单的汉字和图形。nLCM1602的每一个显示的字符(或字母、数字等)是由5*7或5*11点阵组成。n每个点阵字符(5*7或5*11点阵)之间有一个间隔,起到字符间距和行间距的作用。1、LCM1602简介STM32F10 xSTM32F10 x正面反面STM32F10 x2、LCM1602各引脚的定义STM32F10 xSTM32F10 x3、LCM1602 与 单片机 的连接图(1)LCM1602 与 MCS51单片机 的连接图(2)LCM1602 与 STM32单片机 的连接图STM32F10 xn

6、LCM与STC89C52的连接图,如右图所示:(1)LCM1602 与 MCS51单片机 的连接图lLCM1602有八个数据引脚(D0D7)与STC89C52相连,用于接收指令和数据;lSTC89C52通过LCM1602的RS,RW和E这三个端口控制LCM模块。P22P22STM32F10 x(2)LCM1602 与 STM32单片机 的连接图原理图-LCM1602 与 STM32单片机 的连接图.pptSTM32F10 xn写指令 输入:RS=L,RW=L,E=下降沿脉冲,DB0DB7=指令码输出:无n读状态 输入:RS=L,RW=H,E=H输出:DB0DB7=状态n写数据 输入:RS=H,

7、RW=L,E=下降沿脉冲,DB0DB7=数据输出:无n读数据 输入:RS=H,RW=H,E=H输出:DB0DB7=数据(从LCD读数据,一般无必要)状态状态指令指令4 4、LCM1602LCM1602控制器控制时序:控制器控制时序:数据数据数据数据LCM1602的控制器,(控制驱动电路为HD44780/KS0066),其控制时序如下:STM32F10 x5 5、LCLCM M16021602控制器指令和状态字控制器指令和状态字工作方式工作方式设置指令:设置指令:DL:设置数据总线宽度,一般设置为 1;DL=1:数据总线宽度为 8 位,即 DB7DB0 有效;DL=0:数据总线宽度为 4 位,即

8、 DB7DB4 有效。N:设置显示字符的行数,1602 LCD一般都设置为 1;N=0:为一行字符;N=1:为两行字符;F:设置显示字符的点阵,一般设置为 0;F=0:为 5X7点阵字符体;F=1:为 5X11 点阵字符体;1这位,很多的数据参考手册都写错了STM32F10 x显示状态显示状态设置指令:设置指令:该指令控制着画面、光标和闪烁的开与关。D:画面显示控制位;D=1 为显示开,D=0 为显示关;该指令仅影响显示屏的开关,并不影响显存中的数据。C:光标显示控制位;C=1 光标显示;C=0 光标不显示。B:光标闪烁闪烁显示控制位;B=1 光标闪烁启动;B=0 光标闪烁关闭;STM32F1

9、0 x光标光标或或画面画面滚动滚动设置指令:设置指令:S/C(Screen/Cursor):滚动对像的选择 S/C=1 画面滚动 S/C=0 光标滚动R/LR/L(Right/LeftRight/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 显示器上画面(即字符和光标全部)右移一格STM32F10 x写或读一个字符后,写或读一个字符后,光标光标或或画面画面滚动滚动设置指令设置指令:I/DI/D(I

10、ncrease/DecreaseIncrease/Decrease):I/D=0 I/D=0 当当写或读一个字符后,光标写或读一个字符后,光标左左移移1 1格格,ACAC自动减一;自动减一;I I/D=1 D=1 当当写或读一个字符后,光标写或读一个字符后,光标右右移移1 1格格,ACAC自动增一;自动增一;S S(shiftshift):设置):设置写或读一个字符后写或读一个字符后,是否允许,是否允许画面平移画面平移S=1S=1:当写或读一个字符后,:当写或读一个字符后,允许允许画面画面平移平移;S=0S=0:当写或读一个字符后,:当写或读一个字符后,画面不动画面不动。例如,S=1:当写或读

11、一个字符后,整屏显示(I/D=1)左移或者右移(I/D=0)一格。达到光标不移动而屏幕移动的效果。S=0S=0:当写或读一个字符后,整屏显示不移动。当当I/D=1I/D=1,光标光标右右移移1 1格格,ACAC自动增一自动增一;当当I/D=0I/D=0,光标光标左左移移1 1格,格,ACAC自动减一自动减一。STM32F10 x清屏清屏指令:指令:功能:清除液晶显示器,即将 DDRAM 的内容全部填入空白的 ASCII 码 20H;光标归位,即将光标撤回液晶显示屏的左上方;将地址计数器(AC)的值设为 0。STM32F10 x光标归位光标归位指令:指令:功能:把光标撤回到显示器的左上方;把地址

12、计数器(AC)的值设置为 0;保持 DDRAM 的内容不变。STM32F10 xCGRAMCGRAM 地址设置地址设置指令指令:该指令将 6位的 CGRAM 地址写入地址指针计数器 AC 内,随后的数据操作是对 CGRAM的读/写操作。注:CGRAM 为用户自定义字符的空间,用来保存用户自定义的字符的字模。不同于显存(DDRAM)。例如,把自定义的字符的字模,写入CGRAM中。STM32F10 xDDRAMDDRAM 地址设置地址设置指令:指令:该指令将 7位的 DDRAM 地址写入地址指针计数器 AC 当中,随后的数据操作是对 DDRAM(显存)的读/写操作例如,把当前所要显示的字符的字符代

13、码(即该字符的ASCII码,即该字符在字符库中的字符库中的地址码地址码)写入DDRAM。注意:该指令不是把欲显示的字符的字模写入DDRAM中。这点不同于CGRAM 地址设置指令。欲显示的字符的字模事先已保存在CGROM中。一旦某字符的ASCII码写入DDRAM,LCM1602控制器 就会自动去CGROM字模存储器中,查找该字符的字模,在LCM1602液晶屏上,显示该字符。STM32F10 x固化在CGROM中的字符,和在CGRAM中自定义的字符,显示方式都是一样:首先,光标定位:用函数函数LCD_SetCursor()光标定位。其次,显示字符:用函数函数LCD_DISP_CHAR(m)显示字符

14、。该函数的参数:参数:在字符库中,当前所要显示的字符的字符代码(即该字符的ASCII码,即该字符在字符库中的地址码字符库中的地址码)STM32F10 x状态查询字状态查询字BFBF(Busy FlagBusy Flag):为状态查询位,代表内部操作是否完成。):为状态查询位,代表内部操作是否完成。1 1:忙,代表内部操作忙,代表内部操作未未完成。完成。0 0:空闲,代表内部操作:空闲,代表内部操作已已完成。完成。AC6AC60 0:为:为7 7位的位的 AC AC 值,即当前地址指针计数器值,即当前地址指针计数器ACAC的值。的值。STM32F10 xSTM32F10 x6、LCM1602的4

15、种存储器类型在LCM1602中,包括4种类型的存储器:DDRAM、CGROM、CGRAM、字模存储器。1、DDRAM 显示数据RAM2、CGROM 用于保存已固化好的字模库3、CGRAM 用于保存自定义的字模库4、字模存储器 是由CGROM和CGRAM构成固化了192 个常用字符的字模 STM32F10 x3、LCD初始化初始化5、设置光标位置,显示字符设置光标位置,显示字符4、LCD清屏清屏8.8.3 3 LCM1602 LCM1602 编程步骤编程步骤1、加入头文件、加入头文件2、使能、使能使用到的使用到的外设对应的时钟外设对应的时钟STM32F10 x1、加入头文件、加入头文件#incl

16、ude stm32f10 x_lib.h/若使用RCC_Configuration();使能GPIO外设对应的时钟,还必须加入以下头文件。/若使用具体的使能外设命令(例如,RCC_APB2PeriphClockCmd()等),则不需要加入以下命令。#include HelloRobot.hSTM32F10 x#include“LCD.h/该头文件的作用:对main()函数中使用的函数,进行声明。声明,本文件要用到的,其它文件中的函数。(省略了extern)实际可以直接在main函数之前,声明这些函数,以代替本头文件。声明声明调用调用/以上这些函数在LCD.C中定义STM32F10 x2、使能使

17、能使用到的使用到的外设对应的外设对应的时钟时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_GPIOB,ENABLE);在LCD_Init()函数中,只定义了外设的结构体变量,没有对外设的时钟使能,必须在这里,补加 对外设的时钟使能。void LCD_Init(void)GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_7;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_

18、50MHz;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);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_InitStructure.GPIO_Pin=GPIO_Pin_2;GPIO_InitStructure.GPIO_M

19、ode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);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);/光标移动的设置:在写入或读出一个字符后,光

20、标加1右移,并且地址指针加1定义结构体变量对GPIO参数,进行设置写写LCM1602LCM1602控制器指令,控制器指令,设置其工作方式设置其工作方式STM32F10 xLCD_Init()功能:GPIO端口参数设置,写LCM1602控制器指令,设置其工作方式STM32F10 x3、LCD初始化初始化:使用函数LCD_Init()设置与LCD相连的 STM32管脚初始化LCD模块初始化过程包括以下初始化过程包括以下2 2方面:方面:void LCD_Init(void)GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Pin

21、=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_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);

22、GPIO_InitStructure.GPIO_Pin=GPIO_Pin_2;GPIO_InitStructure.GPIO_Mode=GPIO_Mode_Out_PP;GPIO_Init(GPIOA,&GPIO_InitStructure);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点阵 LC

23、D_INPUT(0 x0E);/开显示,显示光标 LCD_INPUT(0 x06);/光标移动的设置:在写入或读出一个字符后,光标加1右移,并且地址指针加1设置与LCD相连的 STM32管脚初始化LCD模块STM32F10 x!详细注释:!详细注释:LCD_Init()LCD_Init()函数函数.doc.docSTM32F10 x4、LCD清屏清屏【法一】使用函数 LCD_Clr()【法二】使用函数 LCD_CMD(0 x01)STM32F10 xvoid LCD_Clr(void)unsigned char i;LCD_SetCursor(0 x00);for(i=0;iLCD_MAX_C

24、ol;i+)LCD_DISP_CHAR();LCD_SetCursor(0 x40);for(i=0;iLCD_MAX_Col;i+)LCD_DISP_CHAR();【法一】使用函数 LCD_Clr()STM32F10 x【法二】使用函数 LCD_CMD(0 x01)void LCD_CMD(unsigned char ch)int i;LCD_SET_IRS();for(i=0;i100;i+);/延时 LCD_INPUT(ch);在长沙太阳人电子有限公司的“1602液晶说明.pdf”P3设置数据总线上,传送的是指令设置数据总线上,传送的是指令STM32F10 xLCD_SET_IRS();

25、设置数据总线上,传送的是指令设置数据总线上,传送的是指令LCD_SET_DRS();设置数据总线上,传送的是数据设置数据总线上,传送的是数据STM32F10 x(1)设置光标位置设置光标位置:使用函数:使用函数LCD_SetCursor()5、设置光标位置,显示字符设置光标位置,显示字符 1602LCM1602LCM:可显示:可显示2 2行,每行行,每行1616个字符。个字符。第第1 1行行1616个字符的地址个字符的地址每个字符对应的地址:每个字符对应的地址:第第2 2行行1616个字符的地址个字符的地址例1,把光标定位在第1行第1个字符的位置:LCD_SetCursor(0 x00);例2

26、,把光标定位在第2行第1个字符的位置:LCD_SetCursor(0 x40);STM32F10 x函数函数LCD_SetCursor():既实现了光标定位,又实现了DDRAM的地址设定。STM32F10 x(2)显示字符显示字符:使用函数:使用函数LCD_DISP_CHAR()该函数的该函数的参数:参数:单个单个字符常量字符常量(即用(即用单引号单引号括起的括起的一个字符)一个字符)或或 单个单个字符的字符的ASCIIASCII码码例如,LCD_SetCursor(0 x40);LCD_DISP_CHAR(2);/在LCD1602第2行,显示2 LCD_DISP_CHAR(0 x32);/在LCD1602第2行,显示2 LCD,LCM 介绍介绍LCM1602LCM1602 编程步骤编程步骤8.1 8.28.3第八章 LCD 编程自定义字符自定义字符 及其及其 显示方法显示方法8.4()

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公、行业 > 各类PPT课件(模板)
版权提示 | 免责声明

1,本文(第八章-LCD编程课件.ppt)为本站会员(ziliao2023)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|