0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

单片机的本质只是一个工具

电子工程技术 来源:电子工程技术 2020-06-08 16:45 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

第一层 : 我来了

处在这一层的典型是可以用C语言写简单的逻辑控制,如闪烁LED,简单数码管显示,简单外围模块驱动实验。一般对单片机感兴趣,经常动手实践的人,半年左右,可以练到此地步(针对没有接触过单片机的人而言)。此层最典型的示例就是,扫描按键时候,检测按下------延时20ms --再次检测按下----返回键值或等待释放。如果你是这样做的,或者正在这样做,毫无悬念,应该处于这个级别。对于95%的电类专业学生来说,毕业时候,远远低于这个级别,剩下的5%则依次分布在各层上。这也是为什么学单片机的人成千上万,而会用的人寥寥无几的原因。

第二层 真的打呀

步入这一层的典型标志就是开始思考自己所写的程序是否能够有一点实用价值。譬如应用在实际工程项目中。在这一层,应该开始思考如何让程序结构简单模块化,如何合理的利用CPU的时间。我曾经写过这一层的一点简单教程。对付这一层应该是绰绰有余了。

第三层 并肩作战,时间,说爱你不容易

这一层是建立在第二层的基础上面。从第二层跨越到这一层,需要很多代码行的积累。在这一层,你对系统中的各个模块应该能够很好的区分。同时对于时间的应用安排更加合理。在这一层,同时也应该考虑时间驱动的设计模式。如何让CPU更有效率的利用起来,需要长时间的积累,并非看,想就可以弄明白,而是不断的实践。

第四层 状态,你在哪里

这一层同样建立在第三层基础之上。掌握了以上三层,只要基本不涉及复杂算法的程序,可以组织小规模的程序的编写了。在这个时候,如何有效区分系统中的状态,利用状态来进行迁移,变得尤为重要。有人说通用结构好。反而我认为,针对特定应用来规划更优秀。对于单片机程序而言,几乎没有能够一摸一样的项目。而对于可移植性而言,能够做到函数级别的复用,已经非常难能可贵了。

第五层 时间,还是时间

时间具备精确性、模糊性、可丢失性,这三个特性是从应用时间的不同角度来描述的。精确性应用在精确地定时、计时的场合,它是个强实时的概念,比如测量频率。模糊性应用在需要稳定计时的场合,它追求的是长时间的稳定性,而忽略定时每刻发生的时刻,比如显示日期时间。可丢失性是非重要的计时,它只要求阶段性时间符合而不要求一定时间到达就必定发生,比如LED闪烁的时间控制、倒计时执行某些功能性操作,通常是使用时间系统的时间发生标志。同时在这一层如果能够将WINDOWS程序设计中的一些优秀思想利用起来,则非常好。能够领悟到这一层的,在我所知道的前辈高手中少之又少。

第六层 丰富你的视界

这一层是我自己安排的位置。相比前面几层而言,我觉得它更为重要。写单片机程序,什么最痛苦,当然是做界面最痛苦。一个好的产品,离不开好的UI。在这里,你需要设计简单易用同时好看的人机接口非常不容易。而且对于简单单色点阵液晶的操作,能够做到显示界面非常好看,同时程序结构清晰,非常不容易。很多人都说,设计界面,就像绣花似的。太痛苦了。我一直在折腾,现在还没有一个定论,到底是通用的结构好,还是针对特定用途还设计好。按照我在第四层中的说法,这里应该根据特定用途来规划更好些。

第七层 我们说好的

这一层主要是各种各样的协议的熟悉。非常重要,因为这个是和实际联系最为紧密的。工业现场的各种传感器,采集仪表如何将采集到的数据有效的发回给上位机。两者能够可靠的通信,软件层面上都离不开它们。

第八层 别争了,让我来分配吧

还在为该如何分配CPU的时间嘛。其实不用苦恼。千万不要什么东西都重新自己造。你想开车,不用自己造轮子吧,买一个就可以了。前人其实对这些问题都研究过非常多了。因此操作系统应运而生。有人说,如果学会了在操作系统上面写程序,将绝不想再回到以前的那种编程方式,听起来非常诱人。

第九层 穿着操作系统去裸奔

什么,都用上操作系统了,还想着裸奔。太花心了吧。非也。这里是将前面几层所提及到的一些思想与第八层融汇贯通。可以说,在这一层,需要对前面的每一层都非常的熟悉。并经过很多实际项目的磨练方能有所体会。

第十层 无招胜有招

能够达到这一层的应该算的上是屈指可数的高手之一了。在这一层上,除了前面九层的熟练应用之外。更牛的人应该是可以设计操作系统,设计gui之类的。要达到这一点,需要非常多的基础知识,以及大量的专业知识以及实践,再加以10---20年的实战经验,以及一颗不沉寂的心。在这里,无招胜有招,非常熟悉MCU的特性,能够利用这种各样的技巧。这样的高人,在国内数一数二的电子论坛里也不在少数。

写在最后

单片机的本质只是一个工具。因此,更为重要的是模拟电子数字电子以及其它基础的专业课程。很多人都说大学学的东西没有用,其实这个才是最大的谬论。万丈高楼平地起,没有这些专业基础课程的支撑。以后工作中进步非常缓慢。道理很简单。学的东西都是建立在以前的基础课程上面的。如果一个连三极管的放大电路都不会分析的人,我不相信他可以设计出优秀的电路来。因此作为一个合格的电子工程师,除了掌握广泛的专业知识技能外,时刻不能够停止学习的脚步。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45345

    浏览量

    663815
  • 程序设计
    +关注

    关注

    3

    文章

    263

    浏览量

    31562

原文标题:单片机程序设计有十层功力,你现在在哪一层?

文章出处:【微信号:EngicoolArabic,微信公众号:电子工程技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    文解析单片机晶振脚的原理

    晶振是重要元器件之,对于晶振,小编于往期晶振相关文章中有过诸多阐述。本文中,小编将对单片机晶振脚的原理加以解析,以帮助大家更好理解晶振。晶振电路需要210-30pF级别的电容作为起振用途
    的头像 发表于 11-21 15:37 3268次阅读
    <b class='flag-5'>一</b>文解析<b class='flag-5'>单片机</b>晶振脚的原理

    单片机和嵌入式,到底是什么关系?

    很多人初次接触嵌入式开发时,都会听到句话:“嵌入式其实就是单片机。”可当你真正开始学习时,会发现嵌入式和单片机虽然经常“捆绑”在起提,但它们好像又不是
    的头像 发表于 11-14 10:28 606次阅读
    <b class='flag-5'>单片机</b>和嵌入式,到底是什么关系?

    单片机承载科技与工程思维的核心平台

    ,还是工业自动化、嵌入式系统,单片机都扮演着不可或缺的角色。它不仅仅是芯片,而是承载着技术与工程思维的核心平台,其重要性不言而喻。 单片机
    的头像 发表于 09-29 01:07 378次阅读

    什么单片机比较耐用

    凯星科技有限公司在多年的单片机应用开发中,对各类单片机的耐用性有着深入了解,通过为拓邦、朗科、安徽龙多等客户提供方案,积累了丰富的选型与优化经验。 影响单片机耐用性的核心因素 单片机
    的头像 发表于 07-31 13:48 563次阅读

    怎么测单片机系统频率

    ,各有其特点和操作要点。 示波器测量法 示波器是测量单片机系统频率的常用工具,其原理是通过捕捉单片机输出的周期性信号,根据信号的周期计算频率。 操作步骤 首先,确定单片机的时钟输出引脚
    的头像 发表于 07-25 11:39 489次阅读

    单片机怎么驱动电机?

    在各类自动化设备和智能装置中,电机是重要的执行部件,而单片机作为控制核心,需要通过特定的方式驱动电机运转。单片机驱动电机并非直接连接即可,而是要根据电机类型和功率,搭配合适的驱动电路,才能实现稳定
    的头像 发表于 07-25 09:31 448次阅读

    单片机怎么烧程序

    单片机烧程序是将编写好的程序代码写入单片机内部存储单元,让单片机按照预设逻辑工作的过程,是单片机应用开发中不可或缺的环节。无论是简单的灯光控制程序,还是复杂的工业控制算法,都需要通过烧
    的头像 发表于 07-23 11:47 664次阅读

    51单片机笔记(建议收藏!)

    +外设”的结构,外设多,单片机就复杂些,总线位数高,运行就快些。本质上还逃不出这个架构。对于设计人员编程来说,操作外设实际上就是读写各种特殊功能寄存器,传输数据就是读写总线,相应外设就是处理中断
    发表于 05-21 17:24

    瑞萨RA8系列教程 | 基于 Keil 开发 RA8单片机

    本文结合瑞萨Cortext-M85单片机RA8D1、Keil MDK,以及瑞萨自家的代码初始化工具(Smart Configurator)给大家描述下,快速在Keil MDK上点亮Cortext-M85
    的头像 发表于 04-22 17:41 1069次阅读
    瑞萨RA8系列教程 | 基于 Keil 开发 RA8<b class='flag-5'>单片机</b>

    嵌入式和单片机的区别?文简单明了的给你讲透两者的技术本质

    上周有做智能硬件创业的朋友问我:"我们产品用的是STM32单片机,但方案商总说要做嵌入式系统,这两者到底有啥区别?"这个问题其实戳中了大多数电子工程师的认知盲区。作为深耕物联网
    的头像 发表于 04-21 16:10 2192次阅读
    嵌入式和<b class='flag-5'>单片机</b>的区别?<b class='flag-5'>一</b>文简单明了的给你讲透两者的技术<b class='flag-5'>本质</b>!

    单片机与存储器的那些事

    单片机与存储器的关系像什么?单片机里的存储都是样的吗?为什么有的单片机既有EEPROM又有Flash?
    的头像 发表于 04-10 10:06 1338次阅读
    扒<b class='flag-5'>一</b>扒<b class='flag-5'>单片机</b>与存储器的那些事

    单片机科普总结,建议收藏!

    来说,单片机可能是既熟悉又陌生的概念。熟悉,是因为我们在日常生活中经常接触到单片机控制的设备,比如微波炉、空调、智能手表;陌生,则是因为单片机
    的头像 发表于 04-07 11:58 4504次阅读
    <b class='flag-5'>单片机</b>科普总结,建议收藏!

    晶振受到电磁干扰对单片机的影响

    单片机可以正常运行的因素就是晶振的稳定性。在工作过程中,晶振可能会受到电磁干扰的影响,导致单片机发生故障,甚至出现死机的情况。
    的头像 发表于 03-20 18:01 1005次阅读

    单片机Debug工具性能对比 单片机调试常用命令

    单片机(Microcontroller Unit, MCU)调试是嵌入式开发中的重要环节,它帮助开发者发现和修复代码中的错误,优化程序性能。不同的单片机和开发环境可能使用不同的调试
    的头像 发表于 12-19 09:56 2176次阅读

    单片机Debug与仿真区别

    单片机的开发是复杂的过程,涉及到硬件设计、软件开发和测试等多个环节。为了确保单片机能够按照预期工作,开发者需要使用Debug和仿真技术来检测和修正代码中的错误。 Debug(调试)
    的头像 发表于 12-19 09:47 1425次阅读