很多电子爱好者都会学习单片机,在学之前会感觉单片机好神秘的样子,其实说白了单片机就是可以去自动的实现你的想法的一块芯片,那在实现你想法的时候就需要外部的一些电路啊,机械结构啊(统称外设)等等的作为辅助来完成。学单片机就是把你的想法告诉单片机芯片,怎么告诉它呢?
我们人类懂的是人类的语言(汉字),单片机它懂的是机器语言。人通过学习可以懂英语,德语,还可以学懂C语言,汇编语言。怎么用这些人类学会的语言转换为单片机懂的机器语言呢,这就是学习单片机的核心部分----编程。编程的工具就是开发环境,说白了就是个写代码的软件,由软件来把我们人类的语言翻译为机器语言给单片机识别。现在我们推荐大家还是学C语言,优点就不说了,百度可以找到一大堆。今天的主题就是我们如何来学这个C语言,在此特指单片机的C语言啊,更准确的说是如何来学习单片机这门手艺?
回到主题,小代在此呢总结了学习单片机的六个步骤,这几个步骤是小代自己觉得这样说比较好,可能也不全对,大家看看就好。
一,初步了解及选型
在学单片机之前,我们首先得去了解下,什么是单片机,它可以干些什么,有些什么类型和型号。有很多同学在群里问问题时就说我们这程序调不通,有大神看看吗?这样的问题神仙都没法给你看,鬼知道你的程序是什么程序啊,程序猿也不是万能的,他会的也只能是一方面,全部程序都会的程序猿也没多少水平。说远了,继续回来,我们学习单片机呢,小代推荐还是得有个自己的开发板,这个开发板不要多漂亮,适用就好,可以自己用洞洞板焊接,可以TB买,可以招师哥师姐买个二手的,不要多少外设,主要看单片机主控芯片的资源。当你对单片机又大概的了解后,自己就会选择开发板了,当你学完基础后,你会发现自己做一块发开板那才是最实用的,此时你会发现开始买开发板时候花的几百大洋就是白花。最后说一点,开发板一定要有视频教程和代码例程,而且教程和例程必须和板子配套,初学者连电阻电容都分不清,资料不配套还要这里换那里的,你学着很吃力,打击积极性很厉害的。对初学者来说,小代还是推荐STC的51单片机,现在的15W系列是比较强大的,一般的设计项目都能够完成,不要再去学什么STC89/90的爷爷辈的芯片了,STC官方都放弃了的芯片。TB上还有多少黑心商家用来忽悠初学者。选STC的一个最大的好处就是官方资料全部都有中文的,这是英语不好的小伙伴的福音啊。
二,复制粘贴
有了之前的初步了解,再有了自己的开发板和教程。现在我们就开始学习吧。这里小代叫“复制粘贴”,就真的是复制粘贴。这个过程是你学会用编译软件的一个过程,学习代码知识,C语言基础的一个过程。具体怎么操作,下面慢慢说,第一、学会下载程序到单片机,这里需要下载器和配套软件。现在好多芯片都可以直接用串口下载了,直接一个USB转串口就可以完成,需要在线调试的除外。直接把例程下载进单片机去看效果,也算是测试开发板吧,每个都下载进去玩玩,玩不坏的。在此再说一点,选择开发板,最好是所有接口都是活动的,这样你在学单片机编程的过程中还能学到电路设计知识。下载完例程后该真正的复制粘贴了,自己新建工程,完了复制例程进来编译下载,完了再修改程序里的参数,再编译,再下载测试。有些参数是可以修改了看到实际的效果变化的,有些参数修改后可能导致程序直接无法运行,此时就需要我们思考了,为什么这个参数可以改,结合修改后的测试效果,分析此参数是干什么用的;再看不能修改的参数,为什么不能修改。到此时你应该能基本读懂例程了,用的什么语句,某个函数是做什么用的。完成这些,那你此阶段算是过关了。
三,依葫芦画瓢
到了这个阶段,你会对单片机编程有个初步的了解,接下来就是看着例程,自己一字一句的敲进代码去,不要复制粘贴了,就算你照搬例程的代码都可以,敲完再编译下载,看能否和例程一样,到这会有很大一部分同学是编译不过的,此时你还调试程序了,结合软件的提示,找到问题并解决。此时的问题大多是大小写问题,关键字问题和一些简单的拼写错误。当你解决了这些问题后会有很大的成就感的。
到此,此步还没完,接下来你该做的是修改程序的写法,判断语句,循环语句,分支语句,单片机编程不在乎这几种语句。比如例程用for语句写,那你用while语句写,用if语句写,只要实现了功能就行。把基础的单片机资源都这样写一遍,你的编程能力会有质的飞跃。
四,独立行走
到此阶段,说明你基本入门了,步入正轨了,这时你学起来会轻松很多。独立行走,这就是说从此你要脱离例程了,什么代码都要你自己写了,不能再复制了,不能再看着例程了,要自己走了。此时你写的代码不能太简单了,不能再去写上一阶段就能完成的程序了,可以自己写点综合性的实验了,比如按键控制流水灯,秒表,时钟等。
五,跌倒再爬起
这个阶段其实是上一个阶段都后续问题。在你“独立行走”的过程中,肯定会“跌倒”。自己写的代码编译不过,或者是几个简单的程序合在一起后就不能得到想要的效果,这些都是此阶段遇到的问题。遇到这些问题时,切勿急躁,要有耐性,你第一次“独立行走”“跌倒”那是正常的,可能一个问题几天都解决不了。这个时候可以到论坛,百度,Q群里去寻找帮助,我们的Q群:300384358,欢迎大家进来交流。在此提醒大家,提问也是一门学问,在提问之前,你要对你的问题有思考,你是在用什么芯片来做什么?现在的现象是什么?遇到的问题是什么?这样大神也好,草鸟也好只要是感兴趣的都会和你讨论分析下,其实这个时候大多是思维的固定模式,局外人可能一看就找到问题。切记在群里或者论坛里复制粘贴大段的代码,这样的代码99%的人不会去看,再说程序调试是需要软件和硬件结合调试的,好多编译不过的程序软件都会有提示,一般都能找到问题。通过这些方法后解决了一个问题,那你的综合素质又是一次质的飞跃。这样的问题会在你每次自己写综合性程序里遇到,“跌倒”了就自己在别人的搀扶下站起来,那你就真的会自己走了。
六,飞升上神
到这个阶段,你离做大神已经不远了。差的只是一点经验而已。到这里,你可以写大型的代码了,可以自己设计个心怡的小礼物送给女神了,女神会被秒杀的。这里说到的设计,那是需要你从硬件电路设计开始,到板子的焊接制作,程序的编写及调试,最后完成自己预想的功能,或者可以做更多的功能上去。多做这样的东西,拿下心怡的女神不在话下,自己也会轻松飞升上神,这样一举两得的事,何乐而不为呢。
总结一下,今天小代一发不可收拾的写了这么多,全部原创。网络上有好多“十天学会单片机”,“一个月玩转单片机”之类的教程,好多初学者急以求成的就去买了他们的板子,自然销量很不错。卖家给你几十G的资料下载地址,更有周到的刻录成光盘邮寄给你。别的我不说,只想问一句,这么多资料你看了多少,当你看到不懂的地方你找售后,有几个会给你解答的,说白了这些售后都是不懂技术的,资料那可能是几年前就整理好的了,你真找到了代码的原作者他也不记得到底写了些什么,思路是什么,同样解答不了你的问题。
单片机是门技术活,没有捷径可走,唯有一步一步来,学到的才是真功夫。最后说一句不要听信谣言,几天能学会单片机。什么叫学会?会下载程序?会复制粘贴?会看例程?还是真正的会自己写代码,设计电路?