|
|
|
通过LED和键盘完成的人机交互 |
|
|
人机交互
人机界面:是指人与计算机系统进行信息交互的接口,包括信息的输入和输出。
5.1 MCS-51单片机与键盘的接口技术
键盘:单片机系统中完成控制参数输入及修改的基本输入设备,是人工干预系统的重要手段。
键盘的分类:按编码方式可分为编码键盘与非编码键盘。按键组连接方式可分为独立连接式键盘与矩阵连接式键盘。
键盘输入的主要对象:各种按键或开关。
5.1.1 独立连接式键盘
每键相互独立,各自与一条I/O线相连,CPU可直接读取该I/O线的高/低电平状态。其优点是硬件、软件结构简单,判键速度快,使用方便;缺点是占I/O口线多。
适用场合:多用于设置控制键、功能键。适用于键数少的场合。
独立连接式键盘连接图如下图所示。当没有键被按下时,所有的数据输入线都为高电平;当有任意一个键被按下时,与之相连的数据输入线将变为低电平;通过相应指令,可以判断是否有键按下。
图5-1 独立连接式键盘
5.1.2. 矩阵连接式键盘
键按矩阵排列,各键处于矩阵行/列的结点处,CPU通过对连在行(列)的I/O线送已知电平的信号,然后读取列(行)线的状态信息。逐线扫描,得出键码。其特点是键多时占用I/O口线少,硬件资源利用合理,但判键速度慢。
适用场合:多用于设置数字键,适用于键数多的场合。
4行3列矩阵式键盘连接图如下图所示。其中包含4行、3列,构成一个4*3的数组将每行连接端点命名为X0、X1、X2及X3,每列连接端点命名为Y0、Y1、Y2。另外每行连接一个电阻到共同端点上。依扫描方式的不同,共同点可连接到VCC或GND,当我们要进行键盘扫描时,则将扫描信号送至Y0、Y1、Y2,再由X0~X3读取键盘状态,既可判断哪个键被按下。键盘扫描的方式有两种,即低电平扫描和高电平扫描。
图5-2 4*3键盘
1、低电平扫描,具体操作如下:
如图5-2所示低电平扫描是将共同点连接VCC,无论哪个键被按下,X0~X3端点都保持为高电平(即1)。送入Y0~Y2的扫描信号中,只有一个为低电平(即0),其余两个为高电平。整个工作可分四个阶段。
(1)、在第一阶段,主要判断是0、1、2、3号键有没有被按下。首先将110B信号送入列接口,也就是只有Y0为低电平,紧接着读取X0~X3的状态。
* 若X3~X0为1110,表示0号键被按下;
* 若X3~X0为1101,表示1号键被按下;
* 若X3~X0为1011,表示2号键被按下;
* 若X3~X0为0111,表示3号键被按下;
若X3~X0为1111,表示0、1、2、3号键都没有被按下,进入下一阶段。
(2)在第二阶段,主要判断是4、5、6、7号键有没有被按下。首先将101B信号送入列接口,也就是只有Y1为低电平,紧接着读取X0~X3的状态。
* 若X3~X0为1110,表示4号键被按下;
* 若X3~X0为1101,表示5号键被按下;
* 若X3~X0为1011,表示6号键被按下;
* 若X3~X0为0111,表示7号键被按下;
若X3~X0为1111,表示4、5、6、7、号键都没有被按下,进入下一阶段。
(3)在第三阶段,主要判断是8、9、“清除”、“确认”号键有没有被按下。首先将011B信号送入列接口,也就是只有Y2为低电平,紧接着读取X0~X3的状态。
* 若X3~X0为1110,表示8号键被按下;
* 若X3~X0为1101,表示9号键被按下;
* 若X3~X0为1011,表示“清除”号键被按下;
* 若X3~X0为0111,表示“确认”号键被按下;
若X3~X0为1111,表示8、9、“清除”、“确认”号键都没有被按下,进入第一阶段,从头开始继续扫描。
2、高电平扫描,具体操作如下:
高电平扫描是将共同点接地(GND),无论哪个按键被按下,X0~X3端都保持为地电平(即0)。送入Y0~Y2的扫描信号中,只有一个为高电平,其余两个为低电平。整个工作可分四个阶段。
(1)、在第一阶段,主要判断是0、1、2、3号键有没有被按下。首先将001B信号送入列接口,也就是只有Y0为高电平,紧接着读取X0~X3的状态。
* 若X3~X0为0001,表示0号键被按下;
* 若X3~X0为0010,表示1号键被按下;
* 若X3~X0为0100,表示2号键被按下;
* 若X3~X0为1000,表示3号键被按下;
若X3~X0为0000,表示0、1、2、3号键都没有被按下,进入下一阶段。
(2)在第二阶段,主要判断是4、5、6、7号键有没有被按下。首先将010B信号送入列接口,也就是只有Y1为低电平,紧接着读取X0~X3的状态。
* 若X3~X0为0001,表示4号键被按下;
* 若X3~X0为0010,表示5号键被按下;
* 若X3~X0为0100,表示6号键被按下;
* 若X3~X0为1000,表示7号键被按下;
若X3~X0为0000,表示4、5、6、7、号键都没有被按下,进入下一阶段。
(3)在第三阶段,主要判断是8、9、“清除”、“确认”号键有没有被按下。首先将100B信号送入列接口,也就是只有Y2为低电平,紧接着读取X0~X3的状态。
* 若X3~X0为0001,表示8号键被按下;
* 若X3~X0为0010,表示9号键被按下;
* 若X3~X0为0100,表示“清除”号键被按下;
* 若X3~X0为1000,表示“确认”号键被按下;
若X3~X0为0000,表示8、9、“清除”、“确认”号
|
|
|
|
评论仅代表评论人个人看法,不表明博客主人及中国工控网同意其观点或其描述 共1条评论 共1页 第1页
|
评论人署名:XYL5000 |
|
评论时间:2007/7/8 6:45:00 |
我要发表评论 |
|
相关技术论文: |
|
|