矩阵按键,存档
行列扫描,线翻转
12MHZ
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
#define KEY_MATRIX_PORTP1
#define SMG_A_DP_PORTP0
u8 gsmg_code[17]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
void delay_10us(u16 ten_us)
{
while(ten_us--);
}
u8 key_matrix_ranks_scan(void)
{
u8 key_value=0;
KEY_MATRIX_PORT=0xf7;
if(KEY_MATRIX_PORT!=0xf7)
{
delay_10us(1000);
switch(KEY_MATRIX_PORT)
{
case 0x77: key_value=1;break;
case 0xb7: key_value=5;break;
case 0xd7: key_value=9;break;
case 0xe7: key_value=13;break;
}
}
while(KEY_MATRIX_PORT!=0xf7);
KEY_MATRIX_PORT=0xfb;
if(KEY_MATRIX_PORT!=0xfb)
{
delay_10us(1000);
switch(KEY_MATRIX_PORT)
{
case 0x7b: key_value=2;break;
case 0xbb: key_value=6;break;
case 0xdb: key_value=10;break;
case 0xeb: key_value=14;break;
}
}
while(KEY_MATRIX_PORT!=0xfb);
KEY_MATRIX_PORT=0xfd;
if(KEY_MATRIX_PORT!=0xfd)
{
delay_10us(1000);
switch(KEY_MATRIX_PORT)
{
case 0x7d: key_value=3;break;
case 0xbd: key_value=7;break;
case 0xdd: key_value=11;break;
case 0xed: key_value=15;break;
}
}
while(KEY_MATRIX_PORT!=0xfd);
KEY_MATRIX_PORT=0xfe;
if(KEY_MATRIX_PORT!=0xfe)
{
delay_10us(1000);
switch(KEY_MATRIX_PORT)
{
case 0x7e: key_value=4;break;
case 0xbe: key_value=8;break;
case 0xde: key_value=12;break;
case 0xee: key_value=16;break;
}
}
while(KEY_MATRIX_PORT!=0xfe);
return key_value;
}
u8 key_matrix_flip_scan(void)
{
static u8 key_value=0;
KEY_MATRIX_PORT=0x0f;
if(KEY_MATRIX_PORT!=0x0f)
{
delay_10us(1000);
if(KEY_MATRIX_PORT!=0x0f)
{
KEY_MATRIX_PORT=0x0f;
switch(KEY_MATRIX_PORT)
{
case 0x07: key_value=1;break;
case 0x0b: key_value=2;break;
case 0x0d: key_value=3;break;
case 0x0e: key_value=4;break;
}
KEY_MATRIX_PORT=0xf0;
switch(KEY_MATRIX_PORT)
{
case 0x70: key_value=key_value;break;
case 0xb0: key_value=key_value+4;break;
case 0xd0: key_value=key_value+8;break;
case 0xe0: key_value=key_value+12;break;
}
while(KEY_MATRIX_PORT!=0xf0);
}
}
else
key_value=0;
return key_value;
}
void main()
{
u8 key=0;
while(1)
{
key=key_matrix_ranks_scan();
if(key!=0)
SMG_A_DP_PORT=gsmg_code[key-1];
}
}
和其正的复兴梦,藏在气泡水与凉茶的碰撞里?和其正去哪里了?在超市餐馆火锅店,和其正凉茶好像消失了,取而代之的是满货架的加多宝王老吉。如果碰到餐厅老板说只有和其正,那可能还会犹豫一下要不要。究竟是什么造成了这种差异,和其正还
5D幻境带你穿越时空,橘洲江天暮雪十一邀你入画赏雪从古到今,诗意是一个何其优美的词语。作为一个快节奏生活的现代人,我们感叹古人的聪慧感叹古人的睿智,如果有一个机会让你穿越时空,重回千年之前,你愿意吗?今年10月1日至10月6日,长
从爆款新品到柔性供应链管理,天猫建立新的护城河距离已经消失,要么创新,要么死亡。上个世纪80年代,美国著名管理学大师托马斯彼得斯在追求卓越中,如此定义创新的重要性,这句话放到现在,也不会是危言耸听。时间到了21世纪20年代,企
公牛被罚近3亿,然后呢?公牛被罚,大家其实并不意外。反垄断风盛行之下,公牛作为插座行业老大,一些经营行为历来遭经销商诟病,类似卖公牛的经销商只能卖公牛插座,价格不能降否则罚款等等行为,如此遭人举报也是迟早
剧本杀开连锁店,有戏吗?一次偶然的机会,大学生小高体验了一把苏瑶嘉的人生。一向沉闷不爱讲话的小高,在剧本杀时,好像被打通了任督二脉与素未谋面的人也能侃侃而谈。从此,便成为了剧本杀的常客。现如今越来越多,像
复盘韵达快运四年征程品快运行业的咸与淡脱奶近三年的韵达快运,继承了韵达在大件市场上的野心么?近年来,随着快递业驶入红海竞争阶段,寻找下一片新蓝海成为快递企业们稳固地位的首要手段。同样因为电商成熟化的发展,小件向大件倾斜
西装暴徒的绅士进化奥迪Q7换装空气悬挂案例本期施工施工车型奥迪Q7车型颜色冰川白施工项目换装空气悬挂作为国内豪华品牌经久不衰的三剑客,BBA一直都是傲视群雄般的存在。相比奔驰的奢华典雅宝马的狂放不羁,奥迪一直以来都被广大车
性能小钢炮的蜕变领克03装贴哑光隐形车衣本期施工施工车型领克03车型颜色灰色施工项目哑光隐形车衣众所周知,之前自主品牌无论是轿车还是SUV车型,都是主攻中低端市场,而更高价位区间似乎与自主品牌绝缘,常年被合资品牌霸占。不
美系肌肉车凯迪拉克XT5贴装隐形车衣,视觉效果满分施工车型凯迪拉克XT5车型颜色亮黑色施工项目专车专用隐形车衣产品特性8。5mil超强防剐蹭不黄变新型(防腐蚀)纳米涂层改良TPU基材无影胶层提升亮度35凯迪拉克XT5的外观造型采用
2021年最新款日系车,百公里加速居然还要14秒?丰田TNGA平台最几年打造出了很多的销量明星车型,不管是雷克萨斯ES也好,还是汉兰达也好,不可否认都有着良好的舒适性和经济性,,卡罗拉也一样,外观好看,空间有优势,也是丰田TNGA
高级磨砂质感,蔚来ES8哑光隐形车衣本期施工施工车型蔚来ES8车型颜色星灰施工项目哑光隐形车衣隐形车衣,相信现在对很多朋友来说并不陌生,它不仅能够对漆面起到一定程度的保护作用,还可以让车漆看起来更亮,可谓一举两得。但