只需一步,快速开始
热门: 51单片机 | 24小时必答区 | 单片机教程 | 单片机DIY制作 | STM32 | Cortex M3 | 模数电子 | 电子DIY制作 | 音响/功放 | 拆机乐园 | Arduino | 嵌入式OS | 程序设计
使用道具 举报
dyx811 发表于 2024-1-17 22:23 总共6个按键位变量,我把它合在一起了,成了一个字节,只是想让它在后面的判断和调用方便。没想到还有点难 ...
wulin 发表于 2024-1-18 08:26 假设6个按键分别接P2.3、2.4,P1.1~1.4 #define KeyFlag P21&0x0f
yzw846562238 发表于 2024-1-18 08:57 typedef struct { unsigned int key1 : 1;
ydatou 发表于 2024-1-18 08:40 你这段代码可优化。节省一个全局变量,代码也可简短些。
yzw846562238 发表于 2024-1-18 09:19 return SsMAIN_h_KeyValue.KeyValue;
Hephaestus 发表于 2024-1-18 01:43 你这代码转换成机器码,执行效率跟我在地板发的代码差了十万八千里,好好学习吧。
18680365301 发表于 2024-1-18 15:34 void Key_Scan() //按键检测 1ms调用 { u8 i;
dyx811 发表于 2024-1-18 18:02 一定好好学习。主要是高级点的单片机还没有咋个会呢。你发的代码是带指针的吗?一时半会还理解不透。 ...
188610329 发表于 2024-1-18 23:05 sbit Temp1 = ACC^0; sbit Temp2 = ACC^1; sbit Temp3 = ACC^2;
dyx811 发表于 2024-1-18 17:22 利用了静态变量可以不用每次都初始化da,这样子不能做多键同时按下的准确判断。
ydatou 发表于 2024-1-19 14:29 请仔细分析下我给你的优化代码。 1:因为有这变量的初始换,才省了你代码中的一堆else。 2:临时变量和 ...
dyx811 发表于 2024-1-19 15:33 谢谢指点,突然恍然大悟了!!我居然把把&运算算错了。。。光想着怎么复原该Bit位了。 这样子确实精简了 ...
查看全部评分
ydatou 发表于 2024-1-19 16:36 再看了下楼主代码,当KeyFlag 不为1时,要返回上一次的key值,这确实需要一个全局变量,我给的优化代码没 ...
dyx811 发表于 2024-1-20 21:22 bdta太好用了!不光完全实现了一堆位变量的整合,经过实验,不光实现了既定要求,程序上还节省了大量空间 ...
TTQ001 发表于 2024-1-21 09:06 一个字节由 8 位组成。 字节的按位操作广泛用于数字变量,例如开关状态、标志和数字输出。
Hephaestus 发表于 2024-1-20 21:38 我早就告诉你了你不看。
本版积分规则 发表回复 回帖后跳转到最后一页
手机版|小黑屋|51黑电子论坛 | 管理员QQ:125739409;技术交流QQ群281945664
Powered by 单片机教程网