单片机入门:单片机的选择和学习

单片机培训:单片机的选型

goto title1;

title1:emmm,开个玩笑,下面好好讲话。

正如大部分人所说的那边,学单片机亘古不变的起步就是学习51单片机。为何要从51开始学习呢,理由如下:

1、51单片机网上资料相当多,作为一个行业里已经被用烂,在学校里却有着不小受众的单片机,他拥有着及其丰富的资源。作为一款简易落后的单片机,毫无疑问,他大部分的坑都被前人踩过无数遍了,因为在遇到问题时,甚至都不用翻墙查阅外网资料,看两个百度搜索链接就把问题解决了。

2、51单片机入门的时候,平台搭建简易,代码容易实现和看懂。对于大部分初学者而言,C语言的基础约等于0,直接接触高级的单片机势必就要接触到厂家提供的函数包,里面丰富的函数定义、指针、引用、结构等等稍微看起来有点高级的语法,让初学者目瞪口呆,望而却步。

3、最重要的一个原因:便宜,入手价格20元左右的核心板就可以开始学习,开发板的话100块以内就能买一个很不错的板子了。

讲道理原因不是什么特别重要的东西,你只需要记得51单片机适合新手学习就OK了。当然了,有一定的编程能力并且对C语言有一定的了解的同学,想跳过51单片机,直接学习后面的32位的单片机,我觉得问题也不太大,只要需要付出更多的时间罢了。如果有一定的C语言基础和编程能力,强烈推荐学习STM32等Cortex---M系列的单片机,51只是对于C语言能力不足的妥协,毕竟51已经落后于时代潮流很久了,精不精通意义不大。但是是直接向上Cortex-A系列单片机的同学,我只想说:

单片机的学习

1、学习的方法

学习51单片机的方法一般都是通过书、文献类PDF或者视频。对于学习能力较差的同学,我推荐你跟着视频学习,视频讲解的十分细致,会告诉你哪里需要学,哪里跳过。但是对于大部分学生来说,我更推荐的是利用书或者是文献。买开发板的同学一般卖家都会给你一大堆资料,里面有对应的学习文献,对应他的章节进行学习即可。卖家给的资料如果质量很差甚至没有的同学,推荐大家看51行业的老大哥:郭天祥的《新概念51单片机C语言教程》,至于老大哥的板子并不推荐大家购买,老大哥的板子有点贵,所以不如大家在淘宝挑一个其他牌子的51单片机。

小结下,最普遍的学习方法就是对照着郭天祥的51单片机教程,买一个单片机,按照他的教程进行学习。在过程中会遇到板子和书不匹配带来的代码移植问题,但是我觉得都是非常小的问题,百度搜索几条链接就能解决。

2、重要信息的获取

学习51单片机最忌讳的就是按照高中的那套,将所有的内容记下来,一本书几百页,并不是所有内容对你都是有用的。学习单片机最需要思考的是:你需要掌握的内容是什么。单片机对于大部分人来说只是一个工具,就初学者而言并没有什么算法可言,就是功能的实现,所以有时候会用比理解要简单多,对于初学者而言,应该先学会用起来,然后慢慢的理解。

其次还要注意,不是书上所有的内容都是你需要去记忆的。就比如郭天祥书上的第一章,会讲很多的内容,但是大部分内容是只需要你了解,并不需要你去记忆的东西,比如:51单片机型号命名的原则、封装、引脚以及引脚功能之类的,这类内容你并不需要去记忆,当你需要的时候直接去翻阅书籍就OK了,而且也很少会被用到。你应该学习的是编程语言和功能实现的能力。

编程语言在单片机里面主要是指C语言,书很多,入个门没什么难度,功能实现而言在前面几章都是很容易实现的,但是后面难度上来了,往往容易让人萌生放弃的想法,其实讲道理,无论你学习什么都会遇到这种情况,在开始阶段很容易解决,越往后越耗费精力。

其实,每次你觉得来了一个比较大困难时,时候就是能力发生突变的关键点,因为你遇到了挑战你原本能力范围的困难,但一旦将困难啃下来,能力将发生一个飞跃。

至于功能实现的部分,主要指的是底层寄存器的配置。51单片机功能的实现都是通过底层寄存器来实现的,寄存器数量不多,也没必要记每个寄存器的功能和对应的位含义,可以自己整理成一个文档,当然也可以直接每次需要的时候翻书。寄存器的配置难度其实也不大,就是一些常规讨论,把对应寄存器位填写数据即可。

3、学习单片机的忌讳

忌讳一:疯狂看书不写代码者。不写代码的阶段各不相同,有的人一开始就不写代码,只是单纯的看书,觉得看懂了就和这本书就此别过,有的人在前面几次还会动手写写代码,随着渐渐代码量上来了,就不愿意动手写代码了。怕麻烦肯定学不好编程,理论要和实践并驾齐驱,就算是做理论研究的,也不可能脱离实际做科研。一般代码量小的同学,在遇到一个工程时,需要花费的时间是经常写这类代码的同学的几倍,甚至可能还解决不了问题,即使你觉得你会了。看了和理解了是一个层次,理解了和能写出来是另一个层次。难度系数自己实践下就知道了。

忌讳二:一瓶不响,半瓶晃荡。万不可学习了一星半点之后就自我满足、自我膨胀。从书上敲两行代码,就敢说自己会了,自己学的很棒棒。那么学习到什么程度算是学习的比较好呢。所有的功能配置会通过代码实现,可以自己独立编写小的工程。(网上还有一些51单片机的外包单,如果能做出来就算水平很高了,会写简单的驱动,可以实现4,5个功能集成的工程,也算可以了)

三、51单片机学习的本质

讲道理51单片机真的只是用来入个门,它只是一个工具。在学习51的过程中最重要的是提升代码的编程能力(主要是C语言的学习能力),其次是会配置寄存器,平台熟悉后,能够独立编写一些工程时,开始学习32位的单片机问题也不大。学习51单片机只是为了后面学习嵌入式打下一点基础,如果C语言基础过关,懂一点寄存器的知识,只需要大体了解下单片机是什么,就可以直接上32位的单片机。

四、结尾的XJB扯淡

随便谈谈人生,讲讲理想。单片机只是工具,只是加分项,并不是你的核心生产力。对单片机功能配置熟悉以后就很膨胀的话其实是一种很蠢的行为,因为只是实现了一些基础且没有太大意义的东西,这种东西人人简单学习后都会。问题多了解决的方法就多了,并不可能就只用一个工具打天下,用一块51就能掌控世界显然也是不现实的。编程的核心是算法,平台变了,解决问题的思想和逻辑却没有变,舍本逐末的去过分的炫耀平台使用的能力,还不如踏踏实实学点基础理论的知识。至于知识体系的问题,考虑到篇幅,就放到下次的推送里面讲吧。

最后一点建议,就是课内知识很重要,别为了获得解决问题的工具,放弃了解决问题的方法。即使你想做的和本专业无关,那就把相关专业的基础课学学好。


立即咨询有惊喜哦 !