KL25-ch8((GPIO应用—键盘、LED与LCD))_第1页
KL25-ch8((GPIO应用—键盘、LED与LCD))_第2页
KL25-ch8((GPIO应用—键盘、LED与LCD))_第3页
KL25-ch8((GPIO应用—键盘、LED与LCD))_第4页
KL25-ch8((GPIO应用—键盘、LED与LCD))_第5页
已阅读5页,还剩23页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、1第第8章章 GPIO应用应用键盘、键盘、LED与与LCD 8.1 键盘模块概论与驱动构件设计键盘模块概论与驱动构件设计 8.2 LED模块概论与驱动构件设计模块概论与驱动构件设计 8.3 LCD模块概论与驱动构件设计模块概论与驱动构件设计 8.4 LED、LCD键盘驱动构件测试实例键盘驱动构件测试实例 8.5 本章小结本章小结28.1 键盘模块概论与驱动构件设计键盘模块概论与驱动构件设计8.1.1 键盘模型及接口键盘模型及接口1、键盘模型、键盘模型键盘是由若干个按键组成的开关矩阵,它是最简单的键盘是由若干个按键组成的开关矩阵,它是最简单的MCU数字量输入设备。操作员通过键盘输入数据或命数字量

2、输入设备。操作员通过键盘输入数据或命令,实现简单的人机通信。令,实现简单的人机通信。 32、键盘接口方式、键盘接口方式(1)键盘排布:独立方式、矩阵方式)键盘排布:独立方式、矩阵方式(2)读入键值:直读方式、扫描方式)读入键值:直读方式、扫描方式(3)是否进行硬件编码:非编码方式、硬件编码方式)是否进行硬件编码:非编码方式、硬件编码方式(4)微处理器响应:中断方式、查询方式)微处理器响应:中断方式、查询方式 下面,介绍独立和矩阵的键盘接口方式下面,介绍独立和矩阵的键盘接口方式 48.1.2 键盘编程基本问题及键盘扫描编码原理键盘编程基本问题及键盘扫描编码原理1、键盘编程的基本问题、键盘编程的基

3、本问题 1)键的识别)键的识别如何知道键盘上哪个键被按下就是键的识别问题。若识如何知道键盘上哪个键被按下就是键的识别问题。若识别由专用硬件实现,称为编码键盘;而靠软件实现的别由专用硬件实现,称为编码键盘;而靠软件实现的称为未编码键盘。识别是否有键被按下,主要有查询称为未编码键盘。识别是否有键被按下,主要有查询法、定时扫描法与中断法等,而要识别键盘上哪个键法、定时扫描法与中断法等,而要识别键盘上哪个键被按下主要有行扫描法与行反转法。被按下主要有行扫描法与行反转法。2)抖动问题)抖动问题当按键被按下时,会出现所按的键在闭合位置和断开位当按键被按下时,会出现所按的键在闭合位置和断开位置之间跳几下,才

4、稳定到闭合状态的情况,当释放一置之间跳几下,才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。在个按键时也会出现类似的情况,这就是抖动问题。在软件上,解决抖动的方法通常是延迟等待抖动的消失软件上,解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。或多次识别判定。 5 3)重键问题)重键问题所谓重键问题就是有两个及两个以上按键同时处于闭合所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。锁法与巡回法。2、键盘扫描编程原理、键盘扫描编程原理下面以下面以44键盘为例说

5、明按键识别的基本编程原理。键盘为例说明按键识别的基本编程原理。44的键盘结构如下图所示,图中列线的键盘结构如下图所示,图中列线(n1n4)通过电通过电阻接阻接+5V,当键盘上没有键闭合时,所有的行线和列线,当键盘上没有键闭合时,所有的行线和列线断开,列线断开,列线n1n4都呈高电平。当键盘上某一个键闭都呈高电平。当键盘上某一个键闭合时,则该键所对应的行线与列线短路。例如第合时,则该键所对应的行线与列线短路。例如第2排第排第3个按键被按下闭合时,行线个按键被按下闭合时,行线m2和列线和列线n3短路,此时短路,此时n3线上的电平由线上的电平由m2的电位所决定。那么如何确定键盘的电位所决定。那么如何

6、确定键盘上哪个按键被按下呢?可以把列线上哪个按键被按下呢?可以把列线n1n4接到接到MCU的的输入口,行线输入口,行线m1m4接到接到MCU的输出口,则在微机的输出口,则在微机的控制下,使行线的控制下,使行线m1为低电平为低电平(0),其余三根行线,其余三根行线m2、 m3、m4都为高电平,并读列线都为高电平,并读列线n1n4状态。如果状态。如果n1n4都为高电平,则都为高电平,则m1这这 6一行上没有键闭合,如果读出列线一行上没有键闭合,如果读出列线n1n4的状态不全为的状态不全为高电平,那么为低电平的列线和高电平,那么为低电平的列线和m1相交的键处于闭合相交的键处于闭合状态;如果状态;如果

7、m1这一行上没有键闭合,接着使行线这一行上没有键闭合,接着使行线m2为为低电平,其余行线为高电平,用同样方法检查低电平,其余行线为高电平,用同样方法检查m2这一这一行上有无键闭合;以此类推,最后使行线行上有无键闭合;以此类推,最后使行线m4为低电平,为低电平,其余的行线为高电平,检查其余的行线为高电平,检查m4这一行上是否有键闭合。这一行上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。如图所示:次扫描。如图所示: 78.1.3 键盘构件设计键盘构件设计1、键盘定义表、键盘定义表2、KB构件函数构件函数 88.2 LED模块概论

8、与驱动构件设计模块概论与驱动构件设计8.2.1 LED基础知识基础知识在此之前,我们先了解几个问题:在此之前,我们先了解几个问题: 1.所用所用LED是几段,共阴极还是共阳极?是几段,共阴极还是共阳极? 2.所选所选LED的电气参数怎样?如额定功率、额定电流是的电气参数怎样?如额定功率、额定电流是多少?多少?9下图所示一个四连排的共阴极数码管,它们的位段下图所示一个四连排的共阴极数码管,它们的位段信号端(称为数据端)接在一起,可以由信号端(称为数据端)接在一起,可以由MCU的一个的一个8位端口控制,同时还有位端口控制,同时还有4个位选信号(称为控制端),用个位选信号(称为控制端),用于分别选中

9、要显示数据的数码管,可用于分别选中要显示数据的数码管,可用MCU另一个端口另一个端口的的4个引脚来控制。个引脚来控制。 108.2.2 LED构件设计构件设计以下给出以下给出 KL25对上述对上述4连排连排 LED 的的C 语言构件实例。语言构件实例。LED的数据线接的数据线接PORTB0、PORTB1、PORTB2、PORTB3、PORTB8、PORTB9、PORTB10、PORTB11,位选口接,位选口接PORTB16、PORTB17、PORTB18、PORTB19,具体连接见下图。,具体连接见下图。118.3 LCD模块概论与驱动构件设计模块概论与驱动构件设计8.3.1 LCD的特点和分

10、类的特点和分类 1、LCD的特点的特点LCD作为电子信息产品的主要显示器件,相对于其它类作为电子信息产品的主要显示器件,相对于其它类型的显示部件来说,有其自身的特点,概要如下型的显示部件来说,有其自身的特点,概要如下:(1)低电压微功耗低电压微功耗(2)平板型结构平板型结构(3)使用寿命长使用寿命长(4)被动显示被动显示(5)显示信息量大且易于彩色化显示信息量大且易于彩色化(6)无电磁辐射无电磁辐射 122、LCD的分类的分类(1)按光电效应分为:电场效应类、电流效应类、)按光电效应分为:电场效应类、电流效应类、电热写入效应类和热效应类。电热写入效应类和热效应类。(2)按显示内容分为:)按显示

11、内容分为:LCD可分为字段型可分为字段型(或称为或称为笔划型笔划型)、点阵字符型、点阵图形型三种。、点阵字符型、点阵图形型三种。(3)按)按LCD的采光方式分为:带背光源与不带背的采光方式分为:带背光源与不带背光源两大类。光源两大类。 138.3.2 点阵字符型液晶显示模块点阵字符型液晶显示模块1.液晶显示屏是以若干液晶显示屏是以若干58或或511点阵块组成的显点阵块组成的显示字符群。示字符群。2.主控制电路为主控制电路为HD44780(HITACHI)及其它公司的及其它公司的兼容电路。兼容电路。3.内部具有字符发生器,可显示内部具有字符发生器,可显示192种字符。种字符。4.具有具有64字节

12、的自定义字符字节的自定义字符RAM,可以定义,可以定义8个个58点阵字符或点阵字符或4个个511点阵字符。点阵字符。5.具有具有64字节的数据显示字节的数据显示RAM,供显示编程时使用。,供显示编程时使用。6.标准接口特性,与标准接口特性,与H68HC08系列系列MCU容易接口。容易接口。7.模块结构紧凑、轻巧、装配容易。模块结构紧凑、轻巧、装配容易。8.单单+5V电源供电电源供电(宽温型需要加宽温型需要加-7V驱动电源驱动电源)。9.低功耗、高可靠性。低功耗、高可靠性。 148.3.3 HD447801. HD44780的引脚信号的引脚信号 152、HD44780的时序信号的时序信号(1)

13、写操作时序写操作时序 16(2)HD44780的读操作时序图的读操作时序图173、HD44780的编程结构的编程结构 从编程角度看,从编程角度看,HD44780内部主要由指令寄存器内部主要由指令寄存器(IR)、数据寄存器数据寄存器(DR)、忙标志、忙标志(BF)、地址计数器、地址计数器(AC)、显、显示数据寄存器示数据寄存器(DD RAM)、字符发生器、字符发生器ROM(CG ROM)、字符发生器字符发生器RAM(CG RAM)及时序发生电路构成。及时序发生电路构成。(1)指令寄存器()指令寄存器(IR) IR用于用于MCU向向HD44780写入指令码。写入指令码。 IR只能写入,不只能写入,

14、不能读出。当能读出。当RS=0、R/ =0时,数据线时,数据线DB7DB0上的上的数据写入指令寄存器数据写入指令寄存器IR。 18 (2)数据寄存器()数据寄存器(DR) DR用于寄存数据。当用于寄存数据。当RS=1、R / =0时,数据线时,数据线DB7DB0上的数据写入数据寄存器上的数据写入数据寄存器DR,同时,同时DR的数据由的数据由内部操作自动写入内部操作自动写入DD RAM或或CG RAM。当。当RS=1、R/ =1时,内部操作将时,内部操作将DD RAM或或CG RAM送到送到DR中,通过中,通过DR送送到数据总线到数据总线DB7DB0上。上。 (3)忙标志)忙标志(BF)令令RS

15、=0、R/ =1,在,在E信号高电平的作用下,信号高电平的作用下,BF输输出到总线的出到总线的DB7上,上,MCU可以读出判别。可以读出判别。BF=1,表示组件,表示组件正在进行内部操作,不能接受外部指令或数据。正在进行内部操作,不能接受外部指令或数据。(4)地址计数器)地址计数器(AC)AC作为作为DD RAM或或CG RAM的地址指针。如果地址码的地址指针。如果地址码随指令写入随指令写入IR,则,则IR的地址码部分自动装入地址计数器的地址码部分自动装入地址计数器AC之中,同时选择了相应的之中,同时选择了相应的DD RAM或或CG RAM单元。单元。19 AC具有自动加具有自动加1或自动减或

16、自动减1功能。当数据从功能。当数据从DR送到送到DD RAM(或或CG RAM),AC自动加自动加1。当数据从。当数据从DD RAM(或或CG RAM)送到送到DR,AC自动减自动减1。当。当RS=0、R/ =1时,在时,在E信号高电平的作用下,信号高电平的作用下,AC所指向的内容送到所指向的内容送到DB7DB0。(5)显示数据寄存器)显示数据寄存器(DD RAM) DD RAM用于存储显示数据,共有用于存储显示数据,共有80个字符码。个字符码。对于不同的显示行数及每行字符个数,所使用的地址不对于不同的显示行数及每行字符个数,所使用的地址不同,例如:同,例如: 81(8个字符,个字符,1行行)

17、字符位置字符位置 1 2 3 4 5 6 7 8地地 址址 00 01 02 03 04 05 06 07具体的对应关系,可参阅使用说明书。具体的对应关系,可参阅使用说明书。20(6)字符发生器)字符发生器ROM(CG ROM) CG ROM由由8位字符码生成位字符码生成57点阵字符点阵字符160种和种和510点阵字符点阵字符32种,要注意字符编码与字符的对应关系,种,要注意字符编码与字符的对应关系,可以直接使用。其中大部分与可以直接使用。其中大部分与ASCII码兼容。码兼容。(7)字符发生器)字符发生器RAM(CG RAM) CG RAM是提供给用户自定义特殊字符用的,它是提供给用户自定义特

18、殊字符用的,它的容量仅为的容量仅为64字节,编址为字节,编址为003FH。作为字符字模使。作为字符字模使用的仅是一个字节中的低用的仅是一个字节中的低5位,每个字节的高位,每个字节的高3位留给用位留给用户作为数据存储器使用。如果用户自定义字符由户作为数据存储器使用。如果用户自定义字符由57点点阵构成,可定义阵构成,可定义8个字符。个字符。21 4、HD44780的指令集的指令集(1)清屏)清屏 RS、R/ =00,DATA=0000 0001。清屏指令使。清屏指令使DD RAM的内容全部被清除,屏幕光标回原位,地址计数的内容全部被清除,屏幕光标回原位,地址计数器器AC=0。运行时间。运行时间(2

19、50KHz)约为约为1.64ms。(2)归位)归位(Return Home)RS、R/ =00,DATA=0000 001*(注:(注:“*”表示任意,表示任意,下同)。归位指令使光标和光标所在位的字符回原点下同)。归位指令使光标和光标所在位的字符回原点(屏幕的左上角屏幕的左上角)。但。但DD RAM单元内容不变。地址计单元内容不变。地址计数器数器AC=0。运行时间。运行时间(250KHz)约为约为1.64ms。(3)输入方式设置)输入方式设置 (Entry Mode Set)RS、R/ =00,DATA=0000 01AS。该指令设置光标、画。该指令设置光标、画面的移动方式。下面解释面的移动

20、方式。下面解释A、S位的含义。位的含义。A=1时时22数据读写操作后,数据读写操作后,AC自动增自动增1;A=0时数据读写操时数据读写操作后,作后,AC自动减自动减1。若。若S=1,当数据写入,当数据写入DD RAM显示将显示将全部左移全部左移(A=1)或全部右移或全部右移(A=0),此时光标看上去未动,此时光标看上去未动,仅仅是显示内容移动,但从仅仅是显示内容移动,但从DD RAM中读取数据时,显中读取数据时,显示不移动;示不移动;S=0时显示不移动,光标左移时显示不移动,光标左移(A=1)或右移或右移(A=0)。(4)显示开关控制)显示开关控制(Display ON/OFF Control

21、)RS、R/ =00,DATA=0000 1DCB。该指令设置显。该指令设置显示、光标及闪烁开、关。示、光标及闪烁开、关。D:显示控制,:显示控制,D=1,开显示,开显示(Display ON);D=0,关显示,关显示(Display OFF)。C:光标控:光标控制,制,C=1,开光标显示;,开光标显示;C=0,关光标显示。,关光标显示。B:闪烁控:闪烁控制,制,B=1,光标所指的字符同光标一起以,光标所指的字符同光标一起以0.4s交变闪烁;交变闪烁;B=0,不闪烁。运行时间,不闪烁。运行时间(250KHz)约为约为40s。23(5)光标或画面移位)光标或画面移位(Cursor or Disp

22、lay Shift)RS、 R/ =00,DATA=0001 S/C R/L * *。该指令。该指令使光标或画面在没有对使光标或画面在没有对DD RAM进行读写操作时被左移进行读写操作时被左移或右移,不影响或右移,不影响DD RAM。S/C=0、R/L=0,光标左移一,光标左移一个字符位,个字符位,AC自动减自动减1;S/C=0、R/L=1,光标右移一个,光标右移一个字符位,字符位,AC自动加自动加1;S/C=1、R/L=0,光标和画面一起,光标和画面一起左移一个字符位;左移一个字符位;S/C=1、R/L=1,光标和画面一起右移,光标和画面一起右移一个字符位。运行时间一个字符位。运行时间(25

23、0KHz)约为约为40s。(6)功能设置)功能设置(Function Set)RS、 R/ =00 ,DATA=001 DL N F * *。该指令为。该指令为工作方式设置命令工作方式设置命令(初始化命令初始化命令)。对。对HD44780初始化时,初始化时,需要设置数据接口位数需要设置数据接口位数(4位或位或8位位)、显示行数、点阵模式、显示行数、点阵模式(57或或510)。DL:设置数据接口位数,:设置数据接口位数,DL=1,8位数位数据总线据总线DB7DB0;DL=0,4位数据总线位数据总线DB7DB4,而,而DB3DB0不用,在此方式下数据操作需两次完成。不用,在此方式下数据操作需两次完

24、成。N:24设置显示行数,设置显示行数,N=1,2行显示;行显示;N=0,1行显示。行显示。F:设置点阵模式,设置点阵模式,F=0,57点阵;点阵;F=1,510点阵。运点阵。运行时间行时间(250KHz)约为约为40s。(7)CG RAM地址设置地址设置(CG RAM Address Set)RS、R/ =00,DATA=01 A5 A4 A3 A2 A1 A0。该。该指令设置指令设置CG RAM地址指针。地址指针。A5A0=00 000011 1111。地址码地址码A5A0被送入被送入AC中,在此后,就可以将用户自中,在此后,就可以将用户自定义的显示字符数据写入定义的显示字符数据写入CG

25、RAM或从或从CG RAM中读出。中读出。运行时间运行时间(250KHz)约为约为40s。(8)DD RAM地址设置地址设置(DD RAM Address Set)RS、R/ =00,DATA=1 A6 A5 A4 A3 A2 A1 A0。该。该指令设置指令设置DD RAM地址指针。若是一行显示,地址码地址指针。若是一行显示,地址码A6A0004FH有效;若是二行显示,首行址码有效;若是二行显示,首行址码A6A00027H有效,次行址码有效,次行址码A6A04067H有效。有效。在此后,就可以将显示字符码写入在此后,就可以将显示字符码写入DD RAM或从或从DD RAM中读出。运行时间中读出。

26、运行时间(250KHz)约为约为40s。25(9)读忙标志)读忙标志BF和和AC值值RS、R/ =01,DATA=BF AC6 AC5 AC4 AC3 AC2 AC1 AC0。该指令读取。该指令读取BF及及AC。BF为内部操作忙标志,为内部操作忙标志,BF=1,忙;,忙;BF=0,不忙。,不忙。AC6AC0为地址计数器为地址计数器AC的值。当的值。当BF=0时,送到时,送到DB6DB0的数据的数据(AC6AC0)有有效。效。(10)写数据到)写数据到DDRAM或或CGRAM(Write Data to DDRAM or CG RAM)RS、R/ =10,DATA=实际数据。该指令根据最近实际数据。该指令根据最近设置的地址,将数据写入设置的地址,将数据写入DD RAM或或CG RAM中。实际中。实际上,数据被直接写入上,数据被直接写入DR,再由内部操作写入地址指针所,再由内部操作写入地址指针所指的指的DD RAM或或CG RAM。运行时间。运行时间(250KHz)约为约为40s。(11)读)读DDRAM或或CGRAM数据数据(Read Dat

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论