虫子 按键 (虽然我现在看之前写的文章有点幼稚,但是当时是真的蛮开心的)
【摘要】 独立按键与矩阵按键 独立按键 图样 原理图 按键的简单功能(为了智能小车,可以朝上面靠) ==显示的过程== 功能 ==半成品示范== ==丐版展示== 还有一直按就是一直加加的功能,但是代码基本类似,就没必要再写了,都是重复的类似工作 高潮来袭 矩阵键盘 原理图 分析 矩阵键盘 独立按键与矩阵按键 独立按键 图样==按键按下去之后,往往会有抖动的问题,按键本身的弹性,按键按下去或者放开,...
独立按键与矩阵按键
独立按键
图样
==按键按下去之后,往往会有抖动的问题,按键本身的弹性,按键按下去或者放开,都会形成撞击的不稳定过程,这个过程需要一定的时间,所以单片机在这个过程中不能读取IO状态,可以软件延迟或者硬件延迟==
原理图
按键的简单功能(为了智能小车,可以朝上面靠)
==显示的过程==
没有制作GIF的原因是做完一直不小于1M导致我typora插入我不显示,因此狠心投稿到B站,今后B站就是我的视频库
功能
上面按键就是一按一按没有什么吸引人的地方,没有什么亮点,所以我们推倒重来
==半成品示范==
加了长按标志的展示
==丐版展示==
//按键扫描
void Key_Scan_Drive()
{
static bit flag = 0;//长短按标志
static bit key_down = 0;//按下标志,由于双击也用这个,所以标记范围得扩大
static u8 count1 = 0;//计数器1,因为100以内,所以u8足够了
static u16 count2 = 0;//计数器2,大于255就用u16
if(key_down)//检测按键是否被按下过
{
count2++;
if(count2>250)
{
count2 = 0;
flag = 1;
//长按程序
LCD12864_Write_Cmd(0x8c);
LCD12864_Write_Data(0x30);
LCD12864_Write_Data(0x30+LCD12864_Num_Buffer[1]);
}
if(KEY1)
{
key_down = 0;//松开就把标志清零
count2 = 0;
if(flag)
{
flag = 0;
}
else
{
//短按程序
LCD12864_Write_Cmd(0x8c);
LCD12864_Write_Data(0x30);
LCD12864_Write_Data(0x30+LCD12864_Num_Buffer[3]);
}
}
}
else
{
if(!KEY1)
{
count1++;
if(count1>20)
{
count1 = 0;
if(!KEY1)
{
key_down = 1;
}
}
}
}
}
还有一直按就是一直加加的功能,但是代码基本类似,就没必要再写了,都是重复的类似工作
高潮来袭
矩阵键盘
P6^0 P6^1 P6^2 P6^3 四线是行扫描,P6^4 P6^5 P6^6 P6^7 四线是列扫描。4 行 4 列总共使用 8 个 IO 口,可以扫描 16 个按键的开关状态,这就是矩阵键盘的优势。==( IO 口之间必须串联电阻 )==。
原理图
分析
#include "all.h"
u8 code KEY4x4_Buffer[4] = {0xef,0xdf,0xbf,0x7f};//列输入 /列控制数组
u8 xdata KEY4x4_Read_Byte = 0; //读到/检测到的字节
void KEY4x4_Drive_Init()
{
P6M1 = 0;
P6M0 = 0;
}
void KEY4x4_Scan_Drive()
{
static xdata u16 count = 0;
u8 i = 0;
u8 j = 0;//循环扫描变量
u8 Value = 0;//检测行变量
count++;
if(count>10)//通过计数的方式来减少循环次数,还消抖
{
count = 0;
for(i = 0;i<4;i++)//列输入 /列控制
{
P6 = KEY4x4_Buffer[i];
Value = 0x08;
for(j = 0;j<4;j++)
{
if(!(Value&P6))//哪个位被拉成0了就会被检测到
{
KEY4x4_Read_Byte = j*4+i+1;
}
Value >>= 1;//右移一位
}
}
P6 = 0xff;//P6口用完拉高,因为以后会用到他
}
}
矩阵键盘
【版权声明】本文为华为云社区用户原创内容,未经允许不得转载,如需转载请自行联系原作者进行授权。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)