嵌入式技术基础与实践(第二版)ppt第06章.ppt

嵌入式技术基础与实践(第二版)ppt第06章.ppt

  1. 1、本文档共21页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
嵌入式技术基础与实践(第二版)ppt第06章

第6章 GPIO的应用实例—键盘、 LED与LCD 主要内容 6.1 键盘编程实例 6.2 数码管LED编程实例 6.3 液晶LCD编程实例 6.1 键盘编程实例 6.1.1 未编码键盘的接线方式 直接接线的独立方式 矩阵方式 6.1.2 键盘编程的基本问题 键的识别 重键问题 抖动问题 6.1.3 AW60键盘中断模块 键盘中断状态和控制寄存器(KBI Status and Control Register ,KBI1SC) KBI1SC包含了键盘中断触发方式、键盘中断标志、键盘中断 应答、键盘中断使能等功能。其地址是$ 0000001E 数据位 D7 D6 D5 D4 D3 D2 D1 D0 读 KBEDG7 KBEDG6 KBEDG5 KBEDG4 KBF 0 KBIE KBIMOD 写 未定义 KBACK 复位 0 0 0 0 0 0 0 0 键盘中断引脚使能寄存器(KBI Pin Enable Register ,KBI1PE) KBI1PE的各位决定所对应的引脚是否允许中断进入,地址为:$ 0000001F 数据位 D7 D6 D5 D4 D3 D2 D1 D0 读 KBIPE7 KBIPE6 KBIPE5 KBIPE4 KBIPE3 KBIPE2 KBIPE1 KBIPE0 写 复位 0 0 0 0 0 0 0 0 键盘中断编程相关问题: 键盘中断矢量地址:$FFD2—$FFD3 键盘中断初始化顺序:先设置键盘中断状态和控制寄存器(KBI1SC),后设置键盘中断引脚使能寄存器(KBI1PE) 当定义KBI1Px为键盘中断引入引脚时,由于内部上拉到逻辑1也许需要一些时间,可能产生开始时的键盘误中断 当MCU进入低功耗stop3模式时,异步边沿检测被禁止,但是电平检测模式仍然能够触发键盘中断,故能将MCU从低功耗stop3模式中唤醒 6.1.4 键盘编程实例 给出一个实际的4×4键盘编程实例,讲述如何扫描键盘取得键值和键盘编码等问题 4×4键盘与MCU接法示例(图1) 键盘定义(图2) 键值计算方法 键盘与MCU接线见上面图1,图2给出了键的定义符号“0”~“9”、 “A”~“D”、“*”、“#”等。如何识别“1”键呢?这里将列线n1~n4 分别接PTG4、PTD2、PTD3、PTD7,且编程时将这四个引脚定义为输入并进行 上拉,行线m1~m4分别接PTG0~PTG3,且编程时将PTG0~PTG3定义为输出, 那么“1”键对应于按照PTD7、PTD3、PTD2、PTG4、PTG3、PTG2、PTG1、 PTG0的顺序为即$EE;“2”键对应于即$DE; ……;“D”键对应于即$77。前者“1”、“2”、“D”就是 我们的定义值,后者$EE、$DE、$77就是“键值”,这种情况“键值”是一 个字节。这样,按图1的接法可以得出键值表,见图2。键值可以通过扫描法 获得,由键值通过查表法编程可得到键的定义值 键盘编程实例 void KBInit(void):初始化键盘模块 uint8 KBScanN(uint8 N):N次扫描键盘,消除抖动问题 uint8 KBDef(uint8 valve):键值转为定义值 uint8 KBScan1(void):扫描1次4*4键盘,返回读取的键值 6.2 数码管LED编程实例 对数码管编程需要了解的两个问题: 所用LED是几段,是共阴还是共阳? 数码管电路 所选LED的电气参数怎样?如额定功率、额定电流是多少? LED的选择需要根据实际应用需求来决定,若只需要显示数字“0”~“9”,则只需七段LED就够了,若同时又要显示小数点,则需使用八段LED。 8段数码管由8个发光二极管组成。MCU是通过I/O脚来控制LED某段发光二极管的亮灭从而达到显示某个数字的目的。 8段数码管分别由a、b、c、d、e、f、g位段和小数点位段h(或记为dp)组成。共阴极8段数码管的信号端高电平有效,只要在各位段加上高电平信号即可使相应的位段发光,比如要使a段发光,则在a段加上高电平即可。共阳极的8段数码管则相反,在相应的位段加上低电平即可使该位段发光。 比如对共阳极8段数码管,PTB0~7分别接a~g、dp,即AW60_GPIO_PTB=0dp段亮;当AW60_GPIO_PTB= 0除dp位段外,其他位段均亮。 如何对多个LED编程(以8段数码管为例) 数据端 通过MCU的一个8位I/0口来控制位段 控制端 8段数码管的公共端,原来接到固定的电平(对共阴极是GND,对共阳极是V

文档评论(0)

dajuhyy + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档