完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
|
相关推荐
3 个讨论
|
|
/****************************************************
一款精巧的51单片机4*4矩阵键盘扫描程序,LED显示键值 ****************************************************/ #include #define uchar unsigned char //宏定义 #define uint unsigned int //宏定义 uchar key=0; //键值变量 void key_scan() //矩阵键盘扫描函数 { uchar temp1,temp2,temp3; //临时变量 static bit sign=0; //按键自锁标志 static uchar count=0; //消抖计数变量 P3=0xf0; //先给P3赋一个初值 if(P3!=0xf0) //判断P3不等于所赋初值,说明有健按下 { if(sign==0) //如果按键自锁标志=0 { count++; //主循环消抖计数 if(count>=100) //消抖计数自>=100 { count=100; //防止溢出 sign=1; //按键自锁标志置1,键不抬起,按其他键无效 temp1=P3; //temp1反映高4位变化 P3=0x0f; //再给P3赋值0x0f temp2=P3; //temp2反映低4位变化 temp3=temp2|temp1; //temp3=高4位+低4位 switch(temp3) { case 0xee: key= 1; break; case 0xde: key= 2; break; case 0xbe: key= 3; break; case 0x7e: key= 4; break; case 0xed: key= 5; break; case 0xdd: key= 6; break; case 0xbd: key= 7; break; case 0x7d: key= 8; break; case 0xeb: key= 9; break; case 0xdb: key=10; break; case 0xbb: key=11; break; case 0x7b: key=12; break; case 0xe7: key=13; break; case 0xd7: key=14; break; case 0xb7: key=15; break; case 0x77: key=16; break; } } } } else //按键抬起 { sign=0; //按键自锁标志清0 count=0; //消抖计数清0 } } void main() { while(1) { key_scan(); //扫描键盘 P1=~key; //LED显示键值 } } |
|
|
|
|
|
《DNESP32S3使用指南-IDF版_V1.6》第三十五章 摄像头实验
219 浏览 0 评论
《DNESP32S3使用指南-IDF版_V1.6》第三十章 DHT11数字温湿度传感器
574 浏览 0 评论
684 浏览 0 评论
【敏矽微ME32G070开发板免费体验】之原厂2812测试例程解析
1074 浏览 0 评论
1073 浏览 2 评论
【youyeetoo X1 windows 开发板体验】少儿AI智能STEAM积木平台
12048 浏览 31 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 21:12 , Processed in 0.604723 second(s), Total 69, Slave 52 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号