KL25-ch8((GPIO应用―键盘、LED与LCD))

整理文档很辛苦,赏杯茶钱您下走!

免费阅读已结束,点击下载阅读编辑剩下 ...

阅读已结束,您可以下载文档离线阅读编辑

资源描述

1第8章GPIO应用—键盘、LED与LCD8.1键盘模块概论与驱动构件设计8.2LED模块概论与驱动构件设计8.3LCD模块概论与驱动构件设计8.4LED、LCD键盘驱动构件测试实例8.5本章小结28.1键盘模块概论与驱动构件设计8.1.1键盘模型及接口1、键盘模型键盘是由若干个按键组成的开关矩阵,它是最简单的MCU数字量输入设备。操作员通过键盘输入数据或命令,实现简单的人机通信。32、键盘接口方式(1)键盘排布:独立方式、矩阵方式(2)读入键值:直读方式、扫描方式(3)是否进行硬件编码:非编码方式、硬件编码方式(4)微处理器响应:中断方式、查询方式下面,介绍独立和矩阵的键盘接口方式48.1.2键盘编程基本问题及键盘扫描编码原理1、键盘编程的基本问题1)键的识别如何知道键盘上哪个键被按下就是键的识别问题。若识别由专用硬件实现,称为编码键盘;而靠软件实现的称为未编码键盘。识别是否有键被按下,主要有查询法、定时扫描法与中断法等,而要识别键盘上哪个键被按下主要有行扫描法与行反转法。2)抖动问题当按键被按下时,会出现所按的键在闭合位置和断开位置之间跳几下,才稳定到闭合状态的情况,当释放一个按键时也会出现类似的情况,这就是抖动问题。在软件上,解决抖动的方法通常是延迟等待抖动的消失或多次识别判定。53)重键问题所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题。在软件上,处理重键问题通常有连锁法与巡回法。2、键盘扫描编程原理下面以4×4键盘为例说明按键识别的基本编程原理。4×4的键盘结构如下图所示,图中列线(n1~n4)通过电阻接+5V,当键盘上没有键闭合时,所有的行线和列线断开,列线n1~n4都呈高电平。当键盘上某一个键闭合时,则该键所对应的行线与列线短路。例如第2排第3个按键被按下闭合时,行线m2和列线n3短路,此时n3线上的电平由m2的电位所决定。那么如何确定键盘上哪个按键被按下呢?可以把列线n1~n4接到MCU的输入口,行线m1~m4接到MCU的输出口,则在微机的控制下,使行线m1为低电平(0),其余三根行线m2、m3、m4都为高电平,并读列线n1~n4状态。如果n1~n4都为高电平,则m1这6一行上没有键闭合,如果读出列线n1~n4的状态不全为高电平,那么为低电平的列线和m1相交的键处于闭合状态;如果m1这一行上没有键闭合,接着使行线m2为低电平,其余行线为高电平,用同样方法检查m2这一行上有无键闭合;以此类推,最后使行线m4为低电平,其余的行线为高电平,检查m4这一行上是否有键闭合。这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描。如图所示:78.1.3键盘构件设计1、键盘定义表2、KB构件函数88.2LED模块概论与驱动构件设计8.2.1LED基础知识在此之前,我们先了解几个问题:1.所用LED是几段,共阴极还是共阳极?2.所选LED的电气参数怎样?如额定功率、额定电流是多少?9下图所示一个四连排的共阴极数码管,它们的位段信号端(称为数据端)接在一起,可以由MCU的一个8位端口控制,同时还有4个位选信号(称为控制端),用于分别选中要显示数据的数码管,可用MCU另一个端口的4个引脚来控制。108.2.2LED构件设计以下给出KL25对上述4连排LED的C语言构件实例。LED的数据线接PORTB0、PORTB1、PORTB2、PORTB3、PORTB8、PORTB9、PORTB10、PORTB11,位选口接PORTB16、PORTB17、PORTB18、PORTB19,具体连接见下图。118.3LCD模块概论与驱动构件设计8.3.1LCD的特点和分类1、LCD的特点LCD作为电子信息产品的主要显示器件,相对于其它类型的显示部件来说,有其自身的特点,概要如下:(1)低电压微功耗(2)平板型结构(3)使用寿命长(4)被动显示(5)显示信息量大且易于彩色化(6)无电磁辐射122、LCD的分类(1)按光电效应分为:电场效应类、电流效应类、电热写入效应类和热效应类。(2)按显示内容分为:LCD可分为字段型(或称为笔划型)、点阵字符型、点阵图形型三种。(3)按LCD的采光方式分为:带背光源与不带背光源两大类。138.3.2点阵字符型液晶显示模块1.液晶显示屏是以若干5×8或5×11点阵块组成的显示字符群。2.主控制电路为HD44780(HITACHI)及其它公司的兼容电路。3.内部具有字符发生器,可显示192种字符。4.具有64字节的自定义字符RAM,可以定义8个5×8点阵字符或4个5×11点阵字符。5.具有64字节的数据显示RAM,供显示编程时使用。6.标准接口特性,与H68HC08系列MCU容易接口。7.模块结构紧凑、轻巧、装配容易。8.单+5V电源供电(宽温型需要加-7V驱动电源)。9.低功耗、高可靠性。148.3.3HD447801.HD44780的引脚信号152、HD44780的时序信号(1)写操作时序16(2)HD44780的读操作时序图173、HD44780的编程结构从编程角度看,HD44780内部主要由指令寄存器(IR)、数据寄存器(DR)、忙标志(BF)、地址计数器(AC)、显示数据寄存器(DDRAM)、字符发生器ROM(CGROM)、字符发生器RAM(CGRAM)及时序发生电路构成。(1)指令寄存器(IR)IR用于MCU向HD44780写入指令码。IR只能写入,不能读出。当RS=0、R/=0时,数据线DB7~DB0上的数据写入指令寄存器IR。18(2)数据寄存器(DR)DR用于寄存数据。当RS=1、R/=0时,数据线DB7~DB0上的数据写入数据寄存器DR,同时DR的数据由内部操作自动写入DDRAM或CGRAM。当RS=1、R/=1时,内部操作将DDRAM或CGRAM送到DR中,通过DR送到数据总线DB7~DB0上。(3)忙标志(BF)令RS=0、R/=1,在E信号高电平的作用下,BF输出到总线的DB7上,MCU可以读出判别。BF=1,表示组件正在进行内部操作,不能接受外部指令或数据。(4)地址计数器(AC)AC作为DDRAM或CGRAM的地址指针。如果地址码随指令写入IR,则IR的地址码部分自动装入地址计数器AC之中,同时选择了相应的DDRAM或CGRAM单元。19AC具有自动加1或自动减1功能。当数据从DR送到DDRAM(或CGRAM),AC自动加1。当数据从DDRAM(或CGRAM)送到DR,AC自动减1。当RS=0、R/=1时,在E信号高电平的作用下,AC所指向的内容送到DB7~DB0。(5)显示数据寄存器(DDRAM)DDRAM用于存储显示数据,共有80个字符码。对于不同的显示行数及每行字符个数,所使用的地址不同,例如:8×1(8个字符,1行)字符位置12345678地址0001020304050607具体的对应关系,可参阅使用说明书。20(6)字符发生器ROM(CGROM)CGROM由8位字符码生成5×7点阵字符160种和5×10点阵字符32种,要注意字符编码与字符的对应关系,可以直接使用。其中大部分与ASCII码兼容。(7)字符发生器RAM(CGRAM)CGRAM是提供给用户自定义特殊字符用的,它的容量仅为64字节,编址为00~3FH。作为字符字模使用的仅是一个字节中的低5位,每个字节的高3位留给用户作为数据存储器使用。如果用户自定义字符由5×7点阵构成,可定义8个字符。214、HD44780的指令集(1)清屏RS、R/=00,DATA=00000001。清屏指令使DDRAM的内容全部被清除,屏幕光标回原位,地址计数器AC=0。运行时间(250KHz)约为1.64ms。(2)归位(ReturnHome)RS、R/=00,DATA=0000001*(注:“*”表示任意,下同)。归位指令使光标和光标所在位的字符回原点(屏幕的左上角)。但DDRAM单元内容不变。地址计数器AC=0。运行时间(250KHz)约为1.64ms。(3)输入方式设置(EntryModeSet)RS、R/=00,DATA=000001AS。该指令设置光标、画面的移动方式。下面解释A、S位的含义。A=1时22数据读写操作后,AC自动增1;A=0时数据读写操作后,AC自动减1。若S=1,当数据写入DDRAM显示将全部左移(A=1)或全部右移(A=0),此时光标看上去未动,仅仅是显示内容移动,但从DDRAM中读取数据时,显示不移动;S=0时显示不移动,光标左移(A=1)或右移(A=0)。(4)显示开关控制(DisplayON/OFFControl)RS、R/=00,DATA=00001DCB。该指令设置显示、光标及闪烁开、关。D:显示控制,D=1,开显示(DisplayON);D=0,关显示(DisplayOFF)。C:光标控制,C=1,开光标显示;C=0,关光标显示。B:闪烁控制,B=1,光标所指的字符同光标一起以0.4s交变闪烁;B=0,不闪烁。运行时间(250KHz)约为40µs。23(5)光标或画面移位(CursororDisplayShift)RS、R/=00,DATA=0001S/CR/L**。该指令使光标或画面在没有对DDRAM进行读写操作时被左移或右移,不影响DDRAM。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,光标和画面一起右移一个字符位。运行时间(250KHz)约为40µs。(6)功能设置(FunctionSet)RS、R/=00,DATA=001DLNF**。该指令为工作方式设置命令(初始化命令)。对HD44780初始化时,需要设置数据接口位数(4位或8位)、显示行数、点阵模式(5×7或5×10)。DL:设置数据接口位数,DL=1,8位数据总线DB7~DB0;DL=0,4位数据总线DB7~DB4,而DB3~DB0不用,在此方式下数据操作需两次完成。N:24设置显示行数,N=1,2行显示;N=0,1行显示。F:设置点阵模式,F=0,5×7点阵;F=1,5×10点阵。运行时间(250KHz)约为40µs。(7)CGRAM地址设置(CGRAMAddressSet)RS、R/=00,DATA=01A5A4A3A2A1A0。该指令设置CGRAM地址指针。A5~A0=000000~111111。地址码A5~A0被送入AC中,在此后,就可以将用户自定义的显示字符数据写入CGRAM或从CGRAM中读出。运行时间(250KHz)约为40µs。(8)DDRAM地址设置(DDRAMAddressSet)RS、R/=00,DATA=1A6A5A4A3A2A1A0。该指令设置DDRAM地址指针。若是一行显示,地址码A6~A0=00~4FH有效;若是二行显示,首行址码A6~A0=00~27H有效,次行址码A6~A0=40~67H有效。在此后,就可以将显示字符码写入DDRAM或从DDRAM中读出。运行时间(250KHz)约为40µs。25(9)读忙标志BF和AC值RS、R/=01,DATA=BFAC6AC5AC4AC3AC2AC1AC0。该指令读取BF及AC。BF为内部操作忙标志,BF=1,忙;BF=0,不忙。AC6~AC0为地址计数器AC的值。当BF=0时,送到DB6~DB0的数据(AC6~AC0)有效。(10)写数据到DDRAM或CGRAM(WriteDatatoDDRAMorCGRAM)RS、R/=10,DATA=实际数据。该指令根据最近设置的地址,将数据写入DDRAM或CGRAM中。实际上,数据被直接写入DR,再由内部操作写入地址指针所指的DDRAM或CGRAM。运行时间(250KHz)约为40µs。(11)读DDRAM或CGRAM数据(ReadDatafromDDRAMorCGRAM)RS、R/=11,DATA=实际数据。该指令根据最近设置的地址,从DDRAM或CGRAM读数据到总线DB7~DB0上。运行时间(250KHz)约为40µs。268.3.3LCD构件

1 / 28
下载文档,编辑使用

©2015-2020 m.777doc.com 三七文档.

备案号:鲁ICP备2024069028号-1 客服联系 QQ:2149211541

×
保存成功