作为单片机开发,首先要有以下的基础:模电、数电、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发帖留言,如果你想学习单片机或者在学习过程中碰到问题,也可以去单片机版块发帖,这里有很大大神为你做详细解答!