第一层 : 我要入门
学习第一层要达到的目的就是可以用C语言写简单的逻辑控制,如闪烁LED,简单数码管显示,驱动一些简单的外设。只要是单片机感兴趣的初学者,喜欢动手实践的人,两周就可以做到这些要求,熟练谈不上,只能说是基本会用。
基本会用以后就可以开始做一些简单的例程修改。在做扫描按键时候,检测按下然后做一个延时20ms 的动作再次检测按下,然后得到某个信号的反馈。通过一系列的案例修改让自己更加的了解单片机编程,千万别修改了一个就认为自己会了,然后就放下去弄别的东西,熟能生巧是适用于每一个行业的。

对于大多数电类专业学生来说,除了参加电赛的同学,很多人在毕业的时候,可能还没有做完这个级别的事情。
第二层 我学的真的有用吗
把所有的例程玩遍以后,我们很自然的就会产生一个想法,自己现在手上的这些程序有没有实用的价值。实际工程项目中会不会应用得上。于是我们就需要提升深度,利用单片机去做一些实际应用的小东西。由浅到深,从简单到复杂。开始积累自己的项目经验。
第三层 代码的打磨
在单片机中,代码可以看做就是一个人的门面,一个好的程序员要养成良好的代码规范,因为以后你始终是要去工作的,你的代码到时就不止你一个人看,规范的代码大家看起来就一目了然,可以指出你的不足,给出你不错的建议。
我们在做项目的同时也要多看看一些优质的代码,虽然这个过程肯定很痛苦,但是这是代码提升一个必经的过程,到第三层我们已经算得上单片机小成,求职方面基本上已经不成问题。
第四层 状态,
掌握了前面三层的知识,只要我们不做涉及复杂算法的程序,基本上我们都能搞定了。我们可以学一下深一点的内容,如何有效区分系统中的状态,利用状态来进行迁移。部分的开发者觉得通用结构好。我个人认为,不同的应用就做不同的规划。对于从事单片机程序开发来说,几乎不会遇到一摸一样的项目。而对于可移植性而言,能够做到函数级别的复用基本上就已经可以了。
第五层 时间
时间具有准确、模糊、可丢失的特性,这三个特性是根据应用时间的不同角度来描述的。
准确性应用在精确地定时、计时的场合,它是个强实时的概念。
模糊性应用在通常需要稳定计时的场合,它追求的是长时间的稳定性,而忽略定时每刻发生的时刻,就像显示日期时间。
可丢失性是非重要的计时,它只要求阶段性时间符合而不要求一定时间到达就一定发生,比如LED闪烁的时间控制、倒计时执行某些功能性操作,通常是使用时间系统的时间发生标志。
同时在这一层如果能够将WINDOWS程序设计中的一些优秀思想利用起来,那就是锦上添花。
第六层 丰富你的视界
要设计简单易用同时好看的人机接口非常不容易。而且对于简单单色点阵液晶的操作,能够做到显示界面非常好看,同时程序结构清晰,非常不容易。大部分的开发者对于设计界面这件事,就像张飞绣花似的。太痛苦了。
第七层 协议
这一层主要熟悉各种各样的协议。这一点非常重要,因为单片机开发离不开各种协议,这个是和实际联系最为紧密的。工业现场的各种传感器,采集仪表通过什么方法把采集到的数据有效的发回给上位机,它们能够可靠的通信,软件层面上都离不开协议。
到了这一层我们已经算是精通单片机了。
第八层 模仿
单片机开发不可避免会遇到很多头疼的问题,例如如何分配CPU的时间。其实到了这个阶段我们要越来越灵活的用单片机,如果什么东西都要自己做,你会累死的。你想一想你要开车,不用什么都自己弄吧,买一辆现成的就可以了。单片机也是一样的先行者其实对很多的问题都研究透了。我们要学会运用现成的东西,把它融入到自己的程序里面。随着需求操作系统应运而生。如果学会了在操作系统上面写程序,你就再也回不到以前的那种编程方式。
第九层 穿着操作系统去裸奔
都已经上操作系统了,还要想着如何使用裸奔。这里就是把前面几层所提及到的一些思想与第八层进行融汇贯通。可以说,在这一层,需要对前面的每一层都非常的熟悉。并经过很多实际项目的磨练才可以达到。
第十层 无敌
能够达到这一层的应该算的上是屈指可数的高手之一了。在这一层上,除了前面九层的熟练应用之外。更牛的人应该是可以设计操作系统,设计gui之类的。
要达到这一点,需要非常多的基础知识,以及大量的专业知识以及实践,再加以10---20年的实战经验,以及一颗喜爱单片机的心。无招胜有招,就要非常熟悉MCU的特性,能够巧用各种各样的东西。这样的大牛,在国内数一数二的电子论坛里也不在少数。
单片机的本质只是一个工具。因此,与之配套的模拟电子,数字电子以及其它基础的专业课程非常的重要。万丈高楼平地起,没有这些专业基础课程的支撑。以后工作中寸步难行。
本期先分享到这里,想要进群学习单片机编程的同学可以私信我,回复“我要入门”,与我们一起成长,喜欢的可以点个赞关注我们!