玩单片机可以有以下几个等级:
1,纯硬件DIY:这一级玩法很简单,只要有一个ISP下载线(和手机数据线的性质差不多),自己制作硬件电路,然后把单片机的程序烧到单片机里就行了。不需要懂编程。在我的网站里有许多小制作,每一个制作都有提供HEX文件,是下载给单片机的程序。很简单,和玩数字电路一样简单。
2,半编程DIY:硬件制作也会了,纯硬件DIY已经熟悉的时候,就可以试着玩玩编程了。半编程DIY并不是自己从头开始写程序,一开始也没有这个水平,呵呵。这一部是照着别人已经写好的程序,然后在现在程序上改一改数值、换一换语句。比如我的SHOOK16摇摇棒,就可以自己在源程序里只改字幕部分的程序代码,而不去管应用程序和硬件驱动程序是如何实现的。
3,全编程DIY:玩够了别人的制作,用腻了别人的程序,是不是也应该自己写点程序玩玩的,写点前无古人的程序,做些从没有过的制作。这一阶段就是全编程DIY。但是并不是说自己要一字一句的写程序,那会很没有意思的。现在的单片机程序基本已经模块化了,要用到延时就复制延时程序模块到自己的程序里,要用到定时器就复制定时器的程序。比如在我的网站里的“编程”栏目中就有许多现成的程序模块,可以直接使用。
几个误区:
因为传统的教学方法都是一板一眼的,这和中国的教学体制有关。但这不是有效的教学。就我自己的经验和多年来回答初学者的问题中总结了一些更有效的学习方法。这里仅说几个误区吧,其他的学习方法可以在我即将出版的新书《爱上单片机》里找到答案。
误区1,一定要学习汇编才可以入门。学习汇编语言已经是很古老的事情了,实际上不需要会汇编也可以玩好单片机。而且汇编的用处不大,只有精准延时和其他一些很少用的程序才会用汇编语言。入门来讲用C语言是最好的。
误区2,一定要了解单片机的指令集、寄存器才可以入门。依我的观点,那些是没有必要学的,如果学了反而会对单片机失去兴趣。有一些初学者来信和我讲,他在学习单片机的中断原理,认为学好这个才可以入门。但是结果是越学越没有意思,越学越困以理解。是呀,都还没有用过中断,就去学原理,是本末倒置的。所以建议大家从硬件DIY开始,让单片机DIY越玩越好玩,越学越有乐趣,这样才可以用爱好作为源动力,推进单片机的学习、研究。
误区3,要买一个单片机开发板才可以入门。依我看,单片机开发板对于单片机入门是没有多大用处的。我建议采用面包板上做实验学习单片机,成本低、又可以动手DIY硬件,激发思考,积累的经验更多。
误区4,以AT89S52单片机入门。AT89S52的内部资源很少,一般的东西都需要外部,而且最小系统必须接晶振和复位电路,很麻烦。可是为什么大多数的爱好者还在用AT的单片机呢?这是因为现有的教材都以AT单片机为主,初学者以此入门,习惯了也就不想换其他的产品了。另外,主动创新、学习新技术、新产品的能力不足,使得大家一直等在AT的圈里来开发。比如我的mini1608电子钟的精简设计是基于STC的单片机开发的,而AT的单片机却无法实现。建议用STC的新系列单片机入门,会直接进入更高的起点。