摘要:行列总共使用个口,可以扫描个按键的开关状态,这就是矩阵键盘的优势。口之间必须串联电阻。
按键按下去之后,往往会有抖动的问题,按键本身的弹性,按键按下去或者放开,都会形成撞击的不稳定过程,这个过程需要一定的时间,所以单片机在这个过程中不能读取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口用完拉高,因为以后会用到他 } }
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/122126.html
摘要:复位后初值是子函数调用,中断响应过程调用子函数处理中断响应的时候,程序计数器的值以及相关数据会先压入堆栈,然后去处理子函数中断服务。联动文章身家过亿的帝都富豪对小码农说你时空复杂度会了吗 ...
摘要:否则可能会导致电平颠倒完美的计数糟糕的线条再来一个测试组我们来实现一个呼吸灯的效果呼吸灯波形为了贤淑妻子,咳咳,贤淑才女,小码农必定让控制时间什么是脉宽调制中间动的线是电流线,电流通断,电流小就暗,电流大就亮。 ...
摘要:对于电压或者电流连续变化的信号,就需要通过模数转换电路,变成单片机可以识别的数字电平信号。目前来说,常见的有两种方式,一种是并行比较,一种是逐次比较。具有成本低元件简单等优势,而且容易做出高精度的转换器,所以被广泛使用。 ...
摘要:目前,所有型号串口的输入是输出是。串口全双工通信是没有时钟脉冲的,只能依靠晶振脉冲定时器的溢出脉冲。中断中读取,清标志,然后返回给计算机,等待发送完毕防重叠最少时间次位定时器时间。实现烧录程序的目的。 ...
摘要:前言今天下班突然看到一篇刷屏朋友圈的文章为什么甲骨文被裁员工不值得同情来自一个财经的微信公众号刚看题目我以为文章是会分析甲骨文公司内部的财经类问题所以就戳开看了毕竟本人不喜欢看打鸡血的文章。 为工薪层能合理取得报酬而发声,为大众选择不同生活状态都能获得尊重而发声,为不同职场层次的职场人都能有健康的工作环境而发声。 前言 今天下班突然看到一篇刷屏朋友圈的文章来自一个XX财经的微信公众号,...
阅读 2998·2021-11-18 10:07
阅读 3740·2021-11-17 17:00
阅读 2065·2021-11-15 18:01
阅读 909·2021-10-11 10:58
阅读 3307·2021-09-10 10:50
阅读 3394·2021-08-13 15:05
阅读 1208·2019-08-30 15:53
阅读 2618·2019-08-29 13:01