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