2012年(5)
分类:
2012-11-07 08:21:49
很多单片机初学者问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机、如何开始上手、如何开始熟练这个过程给大家讲讲。先说说单片机,我们现在用的比较多的是8051单片机,它的资料比较多,用的人也较多,市场也很大,51单片机内部结构比较简单,非常适合初学者学习,建议初学者将51单片机做为入门级芯片。单片机属于硬件,我强烈不推荐大家使用单片机仿真软件来学习单片机,也可以肯定的告诉大家,使用仿真软件是学不会单片机的,硬件只有把它摆在你的面前,亲自操作它,才会有深刻的体会,才能学明白它。单片机这门课是一科非常重视动手实践的科目,不能总是看书,但是也不能完全不看书,我们需要从书中大概了解一下单片机的各个功能寄存器,如果看的多了反而容易搞乱,尤其是现在市场上大多数讲单片机的书一开始就讲解较复杂的内存、地址、存储器什么的,更让初学者感到不知所云、难以入门。简单的说,当我们使用单片机时,实际上就是用我们自己编写的软件去控制单片机的各个功能寄存器,再简单些,就是控制单片机哪些引脚的电平什么时候输出高,什么时候输出低。由这些高低变化的电平来控制外围电路,实现我们需要的各个功能。
关于看书,大家只需大概了解单片机各引脚的功能,了解下寄存器。第一次、第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天就够了,而我们要把更多的时间放到实践中去,这才是最关键的,在实践的过程有不懂之处再查书,这样记忆才深刻。关于实践有两种方法你可以选择,方法一、你自己花钱买一块单片机的学习板,不要求那种价格上千块功能太太全的,对于初学者来说你买功能太全的板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD 和DA、液晶、蜂鸣器、IIC总线、有USB扩展也最好,这些就差不多了。如果说我上面提到的这些功能你能熟练应用,那可以说对于单片机本身的操作你已经入门了,剩下的就是自己练习设计外围电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,大家都听过。方法二、你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板可能只需要几分钟的时间,而对于初学者可就难多了,因为只有对硬件彻底了解了,你才能熟练的驾驭它。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你还是选择方法一,毕竟自己有一块学习板要方便的多,以后做单片机类的小实验时经常都能用得上,省时又省事。
有了单片机学习板之后你就要多练习,最好是自己有台电脑,少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,比起跑跑卡丁车,比起魔兽世界,要好玩的多的多。当你编写的程序按你的意愿实现时,你比做任何事都开心,你会上瘾的,真的,做电子设计的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,或是上网搜索。当得到解答后你会记住一辈子的,知识必须应用于现实生活中,解决实际问题,这样才能发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,过一个假期,甚至过一个周末,然后忘的一干二净,是不是?你学到什么了?我认为这样的生活没有意义。但是我告诉你单片机一旦学会,永远不会忘了。
另外我再说说关于用汇编语言还是C语言编程的问题。很多同学大一、二就开设了C语言的课,我也上过,我知道那时上课老师讲的就是几乘几、几加几、求个阶乘、画个星星、编个月亮什么的。学完了有什么用?虽然考试我考了90分,可我心里比谁都明白,C语言到底是什么?它有什么用?到底它能做什么我一无所知。我们不能过多的评价当今的高校教育,但我们必须得为自己负责任。让你用C语言编单片机的程序你是不是就傻了?单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言很简单,只是一门工具而已,我劝大家最好学好学精它,将来肯定用得着,要不然以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。给大家推荐一本书,作者谭浩强,书名<