每个玩单片机的朋友相信对单片机的学习过程都有一定的理解和感悟,我作为一个“过来人”,写出我学习单片机的过程和心得。若下面的文字能帮助你踏入单片机开发的道路,也算我对坛子的一点贡献吧。
本文引用地址:http://www.eepw.com.cn/article/158861.htm
作为单片机开发,首先要有以下的基础:模电、数电、c语言、protel/dxp。还要具有一定的能力:忍受阅读厚厚数据手册的能力,看懂时序图的能力(我感觉这点尤为重要)。具备以上技能,朋友,大刀阔斧的来玩单片机吧!如果感觉有些能力欠缺,没有关系,来坛子里逛逛,众多大神在这里等你。
1、单片机可用资源
拿到一款单片机,首先要看该片子数据手册中的功耗、普通I/O、调试接口等产品特性,只有在整体上把握了这些特性,才能达到灵活的开发单片机。
功耗:现在不管是学校还是外部公司,都要求低功耗设计,所以,选用一款低功耗的单片机对于学习和工作都十分重要。具体的选型可以参考zhuwei0710写的非常棒的文章《单片机选型的七条军规》。
I/O口:现在的单片机一般都具有端口复用的功能,普通的I/O端口和经过配置相应寄存器实现端口的第二功能,如图1为ATMEAL mega16端口的功能。
充分了解单片机端口第二功能,能对你的单片机设计之路起到画龙点睛的作用。
调试接口:为了便于在线调试,单片机需要支持JTAG在线调试功能,这样可以了解单片机的实际运行情况和程序问题出现的位置。图1中PC[2:5]就为相应的接口。
电源和频率关系:为使单片机的性能达到最优,需要取合适的电源和晶振。
2、单片机开发环境
选定好单片机后,就要构建开发环境。所谓的开发环境只是程序编写和调试的环境,每款片子都有一种很成熟的应用环境,在开始学习之初,要选择一种流行的开发环境,这样,就有很多资料可以使用,出现问题也可以向大家询问(或许你的大问题就是别人经历过的,你岂不是少走很多弯路)。
3、单片机由浅入深
有人问单片机怎么学习,肯定有人回答说:“从跑马灯开始”。不错,跑马灯是基础,可以学习到很多内容:从简单的I/O控制,到定时器控制,到计数器控制,到看门狗使用,到按键控制,等等。从一个简单的程序实现多个功能的联合开发,说明你已经“上道”了,所以说不要小看“跑马灯”试验哦。
记得一同学说过:“简单说,单片机就是配置寄存器,完成I/O读写操作,实现相应功能。”所以学习单片机最好的教材就是数据手册,通读一本数据手册,按照手册的说明完成一个一个功能,才会有熟练使用片子的基础,正所谓“厚积而薄发”,说的就是这个道理。
一般来说,学习一个单片机需要掌握以下技能:端口控制à中断使用,定时计数器使用,AD使用,看门狗使用à爆发阶段,外围器件设计,可以实现接口扩展,存储器扩展,主从机通讯,红外,蓝牙,等等。通过以上的学习,相信能步入了一个比较宽阔的平台。
4、完成一个自己的想法
古人经常教育我们“学以致用”,马克思主义哲学提出“实践是检验认识是否具有真理性的唯一标准”。所以检验我们学习单片机的效果如何,就是自己构建一个目标,通过一步步的工作,达到该目标,这才是对我们学习的最大鼓舞。一般的流程如下:
以上步骤是单片机开发或者说嵌入式开发的一般步骤,完成一个自己的目标板子,那种心情只有自己才能感受的到。朋友,你想品尝这种滋味吗,动起手,开始干吧!
5、总结
本文以我学习过的单片机芯片 Atmel Atmega16为基础,写出对学习款单片机的心得和学习方向,希望对学习单片机的人有借鉴意义。如果你对单片机学习有什么意见和建议,请来EEPW论坛单片机版块http://forum.eepw.com.cn/forum/175/1发帖留言,如果你想学习单片机或者在学习过程中碰到问题,也可以去单片机版块发帖,这里有很大大神为你做详细解答!