很多想学单片机的人问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机,如何开始上手,如何开始熟练这个过程给大家讲讲。
先说说单片机,一般我们现在用的比较多的的mcs-51的单片机,它的资料比较多,用的人也很多,市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能寄存器,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。推荐一本书,就这一本就足够,书名是《新编mcs-51单片机应用设计》,是哈尔滨工业大学出版社出的的,作者是张毅刚。大概了解一下书上的内容,然后实践,这是非常关键的,如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、ad或da(原理一样)、液晶、蜂鸣器,这就差不多了。如果上面我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还省事。单片机已经无处不在,与我们生活更加相关并渗透入生活的方方面面。单片机的特点是小,也就是其集成的特性,其内部的结构是普通的计算机系统的简化。在增加一些外围电路之后,就能成为一个完整的系统。比如,我们常用的一类电子秤,内部就安装了一块单片机,再加上传感器、显示器和一些附加电路,就形成了一个应用系统。所以单片机的可扩展性是相当好的。又比如k85这样的电脑中频电疗仪,能够从病人身上获取数据,然后根据现有的算法从几种治疗处方中选择,而在每一种处方中还能够根据病人的病情而改变中频和波形及输出电流强度。这样可以看出单片机本身也具有和普通计算机类似的强大的处理,可以增加复杂的算法,获得很强的数据处理能力。单片机也可以应用在电脑缝纫机上,这样单片机可以替代很多机械部分,还能提供很多老式的缝纫机无法实现的图案。所以单片机在工业中的应用,极大地提高了工业设备的智能化,提高了处理能力和处理效率,而且无需占用很大的空间和复杂的设备。
在错误的道路上日夜兼程,最终也无法成功。因此,方法和思路绝对是第一重要的。一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇。但是,今天在这里我可以很负责任的告诉你,本章节讲到的学习单片机的方法,都是我们学习单片机的无数经验和教训总结出来的瑰宝。因为我们披荆斩棘,开辟了道路,所以可以告诉你路在何方;也因为我们摸过烧红的铁块,烫了手,所以可以把教训告诉你。希望各位都能站在我们的肩膀上,成为巨人。
1.1学什么单片机
单片机的型号那么多,如何选取一款合适的进行学习?如果身边有比较便利的学习单片机的条件,有什么条件就学习什么型号。比如,你所在的公司刚好用到某个型号单片机,那么就方便多了。开发板不用购买,直接用公司现成的板子,指导老师到处是,公司的工程师,只要你耐心虚心的不耻上问,相信他们都会帮你解答问题。如果你跟着学习的导师,正在使用某个型号开发产品,那么同样的道理,你也会有得天独厚的优势,直接跟着学就行了。其实单片机型号虽然多,但是用法大同小异,学会一种,再上手其他的就很快了。
如果你这些条件都没有,那就跟着我学吧,我建议你学习51单片机。为什么呢?现在单片机种类和型号非常多,每个型号都有一定的市场份额,但是哪个型号也没有早期51单片机那般的风光和火爆,虽然现在地位不是那么高了,但是因为51单片机资料非常多,大家学起来有很多可以参考的东西,所以上手肯定比其他型号的要快一些。如果你学习稍微偏门的单片机,可能一个简单的软件问题就要折腾你好长时间,不仅仅浪费了你的学习时间,更重要的是打击你学习单片机的信心。
那是不是我们每个单片机都要学习一遍呢?答案当然是否定的。大家跟着我来学习51单片机,必须得跟着学会举一反三和融会贯通的能力。单片机型号那么多,挨个学下来估计头发白了也学不完,所以大家跟着我学51单片机,不能仅仅当做51来学习,更重要的是要当做单片机来学,要通过我们的这个教程,把所有的单片机的内部资源都搞清楚弄明白,每个内部模块的用法理解透彻,这样当你遇到一个从没有用过的单片机,也就知道如何下手去应用开发了。
1.2如何学习单片机
前边提到过,单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。
学习单片机的要领就是:在实践中成长,indoingwelearn!
学射箭,你得去拉弓,整天只摆造型肯定不行;学游泳,你得下水扑腾,整天在岸上做模仿活动不行;学开车,你得坐车上去开,坐沙发上肯定学不会。同样的道理,学单片机,整天盯着单片机看肯定不行,你也必须得亲自动手去练。
没有不下水就学会游泳成为游泳健将的,没有不到车上练就能成为赛车手的,这点大家都清楚,可为什么总是那么多人学单片机的时候,总是要抱着一本书看呢。第一,我们小学中学甚至大学的学习模式都是如此,学什么东西主要都是靠看书;第二,很多人想实践不太清楚该怎么去实践。
不是不让大家看书,而是看了一点以后,要马上去实践验证,然后再回头结合实践的结果,理解书上的内容。从这个地方,大家要得出一个结论来,就是在学实际技术过程中,和应付考试不同,书上的内容不需要你去硬性记忆,书是用来查的,不是用来记忆的。遇到问题,你学会翻书,知道该去哪里找,找到相关知识点,分析明白,领悟透彻即可,包括咱这本书也是一样,大家先看完一节课,然后马上就把这节课相应的实验做了,做实验的过程中,哪里有不懂的问题,随时翻阅书籍查找,再实验,再查找,反反复复的过程就可以把本节课的内容掌握。
下面,就是我总结的跟着我学习单片机的四个步骤。
第一步,鹦鹉学舌。
刚出生的孩子叫“爸爸”“妈妈”的时候,他甚至不知道“爸爸”“妈妈”是什么意思,更不会理解这些声音是什么意思,但是我们带着孩子见到他爸爸就让他喊“爸爸”,见到妈妈就让他喊“妈妈”,见到爷爷就喊“爷爷”……慢慢的你会发现,次数多了,孩子就知道谁是爸爸,谁是妈妈,谁是爷爷,谁是奶奶了。
大家刚开始接触单片机的时候,也属于单片机行业的新生儿。单片机的样子,单片机外围的各种器件,单片机内部的各种结构,单片机用c语言的编程方法,初学者可能都没有见过。没关系,有些概念和方法你不理解也没有关系,甚至不需要你理解,你只需要跟着我去鹦鹉学舌式学习,第一遍学习某一节课的内容时,对于程序,大家就可以完全跟着抄下来,甚至抄两三遍,过一段你会发现,好多东西你也认识了,好多概念你慢慢的也理解清楚了,你也能大概看懂别人的小程序了,切忌觉得自己看会了,而简单复制粘贴。
第二步,照葫芦画瓢。
很多同学学习的时候喜欢看,看我做的视频,看我写的程序,甚至看别人的程序,都能看懂,觉得自己就会了,等到自己写程序的时候,感觉就是老鼠啃天,不知道从哪里下手了,这是初学者很容易犯的“眼高手低”这样一个毛病,所以第二步的内容就非常重要了。
我的要求是,每一位同学,在学完了当前课的内容,把第一步顺利完成以后,然后关掉视频教程,关掉源代码,自己通过看电路图和查找非源代码的其他任何资料,把当节课我写的程序代码重新默写出来,边写边多少理解那么一点点,不是纯粹的背诵,应该说是背诵加理解的结合体。甚至学过几节课以后,可以回头把前边曾经这样实现过的课程,再按照这种方法做一遍。千万不要认为这一步没必要,这一步是你能否学会单片机的一个关键步骤,在学完本教程之前,每一课内容都要这样做,如果每一个程序你都能够完美的完成,那么可以说,当节课的内容,百分之七八十你已经掌握了。
第三步,他山之石可以攻玉。
单片机技术的最大特点就是可以通过修改程序来实现不同的功能,因此举一反三的能力就必不可少了。每一节课的例程后边,我一般都会布置一两个作业,大家尽量去独立完成这个作业。在完成这个作业的过程中,都可以参考我的程序思路,在这个基础上通过动脑思考去构建你自己的程序框架,最终将程序完成。
在我们工程师实际产品研发的时候,很多种情况下也是如此。比如一个产品,我们如果从0开始着手的话,可能会走很多弯路,所以我们通常的做法是寻找购买同类几款产品,然后先研究他们的各自优缺点,学习他们的长处,然后在同类产品基础上在来设计我们的产品,这就是他山之石可以攻玉。
初学者在学习的时候,往往遇到的问题