"); //-->
unsigned int key = 0xffff; //扫描码,0有效
void key_scan(void){
unsigned char temp;
for(i = 1 ; i < 0x10 ; i << = 1){
rPDATA | = 0x0f ; //低四位为行,设置为输出,高4位为列,设置为输入
rPDATA & = ~ i ; //依次扫描,1,2,3,4行
delay_ms(20) ; //过滤回弹
temp = rPDATA ; //读端口高4位的值
temp >> = 4 ;
key << = 4 ;
key | = temp; //把读到的值存到key中指定的位
}
return key ;
}
比如说,第一行第一列,对应的扫描码就是0xEFFF,全部写出来吧,还是,
{0xEFFF,0xDFFF,0xBFFF,0x7FFF,
0xFEFF,0xFDFF,0xFBFF,0xF7FF,
0xFFEF,0xFFDF,0xFFBF,0xFF7F,
0xFFFE,0xFFFD,0xFFFB,0xFFF7
}
看书后写的,不知道有没有问题,明天仿下看看。
刚仿过了,这个方法是可以行的,附件是仿真的文件,我没有做防抖之类的保护,所以,按一个按键时,会发送多个字符,本意是按一次按键,发送一个对应的字符的
专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们
相关推荐
高速数据采集系统中高速缓存与海量缓存的实现
JTAG接口设备问题
电网断线报警器
高速PCB设计指南第5篇-DSP系统的降噪技术
拆解:Timekettle W4 Pro
北京电视台-2009年NUEDC颁奖仪式报道
AI电力激增背后的液冷管道
高响度、高亮度的声光提醒器
高速单片机硬件关键参数设计概述
[魅力·男女]男人成熟的十七种表现
电机和电机控制的简介:步进电机
中国教育电视台-2009年NUEDC颁奖仪式报道
别这么做:忽略最坏情况下的执行时间
拆解:华硕Rog Ally X 2024
拆解:任天堂 Switch 2
微功耗断线式防盗报警器
用89C2051制作八路断线数显报警器
拆解:Apple Watch Series 11 5G
高速12位模数转换器AD7892及其在图像采集中的应用
英伟达暂停面向中国的H200生产 台积电产能转向Vera Rubin平台
C语言中如何指定地址
仅用五个元件的讯响报警器
芯擎科技高阶辅助驾驶芯片“星辰一号”
比较牛的DSP56F807.
上海教育台-NEC电子杯NUEDC竞赛开赛仪式视频报道
ARM7来做嵌入式的设备几个问题解答
Vishay推出透射式传感器,为工业和消费电子应用提供更大设计灵活性
“强化学习”推动自适应控制器的兴起
高精度时钟芯片SD2000的原理及应用
电机和电机控制的简介:AC 感应电机