完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
1个回答
|
|
// 方法一代码实现 // 变量说明: // GPIO_KEY 代表控制矩阵按键的IO口,例P1、P2 // matrixkey 代表哪一个按键号,取值[0~15] //********** //函数: void matrixkeyscan() //作用: 矩阵按键扫描函数,检测按下了哪按键,最后调用数码管显示函数 //输入: 无 //输出: 无 //********** void matrixkeyscan() { GPIO_KEY=0x0F; //BIN 0000 1111 (运送行低电平,列高电平) if(GPIO_KEY != 0x0F) //如果行全为低电平,列如果有一个低电平,即GPIO_KEY != 0x0F,表示有按键按下;相反,GPIO_KEY == 0x0F表示没有按键按下。 { delay_ms(10); //延时10ms进行消抖 if(GPIO_KEY != 0x0F) //再次检测键盘是否按下 { //测试列 GPIO_KEY=0X0F; switch(GPIO_KEY) { case(0X07): matrixkey=0;break; //0000 0111 case(0X0b): matrixkey=1;break; //0000 1011 case(0X0d): matrixkey=2;break; //0000 1101 case(0X0e): matrixkey=3;break; //0000 1110 } //测试行 GPIO_KEY=0XF0; //1111 0000 switch(GPIO_KEY) { case(0X70): matrixkey=matrixkey;break; //0111 0000 case(0Xb0): matrixkey=matrixkey+4;break; //1011 0000 case(0Xd0): matrixkey=matrixkey+8;break; //1101 0000 case(0Xe0): matrixkey=matrixkey+12;break; //1110 0000 } while(GPIO_KEY != 0xf0); //检测按键松手检测 } } } |
|
|
|
只有小组成员才能发言,加入小组>>
2514 浏览 0 评论
1092浏览 2评论
703浏览 1评论
456浏览 0评论
200浏览 0评论
340浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-24 10:13 , Processed in 1.146587 second(s), Total 81, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号