第一步:基础理论知识学习
基础理论知识包括模拟电路、数字电路和C语言知识。模拟电路和数字电路属于具象学科,要把它学好还得费点精神。在你学习单片机之前,觉得模拟电路和数字电路基础不好的话,不要急着学习单片机,应该先回顾所学过的模拟电路和数字电路知识,为学习单片机加大基础。
否则,你的单片机学习之路除了会很艰辛和漫长,还可能半途而废。笔者一直觉得,扎实的电子技术基础是学好单片机的关键,直接影响单片机学习入门的快慢。
有些朋友认为单片机很难,越学越复杂,最后学不下去了。有的朋友看书时虽然明白了,可是动起手来却一塌糊涂,究其原因就是电子技术基础没有打好,首先被表面知识给困扰了。
单片机属于数字电路,其概念、术语、硬件结构和原理都源自数字电路,如果数字电路基础扎实,对复杂的单片机硬件结构和原理能够容易理解,就能轻松地迈开学习的第一步,自信心也会树立上去。
相反,基础不好,这个看不懂那种也弄不明白,越学问题越多,越学越没有信心。如果你认为单片机很难,那就应当先放下单片机教材,去重温数字电路,搞清楚触发器、寄存器、门电路、COMS电路、时序逻辑和时序图、进制转换等理论知识。理解了这种知识以后再去瞧瞧单片机的结构和原理,我想你会大彻大悟,信心倍增。
模拟电路是电子技术最基础的学科,她让你晓得哪些是阻值、电容、电感、二极管、三极管、场效应管、放大器等等以及它们的工作原理和在电路中的作用,这是学习电子技术必须把握的基础知识。
一般是先学习模拟电路再去学习数字电路。扎实的模拟电路基础除了让你容易读懂他人设计的电路,而且让你的设计的电路更可靠,提高产品质量。
C语言知识并不难,没有任何编程基础的人都可以学,在我看来,初中生、高中生、中专生、大学生都能学会。当然,数学基础好、逻辑思维好的人学上去相对轻松一些。
C语言须要把握的知识就这么3个条件判定句子、3个循环句子、3个跳转句子和1个开关句子。别小看这10个句子,用她们组合产生的逻辑要多复杂有多复杂。学习时要一条句子一条句子的学,学一条活用一条,全部学过用过这种关键句子后,相信你的C基础构建了。
当基础打好之后,你会感觉到单片机不再难学了,而且越学越起劲。当单片机乖乖的根据你的逻辑思维和算法去执行指令,实现预期控制疗效的时侯,成就感会让你信心爆棚、夜以续日、废寝忘食的投入到单片机的世界里。可以这么说,扎实的电子技术基础和C语言基础能提高学习单片机信心,较快把握单片机技术。
第二步:单片机实践
这是真正学习单片机的过程,既让人激动又让人疲倦,既让人无奈又让人不服,既让人孤单又让人充实,既让人费解又让人惊讶,既有失落感又有成就感。
其中的酸甜苦辣只有学过的人深有感悟。思想上要有勤奋学习的决心,硬件上要有一套完整的学习开发工具,软件上要重视理论和实践相结合。
1.有勤奋学习的决心
首先,明确学习目的。先认真回答两个问题:我学单片机来做哪些?需要多长时间把它学会?这是你学单片机的动力。没有动力,我想你坚持不了多久。
其次,端正学习态度。单片机学习过程是枯燥乏味、孤独孤寂的过程。要知道,学习知识没有捷径,只有循序渐进,脚踏实地,一步一个脚印,才能学到真功夫。
再次,要多动脑勤动手。单片机的学习具有很强的实践性,是一门很重视实际动手操作的技术学科。不动手实践你是学不会单片机的。最后,虚心交流。在单片机学习过程中每个人都会遇见无数不能解决的问题,需要你向有经验的过来人诚恳求教,否则,一味的自己埋首摸索会走许多弯路,浪费好多时间。
2.有一套完整的学习开发工具
学习单片机是须要成本的。必须有一台笔记本、一块单片机开发板(如果开发板不能直接下载程序代码的话还得须要一个编程器)、一套视频教程、一本单片机教材和一本C语言教材。
电脑是拿来编撰和编译程序,并将程序代码下载到单片机上;开发板拿来运行单片机程序,验证实际疗效;视频教程就是手把手教你单片机开发环境的使用、单片机编程和调试。
对于单片机初学者来说,视频教程必须看,要不然,哪怕把教材看了几遍,还是不知道怎么下手,尤其是高校里的单片机教材,学了以后,面对真正的单片机时可能还是束手无策;单片机教材和C语言教材是理论学习资料,备忘备查。不要为了节省成本不用开发板而光用Protur软件仿真调试,这和纸上谈兵没哪些区别。
3. 要重视理论和实践相结合
单片机C语言编程理论知识并不高深,光看书不动手也能明白。但在实际编程的时侯就没那么简单了。一个程序的产生除了须要有C语言知识,更多须要融入你个人的编程思路和算法。
编程思路和算法决定一个程序的好坏,是单片机编程的大问题,只有在实际动手编撰的时侯就会有真切的感受。一个程序能够根据你的意愿正常运行就要看你的思路和算法是否正确、合理。
如果程序不正常则要反复调试(检查、修改思路和算法),直到成功。这个过程历时、费脑、疲精神,意志不坚强者常常被撞倒在这儿半途而废。
学习编撰程序应当依照以下过程学习,效果会更好。看到解释器题目先试着构思自己的编程思路,然后再看教材或视频教程里的代码,研究人家的编程思路,注意与自己思路的差别;接下来就仿效人家的思路亲自动手编撰这个程序,领会其中每一条句子的作用;对有疑问的地方试着根据自己的思路更改程序,比较程序运行疗效,领会其中的奥妙。
每一个解释器都坚持依照这个过程学习,你很快会找到编程的觉得,取其精华去其糟粕,久而久之会产生你奇特的编程思想。当然,刚开始,看他人的程序源代码如同看天书一样,只要硬着头皮看,看到不懂的关键字和句子就翻书查阅、对照。只要能坚持出来,学习收获会事半功倍。
在实践过程中除了要学会他人的类库,还要在他人的程序上改进和拓展,让程序形成更强大的功能。同时,还要懂得通过查阅芯片数据指南(DATASHEET)里有关芯片命令和数据的读写时序来核实他人解释器的可靠性,如果你认为类库不可靠就把它更改过来,成为是你自己的程序。
不仅这般,自己应当常常找些项目来做,以巩固所学的知识和积累更多的经验。
第三步:单片机硬件设计
当编撰自己的程序信手拈来、阅读他人的程序才能发觉问题的时侯,说明你的单片机编程水平相当不错了。接下来就应当研究的硬件了。硬件设计包括电路原理设计和PCB板设计。学习做硬件要比学习做软件麻烦,成本更高,周期更长。
但是,学习单片机的最终目的是做产品开发----软件和硬件相结合产生完整的控制系统。所以,做硬件也是学习单片机技术的一个必学内容。
电路原理设计涉及到各类芯片的应用,而这种芯片外围电路的设计、典型应用电路和与单片机的联接等在芯片数据指南(DATASHEET)都能找到答案,前提是要看得懂全英语的数据指南。
否则,照搬他人的设计永远落在他人的旁边,你做的产品就没有创意。电子技术领域的第一手资料(DATASHEET)都是中文,从第一手资料里你所获得的知识可能是在教科书、网络文档和课外读物等所没有的知识。
虽然有些资料也都是在DATASHEET的基础上撰写的,但内容不全面,甚至存在翻译上的遗漏和错误。当然,阅读DATASHEET须要具备一定的英语阅读能力,这也是制约单片机学习者晋级的试金石。良好的英语阅读能力能让你在单片机技术知识的海洋里自由遨游。
做PCB板就比较简单了。只要懂得使用Protel软件或 AltimDesigner软件就没问题了。但要想做的板子布局美观、布线合理还得费一番工夫了。
娴熟的单片机C语言编程、会使用Protel软件或 AltimDesigner软件设计PCB板和具备一定的英语阅读能力,你就是一个遇强则强的单片机大神了。