粗算小弟我接触单片机已经有两年多了,从最初的MCS-51,到后来的AVR、MSP430,当然我还只算是一只入门不久的菜鸟,人外有人,牛人真的太多了。也常有同学问我单片机应该怎么学,我的回答都是两个字:实践。我觉得实践才能出真知,不实践是永远也学不会单片机的,这和你看一百道菜谱不下厨永远也做不出佳肴,看一百本游泳的书不下水永远也学不会游泳是一个道理。那么怎么去实践?这可能是初学者最关心的问题,网上类似的回答也很多,这都是老生常谈了,只要你是有心人,一搜一大把。
简单说一下学习单片机的步骤:
1.购买常用的工具(万用表,烙铁,烙铁架,松香,焊锡,螺丝刀,吸锡器,摄子)和电子元件(万能板,电阻,电容,发光二极管,整流桥,数码管,常用接插件等),先做个5V的直流电源(变压器/整流桥/7812/7805/电解电容若干,电容的极性可别反了),再从基本的发光二极管驱动电路开始,灌电流还是拉电流?限流电阻取多大?怎么计算的?你是不是发现,很多基本的知识你都不懂,甚至连元件的型号你都叫不出来。没有关系,多问人,论坛、QQ技术群里热心人还是有的。准备一个笔记本,有用的知识应该记下来。
2.用万能板搭建一个51的最小系统(当然要从51入手,资料太多了),点亮一个LED再说,接着是数码管、蜂鸣器,继电器,EEPROM,AD/DA,LCD,时钟芯片,数字温度计,红外遥控编解码等等,这里面三极管用的很普遍,有时用作放大,有时用开关,一定要理解清楚。看来要做的工作还真不少,这可不能急,一样一样来,谁让你想学到真本领。有条件买个开发板也很方便,若是能**DIY,也是趣味无穷。很多芯片是可以免费申请到的,最好申请的是美信公司的片子,我用的很多芯片都是从那申请的,例如:MAX1270、DS12C887、DS18B20、MAX518、MAX396、MAX7219、MAX145等,在此我是发自内心的感谢美信公司为我提供的免费午餐,确实要用的话就申请一下,只是好奇,或贪小便宜,那就别申请,别让人家小瞧了咱中国未来的电子工程师。当然这些芯片的datasheet都是英文的,所以,大学生朋友们,尽管我们是学电的,英文还是要好好学的。
3.单片机的编程,多数人先接触汇编,要学好单片机,汇编是要懂的,但最终你必须掌握C语言,C语言真的太强大、太方便了,其好处不用我多说了。IDE个人感觉最好的是Keil,在这推荐一下。刚开始当然是从跑马灯开始,网上有很多单片机实验的源代码,都是绝好的学习资料,好好消化一下,收获会很大。 “hello world”的串口通信例子应该尽早调通,在没有仿真器的情况下,串口就是最好的调试工具,一个高人曾指点我:拿到一个处理器,首先要做的就是打通串口。串口一通就好比一个习武之人打通了全身筋脉,再学其它武功就会易如反掌。定时器是单片机非常重要的资源,其使用方法一定要整清楚。高人说过,没有定时器的单片机不是单片机,事实上我也没见过哪款单片机没有定时器的。另外,一个好的编程风格也很重要,看一看相关的资料,你会受益很多,网上这样的资料也很多。
4.程序写好了,怎么下载到单片机里,总是借别人的编程器总是不太好,现在一些单片机有ISP功能了,如89S5X和AVR单片机。网上有一个Easy51Pro v2.0宇宙版,资料很全,感谢前辈的无私奉献啊。照他说的电路自己做个ISP下载线,非常好用,若是自己做的不好用,买个现成的也不贵。这钱若还舍不得,那就试试STC的51系列单片机吧,可以用串口烧你的程序,这其实叫IAP,有兴趣可以去网上搜一下。当然,等你以后的用的单片机多了,编程器还是不可缺少的。
5. 单片机故障的排查:对于单片机的问题,首先搞清楚一个CPU工作的三要素:电源,时钟源(晶振),复位电路,是不是都没有问题了,如果有示波器那就更好了,看一下ALE脚是不是有fosc/6的方波信号,有的话说明单片机在工作,三要素已经满足了,没有的话只能再不厌其烦的检察了,其实很简单,参照书上的电路一般没问题。
等自己动手做出些东西来了,可以算是入门了,会有一种成就感,但是不要满足于这点小成功,这些还都是小把戏,前面的路还是漫长的,如FPGA,PCB,DSP,ARM等,都是需要学习的。保存好你的电路和源代码,这都是你的财富。会有用到它们的时候。另外,你做的东西可能只是功能上能实现,离一个成熟的产品还有很大差距,稳定性、抗干扰都不是小问题。这些知识必须有良好的电路基础理论,大学里学的数电、模电、信号都是非常重要的,特别是模电,好好复习,保证每次复习你都会有新的收获。路漫漫其修远兮,耐心去求索吧。
|