我作为理工自动化专业的学生,说说自己当初为什么要学习单片机吧,当然它是一门必修课,不过我的经历告诉我,在课堂上是无法学好单片机的。相信作为工科的人多多少少都会听到过8051、MCU、DSP和ARM嵌入式的等等的名词。就算不知道具体指的是什么,也应该在不少资料和文献上看到过这样的字样。
最早知道单片机的时候应该是在大二的时候,大一新生的时候,说实在话,上课的那些内容从考试的角度来看,我不觉得有任何的压力,富余出来的时间按大多数都花在看小说、看电视剧、看电影和打游戏上了,游戏由于Z和T的缘故经常玩的是魔兽争霸Dota和CS什么的,在网吧一待就是半天。小说则继承了高中时喜欢“九州”系列的传统,买的书或杂志也摆满了一书架子,中间也有重复读一些历史名著。看的电影就是在上网是受无良媒体污染,宣传什么就关注什么,参加了学校的社团,考试成绩能在学院排前几名,还能拿奖学金,得个奖状什么的。 这样的生活给我一种错觉,就是大学就这样混也挺不错的。
直到一天,我在M寝室瞎逛,他们在聊天的时候就说到了单片机,但是我什么都听不懂,只是好奇,于是要看看什么是单片机,结果就看到一哥们用单片机做的一个电子时钟,我彻底就被震住了,我当时的想法就是,这个我不会啊,看起来挺有意思的,我要学。 当时二班的S在学校的电子协会,也是通过他还有后来的M 、WL、RF等等这样一群兄弟们在一起。我在看了一些资料后,买来万用版,电子元器件成功的焊出了我的第一块MCU电路板。至今它仍然好使,“丑陋”但是稳定可靠,虽然后来我用过许多别的开发板,但是就是在这块处女板子上我开始了单片机的学习,它上面的每一个元件都是我费劲心思设计上去的,对它是有深厚的感情的。
提到学习单片机,郭天祥绝对是一个不能不提的人物,虽然我不知道他是不是第一个把单片机教程公开的人,但是我们这些人在最初的时候多多少少都看过他的视频教程,翻过他写的学习单片机的书。就今天来看,那些资料仍然非常有价值。再加上他本身就是哈工程研究生的身份也给了我们不小的同城亲切感。早期的我也是看着他的教程一步步的上手的。 学习单片机使我真正的明白了C语言的强大,以前在VC窗口中敲一些代码,命令行输出几个“*”,比较两个输的大小,冒泡法给数组排个序,能把人给闷死。
在单片机的世界里,一切程序都有了现实的意义,单片机的世界里流水灯就是著名的“Hello World!”,在我第一次点亮流水灯的时候,我觉得世界变得无比的神奇,从那时起我也算是走进了单片机的世界。 随后的学习就变得丰富多彩起来,单片机就像是一块磁铁,把各种各样的技术吸引到我的视野里面,PCB设计,数字PID,VC++,嵌入式系统,VHDL与Verilog,FPGA,DSP,ARM,uCOS-II,Linux等,编程语言和控制理论中那些抽象的概念也变得清晰起来。
近年来,许多半导体厂商以MCS-51系列单片机的8051为内核,将许多测控系统中的接口技术、可靠性技术及先进的存储器技术和工艺技术集成到单片机中,生产出了多种功能强大、使用灵活的新一代80C51系列单片机。此阶段的主要特点是:片内面向测控系统的外围电路增强,使单片机可以--方便灵活地应用于复杂的自动测控系统及设备。因此,“微控制器”的称谓更能反应单片机的本质。
概括的来说,在学习单片机的过程中,对很多的知识都有个深刻的认识,当然在这其中我必须感谢那些同我一起学习的兄弟们在这一过程中对我的帮助,我们在竞争中相互学习,相互促进,互相鼓励,营造一个我们自己的单片机爱好者学习小圈子,对我学习这门技术实在是起到了绝对积极的作用。 我没有买过单片机的教材,因为学校图书管理面的书已经非常的丰富了。
加上我可以借到同学的书,我的确节约了不少的资金。不过在我研一的时候,我还是买了一本关于单片机的书,书名叫《匠人手记——一个单片机工作者的实践与思考》,当然从书名上看这本书,就没有把他当成一本讲解单片机技术的书籍,虽然它里面讲了单片机的10种数字滤波算法对我在项目中的帮助很大,但帮助更多的是词组“实践与思考”,我要的就是实践和思考。 个人观点,学习一门技术,只要付出时间和耐心,都是可以达到自己70~80%的期望的,就算是不能成为大虾,也能落下普通人不少的距离,让自己有一些卓尔不群的优越感。真正难能可贵的是在这一过程中分析问题,解决问题的能力得到了大大的提升,也是从那时起,我开始翘课,因为我相信自己在与课程相同的时间里能学到更多的东西,在教室里其实浪费了我的时间。
还有一点就是,我不能在将高中的那种学习模式继续继承,必须用新的方式来学习,用新的视角来看待大学的课程,学自己喜欢的东西,其它随便,和正常上课的同学一样,都是靠最后的几张往年卷子复习突击考试的,成绩和一直上课的学生比也差不到哪去。 学校并没有给哈理工人一个荣耀的光环去吹嘘自己,不过我倔强的相信,在平凡的地方想超越平凡的人注定不会平庸。理工大学总能遇到不少人抱怨学校这不行那不好的,虽说的是事实,但说实在的我觉得一点帮助都没有。只是给自己的无能找借口罢了。当然我没有权利让这些人闭嘴,但是可以不让这些悲观消极的态度影响到我。
虽然环境对人的影响是有的,但是不同的人受到的影响程度却不同,当你真正发觉自己喜欢的技术和知识用心去领悟的时候,这些无聊的噪音,对你没有任何的影响。 如果在学习单片机的过程中遇到困难,拍桌子,撕书,骂人、打架都是可以的,就是不要轻易放弃,因为你很可能在也不会拾起来了,而且你能放弃一次就会有第二次,习惯了你就废了,多少年后你肯定会为自己当初的软弱而后悔的。 回过头再说,如何学习单片机,如今市场上、网络上何式各样的MCU开发板琳琅满目,在竞争的作用下,一块MCU的开发平台200元左右及基本上可以满足所有的需求了。
可是我坚持认为要搞单片机没有动过烙铁,焊锡,只是在开发板上跳跳线,换换短路子,照着说明文档和附送的案例程序走一遍,根本学不好单片量就是熟悉的基本的编程技巧和硬件电路,有一些深层次的思考在使用开发板的时候被漏掉了。学习单片机千万不要太贪心,磨刀不误砍柴工,你学的慢与快不重要,重要的是你能否领悟到其中的规律。太贪心,整天关注的是还有多少页书没看,多少教程没看的人,心态就不健康了,学习的效果也会大打折扣。
当然,如果你是为了考试,或有别的爱好和兴趣,我上面的文字肯定不适合你,多多包涵。 对于单片机的初学者,作为一个过来人,个人建议条件允许的话,请不要把它当作一门技术急功近利的去掌握,把它当成一门艺术慢慢的欣赏!发掘电子设计的乐趣!师兄这边祝你们学业有成!!!
> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >
大多数情况下,程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中,16位指令指针寄存器)。在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。PC中存储的永远都是下一步要执行的指令地址。改变PC的内容,就可以改变程序执行的顺序,从而实现跳转。