




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 第8章GPIO应用 键盘 LED与LCD 8 1键盘模块概论与驱动构件设计8 2LED模块概论与驱动构件设计8 3LCD模块概论与驱动构件设计8 4LED LCD键盘驱动构件测试实例8 5本章小结 2 8 1键盘模块概论与驱动构件设计 8 1 1键盘模型及接口1 键盘模型键盘是由若干个按键组成的开关矩阵 它是最简单的MCU数字量输入设备 操作员通过键盘输入数据或命令 实现简单的人机通信 3 2 键盘接口方式 1 键盘排布 独立方式 矩阵方式 2 读入键值 直读方式 扫描方式 3 是否进行硬件编码 非编码方式 硬件编码方式 4 微处理器响应 中断方式 查询方式下面 介绍独立和矩阵的键盘接口方式 4 8 1 2键盘编程基本问题及键盘扫描编码原理1 键盘编程的基本问题1 键的识别如何知道键盘上哪个键被按下就是键的识别问题 若识别由专用硬件实现 称为编码键盘 而靠软件实现的称为未编码键盘 识别是否有键被按下 主要有查询法 定时扫描法与中断法等 而要识别键盘上哪个键被按下主要有行扫描法与行反转法 2 抖动问题当按键被按下时 会出现所按的键在闭合位置和断开位置之间跳几下 才稳定到闭合状态的情况 当释放一个按键时也会出现类似的情况 这就是抖动问题 在软件上 解决抖动的方法通常是延迟等待抖动的消失或多次识别判定 5 3 重键问题所谓重键问题就是有两个及两个以上按键同时处于闭合状态的处理问题 在软件上 处理重键问题通常有连锁法与巡回法 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这一行上是否有键闭合 这种逐行逐列地检查键盘状态的过程称为对键盘的一次扫描 如图所示 7 8 1 3键盘构件设计1 键盘定义表2 KB构件函数 8 8 2LED模块概论与驱动构件设计 8 2 1LED基础知识在此之前 我们先了解几个问题 1 所用LED是几段 共阴极还是共阳极 2 所选LED的电气参数怎样 如额定功率 额定电流是多少 9 下图所示一个四连排的共阴极数码管 它们的位段信号端 称为数据端 接在一起 可以由MCU的一个8位端口控制 同时还有4个位选信号 称为控制端 用于分别选中要显示数据的数码管 可用MCU另一个端口的4个引脚来控制 10 8 2 2LED构件设计以下给出KL25对上述4连排LED的C语言构件实例 LED的数据线接PORTB0 PORTB1 PORTB2 PORTB3 PORTB8 PORTB9 PORTB10 PORTB11 位选口接PORTB16 PORTB17 PORTB18 PORTB19 具体连接见下图 11 8 3LCD模块概论与驱动构件设计 8 3 1LCD的特点和分类1 LCD的特点LCD作为电子信息产品的主要显示器件 相对于其它类型的显示部件来说 有其自身的特点 概要如下 1 低电压微功耗 2 平板型结构 3 使用寿命长 4 被动显示 5 显示信息量大且易于彩色化 6 无电磁辐射 12 2 LCD的分类 1 按光电效应分为 电场效应类 电流效应类 电热写入效应类和热效应类 2 按显示内容分为 LCD可分为字段型 或称为笔划型 点阵字符型 点阵图形型三种 3 按LCD的采光方式分为 带背光源与不带背光源两大类 13 8 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 低功耗 高可靠性 14 8 3 3HD447801 HD44780的引脚信号 15 2 HD44780的时序信号 1 写操作时序 16 2 HD44780的读操作时序图 17 3 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单元 19 AC具有自动加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个字符 21 4 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 26 8 3 3LCD构件设计本节给出点阵字符型LCD的一个编程实例 在实验板上 LCD的数据线D0 D7脚分别与MCU的PORTD0 PORTD4 PORTC13 PORTC16和PORTC17连接 LCD的控制线RS R E 4 5 6脚 分别与MCU的PORTD7 PORTD6和PORTD5连接 27 8 4LED LCD键盘驱动构件测试实例 本测试调用了键盘 LED和L
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 风险控制矩阵分析
- 电大电工考试题及答案
- 农产品供应链合作协议内容
- 外科护理学考试题库及答案中专
- 大堂转岗考试题及答案
- 绿色采购和低碳生产承诺书4篇
- 学习中的挫折与坚持议论文9篇
- 《世界地理概况:高中地理课程教案》
- 客户服务支持响应及反馈跟踪系统
- 医疗垃圾处理规范课件
- 2025-2026学年冀人版三年级科学上册(全册)教学设计(附目录)
- 磷化铝管理办法
- 手术室专科护士职业考试试卷与答案
- 门窗工程管理办法
- 小学体育家长会课件
- 依法治校视角下高校后勤管理法律风险的识别与化解策略
- 2025年法学专业基础课程试题及答案
- 腰椎管狭窄症病例讨论
- 部编版语文(2024)二年级上册第一单元综合素养测评A卷(含答案)
- 工程质量事故案例课件
- 多囊卵巢综合症及护理方法
评论
0/150
提交评论