历史上的今天
返回首页

历史上的今天

今天是:2026年03月24日(星期二)

正在发生

2023年03月24日 | 用于单片机的轻量级菜单

2023-03-24 来源:zhihu

有时要用单片机写一些大点的程序,但又没必要使用一些操作系统的时候,我写出了下面这种轻量级菜单状态机,配备一个显示设备加5个输入(上下左右和按下)

先看看效果图



上面的 ABC, BCD,EFG分别是一个菜单列表的菜单

菜单的结构框图为



对于单个菜单的结构为

对于每个菜单,分别有指向它上面的菜单,下面的菜单,它的子菜单,它的父菜单,它的菜单列表,和这个菜单对应执行的函数的指针



对于一组菜单列表为


使用非常方便,我们来看下对于刚才效果图所展示的菜单的使用

首先定义有几个菜单列表



和一个指向当前状态的菜单



菜单的初始化

首先先给每个菜单列表里添加相应的菜单



然后把各个菜单列表连接起来



上图中RefreshMenu函数是根据CurrentMenu来刷新液晶屏的,这个要各位自己实现

然后再主函数里不停的执行



MenuHandler是这样处理得到的按键的





以上只给出了如何使用

其实还有些函数如 获得当前菜单为当前菜单列表中第几项 等子函数没列出来,这些通过都是链表的指针实现的


推荐阅读

史海拾趣

GE Sensing ( Amphenol Advanced Sensors )公司的发展小趣事

对于4h的交流电源定时器(555,BH4024)电路,网友可能会提出一系列问题。以下是一些常见问题及其详细回答:

1. 电路的基本工作原理是什么?

回答:该电路结合了555定时器(作为时基电路)和BH4024(7级二进制串行计数器/分频器)来实现4小时的定时功能。555定时器用于产生定时信号,而BH4024则负责将定时信号转换成所需的时间间隔。每当按下AN(定时触动按钮)时,电路开始计时,并在4小时后自动切断交流电源。

2. 如何调整定时时间?

回答:直接调整4小时的定时时间可能不直接通过电路中的元件实现,因为定时时间主要由BH4024的分频特性和555定时器的振荡频率决定。然而,可以通过改变555定时器的外部电阻和电容值来调整其振荡频率,但这通常会影响整个电路的定时精度和稳定性。对于精确调整至4小时,可能需要使用微控制器或其他可编程逻辑设备来替代或辅助BH4024和555定时器。

3. 电路中的555定时器具体起到什么作用?

回答:在这个电路中,555定时器作为时基电路,负责产生稳定的振荡信号。这个振荡信号的频率和占空比可以通过调整与555定时器相连的电阻和电容值来改变。然而,在这个特定的应用中,555定时器的输出信号通常被用作BH4024的输入信号,以便控制BH4024的计数和分频过程。

4. BH4024是如何实现定时功能的?

回答:BH4024是一个7级二进制串行计数器/分频器,它能够根据输入的时钟信号进行计数,并在达到预定次数后输出一个翻转信号。在这个电路中,BH4024的计数频率由555定时器的输出信号决定。当计数器达到某个预设值时(这个值决定了4小时的定时长度),BH4024会输出一个信号来切断交流电源。

5. 电路中的电源要求是什么?

回答:电路中的电源要求取决于所使用的555定时器和BH4024的具体型号以及电路中的其他元件。通常情况下,555定时器可以在较宽的电源电压范围内工作(如4.5V至16V),但具体值应参考器件的数据手册。对于BH4024和其他元件,也应遵循类似的电源要求。此外,由于该电路涉及交流电源的控制,因此还需要注意电路的安全性和稳定性问题。

6. 如何确保电路的可靠性和安全性?

回答:为了确保电路的可靠性和安全性,需要采取以下措施:

  • 选择质量可靠的元件和器件,并按照正确的规格和参数进行连接。
  • 在电路设计中考虑适当的保护措施,如过流保护、过压保护等。
  • 在实际使用中,注意避免电路受到外部干扰和损坏。
  • 定期对电路进行检查和维护,以确保其正常运行和延长使用寿命。

7. 电路有哪些潜在的应用场景?

回答:该电路具有广泛的应用场景,包括但不限于:

  • 家庭自动化系统中的定时开关功能。
  • 工业生产线上的自动断电和重启功能。
  • 实验室和测试设备中的定时控制功能。
  • 公共场所的自动照明和节能控制功能等。

总之,对于4h的交流电源定时器(555,BH4024)电路,网友可能会关注其工作原理、定时时间调整、元件作用、电源要求、可靠性和安全性以及潜在应用场景等方面的问题。以上回答旨在提供全面的信息和指导。

Dongguan City Niuhang Electronics Co.LTD公司的发展小趣事

Dongguan City Niuhang Electronics Co.LTD成立于2012年,当时的中国电子行业正处于快速发展期。创始人李小芹凭借对半导体技术的深刻理解和市场需求的敏锐洞察,决定专注于二极管、桥式整流器等产品的研发与封装。公司成立初期,面临着资金短缺、技术储备不足等挑战,但李小芹凭借坚定的信念和不懈的努力,带领团队攻克了一个又一个技术难关,逐步在市场上树立了良好的口碑。

广州奥松公司的发展小趣事

随着公司的不断发展,奥松电子陆续获得了多项荣誉资质,如“国家专精特新‘小巨人’企业”、“国家高新技术企业”等。这些荣誉的获得,不仅证明了公司在电子行业中的实力与地位,也为公司的品牌建设提供了有力的支撑。同时,这些荣誉也为公司的市场拓展和业务发展提供了更多的机遇和可能。

骏晔科技(DreamLNK)公司的发展小趣事

骏晔科技非常重视知识产权的积累与保护。公司拥有一支专业的研发团队,致力于新产品的研发和技术创新。同时,公司还积极申请专利和软件著作权,保护自身的技术成果。截至目前,骏晔科技已经拥有8个专利信息和12个软件著作权,这些知识产权的拥有,为公司的发展提供了强有力的支撑。

China Semiconductor Corp公司的发展小趣事

为了进一步提升竞争力,CSC开始着手进行产业链整合。公司通过与上下游企业的深度合作,形成了紧密的产业链协同关系。这不仅降低了生产成本,提高了生产效率,还使得CSC能够更好地把握市场动态和技术趋势,为公司的持续发展提供了有力保障。

Autonics公司的发展小趣事

Autonics自成立以来,一直致力于传感器和控制器的研究与开发。公司拥有一支高素质、专业化的研发团队,不断推出具有创新性和竞争力的产品。经过多年的努力,Autonics的产品种类逐渐丰富,性能不断提升,赢得了市场的广泛认可。同时,公司还注重与国内外高校、科研机构的合作,引进先进技术,提升自身的研发能力。

问答坊 | AI 解惑

Google将推Google Chrome网络浏览器

Google将在美国时间周二推出Google Chrome网络浏览器,旨在挑战微软的IE浏览器。该浏览器Google Chrome的官方网站gears.google.com/chrome/也已启动。谷歌没有对此马上作出回应。据了解,Google Chrome浏览器通过强化地址栏功能和其它元素,使得浏 ...…

查看全部问答>

北京市2005年大学生电子设计竞赛题目

本帖最后由 paulhyde 于 2014-9-15 09:46 编辑 北京市2005年大学生电子设计竞赛题目  …

查看全部问答>

求助(在线等答案)

小弟想请高手推荐几款triple SPDT模拟开关,Ron和ΔR要小点的,小弟正在使用ADG1433,由于1433受到加电顺序的影响,所以需要更换。 请大家帮忙啊…

查看全部问答>

大师,高人:关于ZigBee芯片CC2430外接天线的问题

麻烦问一下~ 如果我用cc2430芯片开发,涉及到天线的部分是不是需要高频设计? 有没有现成的天线不需要我高频设计的?…

查看全部问答>

两个C8051f04x芯片的串口uart的通讯问题,请高手帮忙,我没啥分,只能感谢你了。。

这是我毕业设计的一部分,目前只是要求能有单片机a向b发送一个字节即可,剩下的就能整明白了,但是我的单片机b怎么也收不到信息呀。发送端只是发送一个字节,接受端节收到这个字节后将把字节显示在LCD1602上,程序源代码如下:(我现在不明白为什么 ...…

查看全部问答>

求助向中文CE5.0的中文目录中添加文件的问题

我想在ce5.0的windows\\programs目录下添加一个快捷方式文件, 但是我的是中文系统,所以\"windows\\programs\"变成了\"windows\\程序目录\"了,我在platform.dat中指定目录为Directory(\"windows\\programs\")或者Directory(\"windows\\程序目录\" ...…

查看全部问答>

用51做如下功能么?

只需要用小键盘输入0000~9999任意数字,然后中间用.隔开,然后保存好,保存大概最大要50个左右,显示用LED,输入好后可以用USB跟电脑传输数据....可行么? 如果我需要把保存的数字用TXT文件保存是否是需要用到什么样的嵌入系统?这样的话需要用到什么芯片 ...…

查看全部问答>

AD5231怎么用啊?

最好有引脚描述…

查看全部问答>

上传这几天的收获——lm3s8962

前后花了大概1周的时间把论坛的LM3S8962 EVALUATION BOARD熟悉了一下。这个片子还是有些独到之处的,比如简洁的外设架构、可设置的GPIO驱动能力、大容量存储、包括简练的库函数风格(这个个人很喜欢)等,但也发现也很多明显的不足: 1、首当其冲 ...…

查看全部问答>

【MSP430共享】msp430F149简单数控直流电源

msp430F149简单数控直流电源  想学习低功耗电源的可以下过去看看…

查看全部问答>