专栏中心

EEPW首页 > 专栏 > 4*4键盘扫描

4*4键盘扫描

发布人:0750long 时间:2009-07-11 来源:工程师 发布文章
4*4键盘扫描

 

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

}

看书后写的,不知道有没有问题,明天仿下看看。

刚仿过了,这个方法是可以行的,附件是仿真的文件,我没有做防抖之类的保护,所以,按一个按键时,会发送多个字符,本意是按一次按键,发送一个对应的字符的

专栏文章内容及配图由作者撰写发布,仅供工程师学习之用,如有侵权或者其他违规问题,请联系本站处理。 联系我们

关键词:

相关推荐

高速数据采集系统中高速缓存与海量缓存的实现

高速PCB设计指南第5篇-DSP系统的降噪技术

资源下载 2007-02-16

拆解:Timekettle W4 Pro

北京电视台-2009年NUEDC颁奖仪式报道

AI电力激增背后的液冷管道

高速单片机硬件关键参数设计概述

电机和电机控制的简介:步进电机

视频 2011-06-02

中国教育电视台-2009年NUEDC颁奖仪式报道

别这么做:忽略最坏情况下的执行时间

拆解:华硕Rog Ally X 2024

拆解:任天堂 Switch 2

拆解:Apple Watch Series 11 5G

高速12位模数转换器AD7892及其在图像采集中的应用

英伟达暂停面向中国的H200生产 台积电产能转向Vera Rubin平台

芯擎科技高阶辅助驾驶芯片“星辰一号”

上海教育台-NEC电子杯NUEDC竞赛开赛仪式视频报道

Vishay推出透射式传感器,为工业和消费电子应用提供更大设计灵活性

“强化学习”推动自适应控制器的兴起

高精度时钟芯片SD2000的原理及应用

电机和电机控制的简介:AC 感应电机

视频 2011-06-02
更多 培训课堂
更多 焦点
更多 视频

技术专区