3章GP10的应用实例——键盘、LED与LCD 第3章
本章目录 5.1键盘 5.2数码管LED 5.3液晶LCD
2 本章目录 5.1 键盘 5.2 数码管LED 5.3 液晶LCD
5.1键盘 键盘接口方式 1.独立方式 独立方式是指将每个独立按键按一对一的方式直接接到 I/○输入线上。读键值时直接读/O口,每个键的状态通过 读入键值来反映。 2.矩阵方式 矩阵方式是用n条I/O线组成行输入▣,m条I/O线组成 列输出口,在行列线的每一个交点上设置一个按键。读键 值方法一般采用扫描方式,即输出▣按位轮换输出低电平 ,再从输入口读入键信息,最后获得键码
3 5.1 键盘 键盘接口方式 1.独立方式 独立方式是指将每个独立按键按一对一的方式直接接到 I/O输入线上。读键值时直接读I/O口,每个键的状态通过 读入键值来反映。 2.矩阵方式 矩阵方式是用n条I/O线组成行输入口,m条I/O线组成 列输出口,在行列线的每一个交点上设置一个按键。读键 值方法一般采用扫描方式,即输出口按位轮换输出低电平 ,再从输入口读入键信息,最后获得键码
5.1键盘 键盘编程的基本问题 1.键的识别 如何知道键盘上哪个键被按下就是键的识别问题。识别 是否有键被按下,主要有查询法、定时扫描法与中断法等 。而要识别键盘上哪个键被按下主要有行扫描法与行反转 法。 2.抖动问题 当键被按下时,会出现所按的键在闭合位置和断开位置 之间跳几下才稳定到闭合状态的情况,当释放一个按键时 也会出现类似的情况,这就是抖动问题。在软件上,解决 抖动的方法通常是延迟等待抖动的消失或多次识别判定
4 5.1 键盘 键盘编程的基本问题 1.键的识别 如何知道键盘上哪个键被按下就是键的识别问题。识别 是否有键被按下,主要有查询法、定时扫描法与中断法等 。而要识别键盘上哪个键被按下主要有行扫描法与行反转 法。 2.抖动问题 当键被按下时,会出现所按的键在闭合位置和断开位置 之间跳几下才稳定到闭合状态的情况,当释放一个按键时 也会出现类似的情况,这就是抖动问题。在软件上,解决 抖动的方法通常是延迟等待抖动的消失或多次识别判定
5.1键盘 键盘编程的基本问题 3.重键问题 所谓重键问题就是有两个及两个以上按键同时处于闭合 状态的处理问题。在软件上,处理重键问题通常有连锁法 与巡回法
5 5.1 键盘 键盘编程的基本问题 3.重键问题 所谓重键问题就是有两个及两个以上按键同时处于闭合 状态的处理问题。在软件上,处理重键问题通常有连锁法 与巡回法
5.1键盘 键盘编程实例 。给出一个实际的4×4键盘编程实例, 讲述如何扫 描键盘取得键值和键盘编码等问题
6 给出一个实际的4×4键盘编程实例,讲述如何扫 描键盘取得键值和键盘编码等问题。 5.1 键盘 键盘编程实例
5.1键盘 e4*4键盘与MCU接法示例 VCC 行线 ANO ml ANI m2 AN2 o AN3 m4 6o 列线 AN4 nl n2 ● AN6 n3 AN7
7 5.1 键盘 m1 m2 m3 m4 n1 n2 n3 n4 行线 列线 AN0 AN1 AN3 AN4 AN6 AN7 AN5 AN2 VCC 4*4键盘与 MCU接法示例
5.1键盘 键盘定义 2 3 A 定义值 EE DE BE 7E 6 ED DD BD 7D 键值 8 9 EB DB BB 7B 米 E7 D7 B7 77
8 5.1 键盘 键盘定义 1 EE 2 DE 3 BE A 7E 4 ED 5 DD 6 BD B 7D 7 EB 8 DB 9 BB C 7B * E7 0 D7 # B7 D 77 定义值 键值
5.1键盘 。键值计算方法 以上两张图给出了键盘与MCU接线以及键的定义符号"O” g”、"A”"D” “#”等。如何识别“1”键 呢?这里将列线n1~n4分别接AN4~AN7,且编程时将AN4~ AN7定义为输入并进行上拉,行线m1~m4分别接AN0~AN3 ,且编程时将AN0~AN3定义为输出,那么“1”键对应于: AN7~AN0=11101110,即$EE;"2”键对应于:AN7 AN0=11011110,即$DE;.…;"D”键对应于:AN7~ AN0=01110111,即$77。前者"1”、2”、"D”就是我 们的定义值,后者$EE、$DE、$77就是"键值”,这种情况 键值”是一个字节。这样即可以得出对应于相应接线图的键值表 键值可以通过扫描法获得,由键值通过查表法编程得到定义值
9 5.1 键盘 键值计算方法 以上两张图给出了键盘与MCU接线以及键的定义符号“0” ~“9” 、 “A”~“D” 、 “*” 、 “#”等。如何识别“1”键 呢?这里将列线n1~n4分别接AN4~AN7,且编程时将AN4~ AN7定义为输入并进行上拉,行线m1~m4分别接AN0~AN3 ,且编程时将AN0~AN3定义为输出,那么“1”键对应于: AN7~AN0=11101110,即$EE;“2”键对应于:AN7~ AN0=11011110,即$DE;……;“D”键对应于:AN7~ AN0=01110111,即$77。前者“1” 、 “2” 、 “D”就是我 们的定义值,后者$EE、$DE、$77就是“键值” ,这种情况“ 键值”是一个字节。这样即可以得出对应于相应接线图的键值表 。键值可以通过扫描法获得,由键值通过查表法编程得到定义值
5.1键盘 键盘构件程序 >Void KB Init(void):初始化键盘口方向和数据寄存器 >INT8 JKB Scanl(void):扫描一次4*4键盘上的按键,读取键值 >NT8 JKB ScanN(INT8 U KB count):多次扫描键盘,消除"抖动“ >NT8 UKB Def(INT8 U KB valve):键值转为定义值
10 5.1 键盘 键盘构件程序 ➢ Void KB_Init( void ):初始化键盘口方向和数据寄存器 ➢ INT8U KB_Scan1(void):扫描一次4*4键盘上的按键,读取键值 ➢ INT8U KB_ScanN(INT8U KB_count):多次扫描键盘,消除"抖动“ ➢ INT8U KB_Def(INT8U KB_valve):键值转为定义值