本人也是通过学校介绍的课程才接触到单片机的。
上课的时候倒是挺难挨的,觉得枯躁无味,经常逃课。倒是在后来自己临到考试的时候认真复习倒还兴趣增加不少(由此可见老师上课的启发兴趣能力有多强...)不过考试的成绩还真是一般般,单片机只是考了个及格,咳...
在这里讲个小插曲,我们学的是C51,后来有个什么凌阳公司来我们学校搞活动,所以我买了块凌阳,但是后来越学越没动力,可能是我领悟能力有限,不过有个老师跟我讲,学东西先从基础的东西学起,比如说51,它的应用 广泛,所以技术也就是 成熟的,资料也就是 多的,这对初学者来说无疑是方便的,而且你学一个比较偏的单片机,以后应用能用上就好,不能用上就浪费学习时间了。所以现在才重新买了一块开发板,很多东西都对上号了,就好学多了。
正如很多人说的那样,学单片机,先学汇编,再学C,我也是这样的,(因为老师上课就是讲汇编的,所以没办法,呵呵)因为这对以后熟悉单片机内部资源,计算周期是很有帮助的。不过汇编就是比较麻烦,换个芯片就都要重头来过,所以有局限性,不像C那样可以移植,修改的地方很少。对于汇编的学习还真是痛苦,我觉得这些东西 好是自己看,别人很难讲到你明白的,首先要熟悉那一百多条指令,说是一百多,其实有些是同个种类,压缩起来也不过就几十条,再说都是英文简写,就我那么点英文水平也看得明白,所以也不是什么难事,所以,先要搞定指令!指令搞定以后你也就能看一些基本的程序了,这样,对于兴趣的慢慢培养是大有好处的,谁都不想耗上一大段时间却什么都看不懂吧。接着就是看特殊寄存器及其功能,了解要利用到什么内部资源时要设置哪些特殊寄存器,要怎么设置,可不可以位寻址啊,0是什么1又是什么啊之类的。不一定要背下来,但是至少要有点印象有点了解,至少以后碰到的时候知道哪里可以查到。这些你可以直接搜索网上资源,有这方面的总结,“51 特殊寄存器”,以后要查找和设置也就方便一点。这样你基本就可以看程序了!看程序的时候注意了,看的时候先看总体程序实现的功能是什么,是P口亮灯呢还是串行通信,还是中断还是定时(先从简单的程序入手,对应于每个知识点,P口亮灯,定时器,中断,串行);接着应该看流程图及每个子程序的定义,不看流程图看汇编就像看天书,一开始的时候。子程序名的跳转可以了解程序是怎么走的,由哪里跳到哪里。基本就是这样学汇编的了,一个学期,边上课边做实验,好像只是每个知识点只做了一个,基本就可以了解的了。
在这里又插一句,刚开始学的时候我们这些初学者经常会问些很白痴的,让已经入门的人喷血喷饭的问题。呵呵,这是必经之路,不过还是那句话,尽量先自己看书,看到真的不懂才去问别人,因为我始终觉得,提问和回答是一种互动的交流,而不是只是单向的,你也要先掌握些东西,别人再一点破就明白了,不要全靠别人!不然别人也会觉得你很烦的,这方面我很有经验,也受过不少白眼,不过,可以理解!
对于c语言编程,一开始自己还是有点畏惧的,因为c语言课程学得不好,不过后来在网上看到单片机用c语言跟用c编程序还是有区别的,单片机的比较简单一点,所以也抱着试试的心理学习。呵呵,后来自我感觉良好!!(哈哈)c语言还在学习中,也只能暂时将目前的程度谈自己的感受,一开始看c程序搞了很久才明白什么是后缀是H的头文件,原来是编译器把所有的资源都分配的地址及代称,比如你在程序中用P1_0,TCON(定时器设置寄存器),实际是调用了一个地址。这是一个小的方面。 好先看一下专门写单片机编程的书籍, 好既有汇编又有c语言的,对比来学比较有效率。熟悉c语言的顺序结构,循环结构,条件结构各有什么语句,各怎么表达。暂时我也是按这样的顺序学习的,当然要多看程序,方法步骤跟汇编一样,还是要看流程图!
至于对汇编和c语言涉及的软件的学习,我觉得这些都比较容易掌握,上网下载个教程,按实例照着做就基本可以掌握,不要想一下子把所有功能都了解,基本的会用,其他比较特殊的功能以后自然会有机会用到,因为网上经常有些出来讲一些心得,到时看也不迟。现在看太多不熟练也容易忘记。东西总是等到用到了才比较有印象!
对了,等到书看到一定程度建议买块单片机学习板,之前也为了省钱想自己搭个 小系统要做什么再做什么,不过可能还是比较懒或是比较花时间,所以还是自己买了一块,因为一开始对硬件也不熟悉,什么都得上网查资料,做个跑马灯也要看要接多大电阻啊,要怎么连线啊之类的,倒不如买个现成的先熟悉程序再做硬件也不迟,那样反倒比较熟练。五六电子网站提供的单片机学习系统是您的 好选择。
基本上就写到这里了,本人的一些观点而已,欢迎讨论!