第1章怎样学习单片机
在过错的路途上日夜兼程,终究也无法成功,办法和思路必定是榜首重要的。一些学技能的同学,往往看到这类章节会直接跳过去,由于大多数相似章节都是言之无谓。可是,今日在这儿我能够很负责任的告知你,本章节讲到的学习单片机的办法,都是咱们学习单片机的许多阅历和经验总结出来的珍宝。由于咱们披荆斩棘,拓荒了路途,所以能够告知你路在何方;也由于咱们摸过烧红的铁块,烫了手,所以也能够告知你经验和价值是什么。期望各位都能站在咱们的膀子上,看得更远!
1.1学什么单片机
单片机的类型那么多,怎样选取一款适宜的进行学习?假如身边有比较现成的学习单片机的条件,有什么条件就学习什么类型。比方,你地点的公司刚好用到某个类型单片机,那么就便利多了。开发板不必购买,直接用公司现成的板子,辅导教师到处是,公司的工程师,只需你耐性谦虚的不耻上问,信任他们都乐意帮你回答问题。或许你跟着学习的导师,正在运用某个类型的单片机开发产品,那么相同的道理,你也会有得天独厚的优势,直接跟着学就行了。单片机类型尽管许多,看起来纷繁复杂,其实它们的根本原理、根本用法都是相通的,只需熟练把握其间一种,其它的都能够举一反三,快速上手了。
假如你这些条件都没有,那就跟着我学吧,我主张你学习51单片机。为什么呢?尽管现在单片机品种和类型十分多,每个类型都有必定的市场份额,可是哪个类型也没有前期51单片机那般风光和火爆,尽管现在位置不是那么高了,可是由于51单片机堆集的材料十分多,咱们学起来就会具有许多的参阅材料,所以上手必定比其他类型的要快一些。假如你学习略微偏门的单片机,或许一个简略的软件问题就要折腾你好长期,不仅仅浪费了你的学习时刻,更重要的是冲击了学习单片机的决心。
那么是不是每种单片机咱们都要学一遍呢?答案当然是否定的。咱们跟着我来学习51单片机,有必要得跟着学会举一反三和融会贯通的才能。单片机类型那么多,挨个学下来估量头发白了也学不完,所以咱们跟着我学51单片机,不能仅仅作为51来学习,更重要的是要作为“单片机”来学,要经过咱们的这个教程,把一切的单片机的内部资源都搞清楚弄了解,每个内部模块的用法了解透彻,这样当你遇到一个从没有用过的单片机,也就知道怎样下手去运用它进行开发了。
1.2怎样学习单片机
前边提到过,单片机是一门实用技能,咱们学习它现已不是为了敷衍考试了,我给咱们总结了单片机的学习办法是:一个办法,四个进程。
学习单片机的办法便是:在实践中生长,InDoingWeLearn!
学射箭,你得去拉弓,整天只摆造型必定不行;学游水,你得下水扑腾,整天在岸上做仿照活动不行;学开车,你得坐车上去开,坐沙发上必定学不会。相同的道理,学单片机,整天盯着单片机书看必定不行,你也有必要得亲主动手去练。
没有不下水就学会游水成为游水健将的,没有不到车上练就能成为赛车手的,这点咱们都清楚,可为什么那么多人学单片机的时分,总是只抱着一本书看呢。榜首,咱们小学中学乃至大学的学习形式都是如此,学什么东西首要都是靠看书,敷衍书面考试;第二,许多人想实践却不太清楚该怎样去实践。
遇到问题查下书比直接看书的作用要好过百倍。不是不让咱们看书,而是看了一点往后,要马上去实践验证,然后再回头结合实践的成果,了解书上的内容。从这个当地,咱们要得出一个定论来,便是在学实践技能的进程中,和敷衍考试不同,书上的内容不需求你去硬性回忆,书是用来查的,不是用来背的。
下面,便是我总结的跟着我学习单片机的四个进程。
榜首步:拾人牙慧。
刚出生的孩子叫“爸爸”“妈妈”的时分,他乃至不知道“爸爸”“妈妈”是什么意思,更不会了解这些声响是什么意思,可是咱们带着孩子见到他爸爸就让他喊“爸爸”,见到妈妈就让他喊“妈妈”,见到爷爷就喊“爷爷”……渐渐的你会发现,次数多了,孩子就知道谁是爸爸,谁是妈妈,谁是爷爷,谁是奶奶了。
咱们刚开始触摸单片机的时分,也归于单片机职业的新生儿。单片机的姿态,单片机外围的各种器材,单片机内部的各种结构,单片机运用C言语的编程办法,初学者或许都没有见过,脑子里全无概念。不要紧,有些概念和办法你不了解也没有联系,乃至不需求你去了解,你只需求跟着我去拾人牙慧式的学习,榜首遍学习某一节课的内容时,关于程序,咱们就能够彻底跟着抄下来,乃至抄两三遍,过一段你会发现,许多东西你也认识了,许多概念你也渐渐的了解清楚了,你也能大约看懂他人的小程序了,切忌觉得自己看会了,而简略复制粘贴。
第二步:照葫芦画瓢。
许多同学学习的时分喜爱看,看我做的视频,看我写的程序,乃至看他人的程序,都能看懂,觉得自己就会了,比及自己写程序的时分,感觉便是老鼠啃天,不知道从哪里下手了,这是初学者很简略犯的“眼高手低”的缺点,所以第二步的内容就十分重要了。
我的要求是,每一位同学,在学完了其时课的内容,把榜首步顺利完结往后,然后关掉视频教程,关掉源代码,自己经过看电路图和查找非源代码的其他任何材料,把当节课我写的程序代码从头默写出来,边写边多少了解那么一点点,不是朴实的背诵,应该说是背诵加了解的结合体。乃至学过几节课往后,能够回头把前边从前这样完结过的课程,再依照这种办法做一遍。千万不要认为这一步没必要,这一步是你能否真实学会单片机的一个要害,在学完本教程之前,每一课内容都要这样做,假如每一个程序你都能够完美的完结,那么能够说,当节课的内容,百分之七八十你现已把握了。
第三步:参阅之资,能够攻玉。
单片机技能的最大特色便是能够经过修正程序来完结不同的功用,因而举一反三的才能就必不行少了。每一节课的例程后边,我一般都会安置几个作业,咱们尽量去独立完结这个作业。在完结这个作业的进程中,都能够参阅我的程序思路,在这个根底上经过动脑考虑去构建你自己的程序结构,终究将程序完结。
在咱们工程师实践产品研制的时分,许多种情况下也是如此。比方一个产品,咱们假如从零起步的话,或许会走许多弯路,遭受许多前人已曾遭受过的波折,所以咱们一般的做法是寻觅购买几款同类产品,然后先研讨他们的各自优缺点,学习他们的利益,然后在同类产品根底上再来规划咱们自己的产品,这便是“参阅之资,能够攻玉”。
初学者在学习的时分,往往遇到的问题许多,你应该想到,你遇到的问题,或许长辈们早就遇到过了,所以遇到问题后,不要紧张,首要运用谷歌或许百度这些查找引擎在网上搜一下,要做什么新东西,先去网上找相关材料了解一下,不管是编程仍是硬件规划,多多参阅他人的东西,只需把他人的东西剖析了解了,自己用起来了,也就成为自己的常识了。
第四步:理论实践结合,温故知新。
当咱们把一切的课程都依照前边三步完结后,这个时分无妨再把书翻开,再看看书,经过了自己的实战阅历,再看书的时分,对许多常识点会有一种茅塞顿开的感觉。乃至视频教程、书本都能够重复看几遍,或许有的常识点其时学习的时分不了解,过了一段时刻,回过头来再学习的时分,一下就了解了。
1.3单片机学习的预备作业
榜首:满足的决心、恒心和耐性。
有同学问过我,单片机这门技能难不难。我觉得这个问题得从两个方面去剖析。
首要,咱们从战略上轻视它。那么多同学跟着教师学一段时刻就能够做出来小车,超声波测距,乃至做出来机器人,好像很拽的姿态。那他们又不是三头六臂,咱们也没有什么做不了的道理。实践上要说技能,其实便是一层窗户纸,外表看不透彻,感觉特别奥秘,实践只需你略微一尽力就能够捅破它,夸大点说,单片机在逻辑上的联系,只需小学的水平,简略的很。正所谓会者不难,难者不会,咱们不明白这个东西,看起来感觉很奥秘。所以咱们只需仔细结壮坚持学下去,必定能学好这么技能。
其次呢,咱们从战术上要注重它。你说单片机这东西,假如十天八天就学会了,那么这个技能还能值钱吗?我能够这样去表达,假如一个技能很简略就被学会,那么许多人都会的这个技能,必定也没什么出路和钱途。那终究多久能学会呢?我给咱们拟定的学习计划,依据每个人的根底不同,均匀每天要拿出2个小时以上的学习时刻,大约一到三个月能够入门。入门的概念是给你一个单片机开发使命,你最少知道要尽力的方向和解决问题的大约办法了。技能这东西,要害是坚持做下去,有恒心和耐性,假如长期不必的话,必定还会陌生。所以要想成为单片机高手,最少需求一年左右的单片机开发的历练才行。成为单片机高手的概念便是你自己能够从头依据自己的主意,去规划一个电路,依据需求的功用编写代码,做一个产品出来。
第二:教材和教程。
要学习单片机这门技能,杰出的教材和教程必不行少。单片机方面,咱们能够直接学习咱们这本《手把手教你学单片机——51单片机C语言开发》,咱们还精心制作了配套的《手把手教你学单片机》的视频教程。本着开源、同享的理念,咱们的视频教程都是免费敞开的,咱们能够到咱们的网站www.kingst.org找到下载链接。别的,由于咱们做单片机开发运用的是C言语,所以最好能再有一本纯C言语的教材,学到一些C言语的细节问题的时分,能够便利咱们查阅,或许你也能够直接把相关问题经过谷歌和百度查找一下,绝大部分情况下它们都会给你满足的答案的。
第三:电脑一台、单片机开发板一块。
电脑,是学习单片机必不行少的东西,由于编写程序,查阅材料都得用到,可是有句题外话说一下,不要把电脑当成游戏机或许影碟机,偶然玩玩游戏看看电影是能够的,劳逸结合,可是不行沉溺其间,不然还不如没有电脑。
单片机开发板,这也是有必要的。假如你还在上学,校园实验室一般会有开发板,能够考虑跟教师借一个,或许运用师兄师姐们用完的,这样能够省点钱。当然,假如身边有高手,比方教导教师,会单片机的师兄,在他们的辅导下做一个也能够,身边有人辅导的话,不明白的问题还能够问他们。假如这些条件都不具有,那么能够购买一个,先学习他人的板子规划思路,给自己往后规划电路板打下根底。在这儿就趁便引荐一下咱们的KST-51开发板,我不敢说咱们的规划是最好的,可是我能够很负责任的说,咱们的板子是出自阅历丰富的一线工程师之手,其间的规划都是依据实践项目开发的思路进行的,包括整体规划、电路规划、器材布局等等,能够为你往后的项目开发供给一个优质的参阅。别的一方面,由于咱们的教程是根据咱们的开发板做的,所以咱们配套来用的话能够节省时刻,进步学习功率。
当然,即便不购买咱们的开发板,你想学单片机,也仍是要有一块开发板的,不能总是用软件仿真,软件仿真是学不会单片机的。常常有同学过来问我,教师我用软件模仿的好用,做了硬件欠好用是什么原因。在这儿我提一下,假如你上课用这个软件仿真,欺骗教师敷衍考试是能够的,可是实践开发和仿真软件却不同很大,假如诚心想学好单片机这门技能,那我只能告知你,拿起烙铁焊电路,动手写程序,远离仿真软件,靠软件仿真永久学不到真实的技能。
1.4单片机开发软件环境建立
单片机开发,首要的两个软件一个是编程软件,一个是下载软件。编程软件咱们用KeiluVision4的51版别,也叫做KeilC51,不做过多介绍,先直接讲怎样装置。
1、首要预备KeiluVision4装置源文件,双击装置文件,弹出装置的欢迎界面,如图1-1所示。
图1-1Keil装置欢迎界面
2、点击“Next”按钮,弹出“LicenseAgreement”对话框,如图1-2所示。这儿显现的是装置答应协议,需求在“IagreetoallthetermsoftheprecedingLicenseAgreement”打勾。
图1-2“LicenseAgreement”对话框
3、点击“Next”按钮,弹出“FolderSelection”对话框,如图1-3所示。这儿能够设置装置途径,默许装置途径在“C:Keil”文件夹下。点击“Browse…”按钮,能够修正装置途径,这儿主张大家用默许的装置途径,假如你要修正,也有必要运用英文途径,不要运用包括有中文字符的途径。
图1-3“FolderSelection”对话框
4、点击“Next”按钮,弹出“CustomerInformation”对话框,如图1-4所示。咱们输入用户名、公司名称以及E-mail地址即可。
图1-4用户信息
5、单击“Next”,就会主动装置软件,如图1-5所示
图1-5装置进程
6、装置完结后,弹出来装置完结对话框,如图1-6所示,而且呈现几个选项,咱们刚开始把这几个选项的对号悉数去掉就能够了,先不必重视有什么作用。
图1-6装置完结
7、最终,点击“Finish”,Keil编程软件开发环境就这么装好了。
1.5Keil根本概略介绍
首要,咱们用Keil先翻开一个现成的工程,来认识一下Keil软件,如图1-7所示。
图1-7工程文件
从图1-7咱们能够很轻松的分辨出菜单栏、东西栏、工程管理区、程序代码区和信息输出窗口。这个是Keil4的英文版,网上有一些汉化版别的,但不主张运用。即便你的英语欠好,运用英文版别的软件也一点问题没有,刚开始咱们先跟着我去运用,总共没几个单词,不需求你去翻译,用几回你就记住怎样用了。由于往后做实践开发的时分,大多数软件都是英文版的,假如现在学习的时分一向用中文软件,将来一旦换了其它的英文软件就会慌了,所以从现在开始,咱们就渐渐的来了解英文软件,将来再用到其他英文软件的时分,就能够做到举一反三、轻车熟路了。
Keil软件菜单栏和东西栏的详细细化功用,都能够很便利的从网上查到,不需求回忆,随用随查即可。在这儿咱们只介绍一点,关于Keil软件里面的字体巨细和色彩设置。在菜单Edit–>Configuration–>Colors&Fonts里面,能够进行字体类型、色彩、巨细的设置,如图1-8所示。
图1-8字体设置(一)
由于咱们用的是C言语编程,所以咱们在Window栏中挑选8051:EditorCFiles,然后在右侧Element栏目里能够挑选要修正的内容,一般咱们平常用到的,仅仅其间几项罢了,比方:Text——一般文本、TextSelection——选中的文本、Number——数字、/*Comment*/——多行注释、//Comment——单行注释、Keyword——C言语要害字、String——字符串,Keil本身都是有默许设置的,能够直接运用默许设置,但假如你觉得不合你的口味,那就在这儿更改一下,改完后直接点OK看作用就能够了。
图1-9字体设置(二)
1.6答读者问
许多同学常常问我一些问题,有一些很有实践或普遍意义,所以我把有代表性的直接写出来给咱们参阅,让咱们了解这门技能,了解咱们这个职业。
1、单片机学完了能做什么?
单片机的运用十分广泛,电子、电气、主动化、通讯等范畴都有很多运用,至于能做什么,得看你将来做什么作业。好像电脑相同,电脑能够用来编程、PS图片、看电影、打游戏等等,你用电脑做什么是不必定的。可是把握好这门技能,最少能够让你学会一种东西,为将来从事电子、电气、通讯、主动化等范畴的作业做好预备。
2、学单片机的捷径是什么?
做技能有必要得脚结壮地,没有任何捷径可走!假如非要说有的话,那我只能告知你,拳不离手曲不离口,便是最好的捷径。我学习单片机的时分,每天早上8点半进入教师实验室,晚上9点半脱离实验室,从前创下接连3个月没有休息日的记载,假如你也能这样学的话,那很快就能够学好这门技能了。
3、学习单片机应该学习什么言语,有没有必要再学习汇编
相比较来说,汇编言语比较挨近单片机的底层,运用汇编言语有助于了解单片机内部结构。简略的程序,用汇编言语,程序功率也或许比较高,可是当程序容量到达几千上万行往后(这时也仅能算个不太小的项目,还远没到大项意图等级),汇编言语在安排结构、修正保护等方面就会成为你的噩梦了,此刻C言语就有不行代替的优势了。所以实践开发进程中,现在至少90%以上的工程师都在用C言语做单片机开发,只需在很低端的运用中或许是特殊要求的场合,才会用汇编言语开发,所以我主张咱们仍是用C言语开发比较好一些。
假如现在正好上学学到了汇编言语,我主张仔细学一下,学好了必定有益无害。可是现在假如说想直接快速学会单片机技能,那我就不主张去看汇编言语了,直接学C言语就能够了,那些单片机底层的结构什么的,也能够在日后的开发进程中渐渐了解。
4、学会单片机后能找什么样的作业
单片机是一个东西,和电脑有点相似但不彻底相同,咱们学会电脑,能够用来编程、能够用来画图、能够用来PS相片、能够用来看电影等等。学会单片机,能够用来做通讯技能、做主动控制技能等等,可是单片机本身来说仅仅是一个东西,你在用单片机的时分,渐渐触摸多了,会有一个运用方向,你不仅仅要会单片机,也得对这个运用方向了解,比方我个人从事过扩频通讯技能的算法研讨,那么我就要对扩频通讯了解,然后把这个技能用单片机完结出来,也得会用单片机。当然咱们也不必忧虑,找作业的时分公司对这个方向问题要求也不会很高,但多懂点的话,必定也会进步自己的竞争力。
5、学完了这个薪酬待遇怎样
关于技能来说,技能水平凹凸直接决议你的薪酬薪酬。技能假如学的欠好,那作业都找不到,更谈不上薪酬待遇了,而技能做的好的话,那薪酬就天然会很高。咱们并不狷介,咱们坦言自己需求足以安居乐业的薪资酬劳,可是我期望的是,一旦你决议从事技能,就不要把过多的精力重视在能挣多少钱上,而应该放在怎样进步本身的技能水平上,只需技能水平高,比许多人都凶猛,钱天然就找上门了。有一部印度的勉励电影叫做《三傻大闹宝莱坞》,我引荐做技能的都能够看看,里面有一句经典台词十分合适咱们技能人员:寻求杰出,成功就会在不经意间追上你!