历史上的今天
返回首页

历史上的今天

今天是:2025年08月20日(星期三)

正在发生

2021年08月20日 | 51单片机-流水灯的优化解说

2021-08-20 来源:eefocus

1.题目

为了更好地体现上一讲优化好的不支持连按代码的优势,我们来一道题目:用上7盏灯,左边6盏不停地流水,最右边1盏实现按键切换灯的打开和关闭,且按键动作不能干扰到流水灯的流速状态。


实验现象状态模拟如下

 

11111011//按键没按下

11110111//按键没按下

11101110//按键按下后抬起

11011110//按键没按下

10111111//按键按下后抬起

01111111//按键没按下

11111011//按键没按下

......

 

2.升华

在书写代码之前,我们来思考一下如何做到简化,如果按照以前的思路就是sbit的一个一个位地定义,这样的话就可以避免影响到LED2,因为LED2要实现自由,仅允许让按键来控制它的亮灭而已。


如果像之前用“P0=~(0x04<

首先要了解到“0xFE|0x00”还是等于0xFE,“0xFE|0x01”就等于0xFF了。


我们也知道LED2要么是等于0,要么是等于1的。当然也可以这么说:LED2要么是等于0x00,要么是等于0x01。十进制和十六进制表示的都是确定的数,只是书写方法不一样而已,比如我们都知道“P0=0xFF;”是熄灭8盏灯的作用,但是我们也可以这样写“P0=255;”,因为0xFF和255都是一个确定的数,只不过用0xFF更能让人快速反应出这个值用二进制表示会立马呈现出8个IO端口的输出状况。


所以我们只要这样表示“0xFE|LED2”,那这个表达式要么是等于0xFE要么是等于0xFF。

我们接着再了解,“(~0x04)&0xFF”还是等于(~0x04),用二进制表示为11111011,赋给P0就是只有LED4亮。


而“(~0x04)&0xFE”等于0xFA, 用二进制表示11111010,赋给P0就是只有LED2和LED4亮。


于是这么写“P0=~(0x04)&(0xFE|LED2);”的时候,LED2等于0时,就是LED2和LED4亮;LED2等于1时,只有LED4亮而已。


要想实现六盏灯流水则“P0=~(0x04<

本讲的代码我们在下一讲贴出,目的是为了比较当使用“while(KEY4==0);”的方式时是有多拙劣。

推荐阅读

史海拾趣

Eurotechnique公司的发展小趣事

随着全球对环保和可持续发展的关注度不断提高,Eurotechnique也开始注重环保和可持续发展。公司采用环保材料和生产工艺,降低产品对环境的影响。同时,Eurotechnique还积极参与环保公益活动,推动电子行业的绿色发展。此外,公司还致力于研发更加节能、环保的产品,以满足市场的需求。

功得(CONQUER)公司的发展小趣事

在市场竞争日益激烈的环境下,功得公司意识到仅仅依靠创新是不够的,还需要有高品质的产品来赢得客户的信任。因此,公司开始注重产品质量管理,建立了完善的质量控制体系。功得公司严格把控原材料采购、生产工艺和成品检验等环节,确保每一件产品都符合高标准的质量要求。这种对品质的执着追求,使得功得公司的产品在市场上赢得了良好的口碑,品牌知名度也逐渐提升。

Arco Electronics公司的发展小趣事

Arco Electronics公司深知品牌建设对于企业发展的重要性。因此,公司投入大量资源用于品牌建设和市场推广。公司通过与知名企业合作、赞助行业展会等方式提升品牌知名度;同时,还积极运用新媒体进行线上推广,与消费者建立更紧密的联系。这些举措有效地提升了Arco的品牌形象和市场影响力。

Acculin Inc公司的发展小趣事

Acculin Inc最初是一家专注于电子元器件研发的小型企业。随着物联网和智能家居的兴起,公司敏锐地捕捉到了市场的机遇,开始研发一款低功耗、高集成度的传感器芯片。经过数年的努力,Acculin成功推出了这款芯片,并凭借出色的性能获得了市场的认可。随后,公司逐渐扩大了产品线,涵盖了多个电子领域,成为行业内技术创新的领军者。

鞍山圣罗佳(ASL)公司的发展小趣事

Acculin Inc深知人才是企业发展的核心。为了吸引和留住优秀人才,公司建立了完善的培训体系,并为员工提供了良好的晋升机会。此外,公司还注重团队建设,通过举办各种团建活动活动增强员工之间的凝聚力。这些举措使得Acculin在人才竞争激烈的市场中保持了优势。

Analogix Semiconductor公司的发展小趣事

作为一家有社会责任感的企业,Acculin Inc积极参与公益事业,为社会做出贡献。公司定期举办慈善活动,支持教育、环保等公益事业。此外,Acculin还注重环保生产,通过采用环保材料和节能技术,降低生产过程中的环境影响。这些举措不仅提升了公司的社会形象,也增强了消费者对品牌的信任度。

这些故事虽然基于虚构,但反映了电子行业中企业可能面临的一些常见挑战和机遇。通过技术创新、国际合作、战略调整、人才培养和社会责任等方面的努力,一个电子行业的企业可以逐渐发展壮大,并在市场中取得一席之地。

问答坊 | AI 解惑

DC-DC布线中如何减小地弹噪声

布线中除环路最小化原则外,还有一个环路的变化最小化原则,这个原则对于减小DC-DC的地弹意义重大。 ADI对此有一篇文章专门对此进行了详细的说明。非常值得EE们参考。…

查看全部问答>

在工作岗位上就得会说话

今天听交通台,主题是“快速解决”。一人说自己的前任得罪了一位四十多岁的客户,人家死活不签单。自己接手后,就紧着夸这位大姐:“您怎么看上去这么年轻”“您怎么这么事业有成”,该客户第二天就签单了。   真的是“千穿万穿,马屁不穿” ...…

查看全部问答>

windml中如何修改root界面

windDemo程序启动后是wind river的logo,如果我想修改成自定义的logo应该怎么做?…

查看全部问答>

DSP+BCM5221 网络连接问题

我用的TI的DM642DSP和BCM5221以太网芯片,进行连网 采用UDP协议,报文头: typedef union {         Uint8 Bytes[6];         Uint16 Words[3]; }MacAddr; // Ethernet Header #define ETHHDR_SIZE&nbs ...…

查看全部问答>

windows7下怎么装不了ce6.0的update?

新买了一台电脑,是windows7的正版,不想删了,看到有人装了ce6.0,也试了一下,能装,但是每个月的update却装不了.有人碰到过吗? 安装顺序是这样的, 1,vs2005 2vs2005sp1 3.s2005 for vista 4.wince6.0 5.wince6.0 sp1 6.wince6.0 r2 7.update. ...…

查看全部问答>

有关LED 调光,你了解多少?

      在照明行业,人们对于LED光源的调光往往有个误区,即认为对比其他光源(荧光灯,金卤灯和钠灯等)的调光LED相对容易的多。而现实是LED光源调光技术在工程中的应用中往往不尽人意,为什么会是这样的情形?是LED光源的调光 ...…

查看全部问答>

关于回复可见

上过好多论坛,林林总总,“回复可见”这个问题论坛有论坛自己的想法,我谈谈我的。 有的论坛没有回复可见这个限制,如考研论坛、通信人家园等,这些论坛也都不错,大家讨论的也都很积极, 而有的论坛有这个限制,我就不举例了,但讨论不积极,会 ...…

查看全部问答>

RF板块蓝牙交流的问题

看到RF板块有一些网友在玩蓝牙,考虑到板块还没正式开设蓝牙板块,所以这些玩家可以先加入EE官方蓝牙4.0技术群交流303514407…

查看全部问答>

哪些手段确保FPGA外部芯片提供的数据准确无误地进入FPGA内部?

通常采用哪些手段确保FPGA外部芯片(比如ad芯片,存储器读数据时)提供的数据准确无误地进入FPGA内部? \0\0\0eeworldpostqq…

查看全部问答>

贴片瓷片电容问题

    大家好,最近生产一批产品用到三星的4.7uF和1uF的0603瓷片电容,这批产品在通电老化后都出现不良现象,测量发现是这两个电容漏电导致影响了电容两端的电压,更换同样品牌同样参数的电容后再老化一批没有出现问题了。因为这个产品这两 ...…

查看全部问答>