学习单片机的心得体会十五篇
在上个学期学校举办电子设计竞赛,在比赛过程看过一些郭天祥的单片机教程,然后在这个学期真正的理论。通过上课理论与实践相互结合,使我对单片机的认识有了更深刻的理解。系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
在平时上课中由于时间有限和本身知识水平的限制,有时做某些作业时,花上很多时间才能完成!但是在完成后,成功的喜悦充斥着。
在课上,我认识到计算机有运算器,计算器,控制器,输入输出设备组成。之前都是利用开发板,进行程序的仿真。现在不断利用软件仿真,但两者的作用是一样。在仿真过程中,总是会碰到程序出错的时候,只好苦思冥想,反复比对程序,在不断修改后,总会成功。
在第一次是点亮LED灯来熟悉,keil软件的使用和试验箱上器材。第一次实验体现了一个人对新事物的接受能力和敏感度。虽然之前做过许多种实验。但依旧发现自己存在一个很大的问题,对已懂的东西没耐心听下去,容易开小差;在听老师讲解软件使用时,思路容易停滞,然后就跟不上老师的步骤了,结果需要别人再次指导;对软件的功能没有太大的热情去研究探索,把一个个图标点开,进去看看。
在做实验中,由于没有课前准备的意识,每每都是到了实验室才开始编程,完成作业,导致每次时间都有些仓促。在与同学讨论,换种思路,换种方法,把问题给吃透。发现、提出、分析、解决问题和实践能力是作为我们这个专业的基本素质。依赖性很大,刚开始编程序时喜欢套用书上的语句,却对语句的理解不够。于是当程序出现问题时,不知道如何修改,眼前的程序都是一块一块的被拼凑整合起来的,没法知道哪里错了。但是编程是一件很严肃的事情,容不得半点错误。在错误中不断摸索中前行。
我从大二起,就去实验室去学习。在这里与老师和一些电子设计爱好者的交流中,我学到了更多的专业知识。我从此走上了学习嵌入式的道路。这丰富了我的大学生活,是我在大学的最大收获。
我是从学习单片机开始我的嵌入式学习的。
我接触单片机的方式是在图书馆看书,我看了很多本书,但是大多数书写的大同小异。书里面讲解的单片机的寄存器我看了很多遍也没有看懂。我都不知道改怎么学习它了。慢慢的我悟出了一个道理:电子的学习实践是最重要的,这样,我在大二的时候就买了一块学习板,我一边看视频一边仿照视频的程序,自己编写程序,在很短的时间里,我的单片机有了很大的提高。那些难懂的寄存器通过编写程序,我慢慢的弄懂了它们,现在回头看去,原来它还是很简单的。
用哪种编程语言最适合我们。
我看过的单片机的`书籍,大部分的程序都是汇编写的。它是一种基于机器硬件的低级语言,对于我们这些只学习过C语言的人来说,非常难懂。我认为刚开始学习单片机没有必要一定要从学习汇编编程开始。我学习单片机就是用C语言编程的,我并不会汇编语言,也没有妨碍我把单片机学好。
很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,进步速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。
单片机的学习实践。
单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是非常重要的。如何学习好硬件,动手实践是必不可少的。我们可以通过自己动手做一个自己的电子制作,通过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就可以多一些了解芯片的结构。我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。
硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题:
第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。
第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。
第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。
再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。
今天为止,学习单片机已经快一个月了,感觉还是不太熟练!总体来说,可以归纳为以下几个阶段:
1、了解阶段。这一阶段主要是为了熟悉51的基本结构与组成。例如,51中的串口,定时器,i/o口等等。
2、实验阶段。这一阶段的主要工作就是写程序,不要怕动手,因为你不动手的话,永远也不能发现你到底学到了什么,还有什么不晓得的东西。在这一阶段,可以编写一些比较容易的程序,例如,数码管动态显示与静态显示,串口与上位机通信,计算器,点灯等等一些程序。
3、综合阶段。这一阶段的主要目的就是将以前的一些零碎的知识结合起来。那就是将以前编写的程序综合起来,统一到一个程序中来。
对单片机也有了一个基础的了解。在这一年里,我学了DS18B20、128*64大液晶、数码管显示等。从最初的跑马灯,到整体融合,经历了一段时间。单片机仅有P0,P1,P2,P3,如果想把很多功能合在一齐的话,就得复用,或着用到扩展,可是那个扩展模块不好用,写起程序来会比较麻烦,其实复用好的话,基本IO口都够用!
学习的时候总是难免碰到一些问题!可是我的总结是:没关系,边做边想!或着讲瞎搞!不搞肯定不明白,搞了才会懂!过去的一些问题在此刻看来都是小case,什么定时器赋值啊,定时器的使用类型(模式0,模式1,模式2),当时就自我在那里看书理解,一大堆的文字在那里,看了很久也不懂!可是之后我懂得了上网找视频教程!刚开始的时候也总是想为什么这么做,为什么这么做,为什么这么做,一堆的为什么。此刻懂了,做多了,就觉得要这样做,要这样做,就是这么做的,没错!不会的时候想着,反正会弄懂的,多试试!
要相信熟能生巧,想想学习的时候,和此刻的程度,不是在一个档次的!熟悉了操作,一些疑惑也会虽之解开!
我最初开始学单片机是因为我喜欢编程,我觉得编程是一件乐趣的事!或着说享受技术带来的欢乐!我此刻懂得了有各门各样的语言,C语言是其中一种,还有更底程的汇编语言,java之类的高级语言,这些我都很喜欢!它们各有各自的好处和用处!并且我不想只会一门语言,所以我要慢慢地学习各种自我喜欢的语言!
在学习的过程中遇到麻烦或着问题,已经习以为长了!遇到问题也不会焦虑,想的是该怎样解决!水平也是在不断解决问题中提高的,有这一点体会!其实初学单片机,碰到问题总是新的知识而已,因为单片机很简单,也不用很懂电路原理,明白什么时候给0,什么时候给1,其它的就交给硬件去处理。
我也不单单只想有关单片机的程序单片机功能简单,一向写单片机也会变得呆板的(这期间就一向写单片机的程序,不写其它思考性的编程),至少我是这么觉得。因为写单片机的程序一段时间后,我发现我的思路有点僵在单片机的思路上,自我想写一写其它的程序,不是单片机的,是C语言的一些有关数学计算(类似应用题的那种),写的时候却想的写单片机的感觉,有点难以集中到此刻要解决的问题!
最近自我对单片机异常的感兴趣,因为看到它能控制电机的转动,自我觉得很神奇。就想弄清楚它到底是怎样做到的?
我看到书上讲:单片机能够用两种语言编写,一种是c语言,另外一种是汇编语言。汇编语言是一种机器语言,且代码繁琐,不易记忆。需要掌握单片机的内部结构和逻辑结构,经过看了几本书让我了解认识到汇编确实太繁琐,可是我学习过c语言,也参加了全国计算机二级考试,觉得自我在一方面具有优势,能很快学好它。
可是在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎样和电脑相连都不明白,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究教师给的题目,选一个自我有兴趣的题目。其次,教师对实验的讲解要一丝不苟的去听去想,因为仅有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最终,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间仅有三天,可是因为我们都有自我的实验板,所以在宿舍里做实验的时间必须不止三天。
硬件的设计跟焊接都要我们自我动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应当是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
说这次实习,我认为最重要的就是做好程序调试,认真的研究教师给的题目。其次,教师对实验的讲解要一丝不苟的去听去想,因为仅有都明白了,做起产品就会事半功倍,如果没弄明白,就迷迷糊糊的去做,到头来一点收获也没有。最终,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的实习算起来在实验室的时间仅有几天,可是因为我们都有自我的实验板,所以在宿舍里做实验的时间必须不止三天。硬件的设计跟焊接都要我们自我动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应当是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
经过这次单片机实习,我不仅仅加深了对单片机理论的理解,将理论很好地应用到实际当中去,并且我还学会了如何去培养我们的创新精神,从而不断地战胜自我,超越自我。创新能够是在原有的基础上进行改善,使之功能不断完善,成为真己的东西。
这个设计过程中,我们经过在原有的计数器系统进行了改善,使之增添了暂停、计数、清零等的三个控制功能,使之成为一个更加适用,功能更加完备的属于自我的一个系统。设计结果能够贴合题意,成功完成了此次实习要求,我们不只在乎这一结果,更加在乎的,是这个过程。这个过程中,我们花费了很多的时间和精力,更重要的是,我们在学会创新的基础上,同时还懂得合作精神的重要性,学会了与他人合作。作为一名自动化专业的快大三学生,我觉得做单片机实习是十分必要的。在已度过的大学时间里,我们大多数接触的是专业课。我们在课堂上掌握的仅仅是专业课的理论知识,如何去锻炼我们的实践本事?如何把我们所学的专业基础课理论知识运用到实践中去呢?我想做类似实习就为我们供给了良好的实践平台。
首先在做本次实习的过程中,我感触最深的当属查阅很多的设计资料了。为了让自我的设计更加完善,查阅这方面的设计资料是十分必要的,同时也是必不可少的。我们是在做单片机实习,但我们不是艺术家,他们能够抛开实际尽情在幻想的世界里翱翔,而我们一切都要有据可依,有理可寻,不切实际的构想永远只能是构想,永远无法升级为设计。
其次,在这次课程设计中,我们运用到了以前所学的专业课知识,如:C语言、模拟和数字电路知识等。虽然过去从未独立应用过它们,但在学习的过程中带着问题去学我发现效率很高,这是我做这次课程设计的又一收获。
最终,在实习之前,我们要对所用单片机的内部结构有一个系统的了解,明白该单片机内有哪些资源;要有一个清晰的思路和一个完整的的软件流程图;在设计程序时,不能妄想一次就将整个程序设计好,反复修改、不断改善是程序设计的必经之路;要养成注释程序的好习惯,一个程序的完美与否不仅仅是实现功能,而应当让人一看就能明白你的思路,这样也为资料的保存和交流供给了方便;在实习过程中遇到问题是很正常的,但我们应当将每次遇到的问题记录下来,并分析清楚,以免下次再碰到同样的问题。
我来说说我学单片机的一些收获吧,也给想学的人提供点意见,我的入门课程是学习了郭天祥的视频,《十天交你学会单片机》,的确还是不错的,大家可以在电驴上下载,当然十天的学习只是个入门,如果有开发板的话就跟着他的视频学习,没有的话可以用仿真实现一些功能,我用的是proteus。因为当时我的寝室中有已经学了两年的哥们,他给我讲了一下开发板的原理图,使我看那些连线不至于很乱,自己也就觉得清晰多了。还有一个学长,也是我的老乡,他给我后期的学习提供了很大的帮助,他当时给我们上课,而我已经有了一定的基础了,所以就感觉特别顺。后来他把我带进了实验室,让我有了一个很好的学习环境,所以很快就掌握了单片机的基础知识。在这里我感谢他们给我的帮助。
其实我觉得单片机入门是挺简单的.,有一定的数电和模电知识后,再借一本讲单片机原理的书就很快上手了,在开始的时候,最好自己动手编程序,或者看着别人的程序,看懂之后再写一遍,尤其一些很简单的,流水灯,数码管,按键检测,中断应用等,当自己觉得这些都掌握的差不多时,就主要看别人的程序,给大家推荐一本好书,单片机C语言程序设计100例,个人感觉不错,里面有很多程序,程序可以在网上搜到。
现在就可以做些东西了,开始学习可以焊单片机最小系统,在加上简单的流水灯,数码管,就是熟悉一下,后来就可以学习一下Autium Disigner,自己设计东西,再做出来就OK了!
学习单片机这门课程(教学中选用inter公司的mcs—51),要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使学生从硬件软件的结合上理论联系实际,提高动手本事,从而全面掌握单片机的应用。
实验教学的全过程包括认识、基础、综合3个阶段。以往的单片机实验是进行软件的编制和调试,与实际应用中的硬件电路相脱节。使学生缺乏硬件设计及调试分析本事,对单片机如何构成一个单片机最小应用系统,缺乏认识。发布的单片机实验板,经过计算机连接仿真器在实验板上把硬件和软件结合起来一齐调试,
软件的修改也十分方便,软件和硬件调试都经过后,把程序固化在eprom当中,插上8051单片机构成一个完整的单片机应用系统。
由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制,但单片机存储量有限,数据处理本事差,不利于数据信息的保存和处理,在那里利用单片机的串行口和上位PC机串口通讯,实验板上的MAX233串行转换芯片实现TTL信号和RS232信号之间的转换,和PC机通讯,从而实现远距离的监控及信息的存储、处理和打印清单,单片机完成现场数据的采集及各种信号的控制,构成一套环境监控单元。
在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。如:工业控制、仪器仪表、电讯技术、办公自动化和计算机外部设备、汽车与节能、商用产品、家用电器等。目前,单片机正朝着大容量片上存储器、多功能io接口、宽范围工作电源和低功耗方向发展。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,并且还要深入了解各应用系统的专业知识,仅有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅仅要掌握单片机的工作原理,并且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。所以还要注意培养学生理解新知识的自学本事,掌握芯片发展动态。
首先,学习单片机要有必须的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,个性是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,推荐初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,可是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,所以要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在那里给大家推荐一本单片机C语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,推荐学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
其次,是单片机教材选取。单片机是一门十分重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有必须地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。此刻单片机应用广泛,所以各个厂家分别推出了自我的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等……我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有必须的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,可是我们要选取一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS—51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS—51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。
然后,是开发工具和开发环境的选取。选取一块适宜的学习板,提议吴鉴鹰教师的板子,对于初学者来说一般无力理解,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是十分宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。有兴趣的朋友可关注一下。有了吴鉴鹰单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自我多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自我的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得十分兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞
定某个实验,就恭维的告诉你一声”恭喜你,学会了”自我学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了必须了解和会使用它了。可是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品。所以除了入门外,精通可千万别轻易说出口。
最终,在熟练掌握和应用后,那能够说对于单片机方面的硬件你已经入门了,剩下的就是自我练习设计电路,不断的积累经验。最终,自我完全设计具有个人风格的电路,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机教程专栏,对于想学习单片机的朋友来说帮忙很大,能够说此刻的单片机教程环境是最好的,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也十分充足,相关的器材又多有便宜。如果每一天能抽出两小时的时间去学习,快的一个月,慢的三个月就入门拉。
我第一次做单片机实验,说起来有一些紧张和新奇。在此之前我并没有接触过单片机,我本以为与之前的光学实验及其它实验差不多,可我进到实验室之后,我就改变了这个看法。
单片机实验要求的是一种思维的创新,而不是简单的重复教师所说的实验步骤所以第一次实验,实验教师向我们讲解了CVAVR编译器的大体情景及使用方法和技巧,并简单的向我们示例——如何在CVAVR中编写一段程序。编完程序之后,明白我们如何使用AVRStudio到达将编好的程序输入到单片机中来使其运行。
之后教师让我们以组为单位合作编写一段程序,并使其运行。我们组想要编写一个跑马灯的程序。在第一次运行CVAVR时,我们组就遇到了一个麻烦,我们在建立一个新project文件那里出现了错误。在保存这个新project文件的时候,我们单击了Save,而不是Generate,SaveandExit。所以它弹不出我们我们所需要的源程序。之后我们经过询问其他人解决了这个问题。在编程中,我们开始做的是两盏灯的交替闪烁,间隔时间是1000ms。在运用AVRStudio的时候,我们又犯了一个错误。在我们打开编译好的工程文件时,开始调试,在最终一步点击Finish时,弹出一对话框,问我们是否更新,然后我们单击了Yes。这导致了仿真器无法下次使用。这是由于实验室中的仿真器是盗版的,无法进行更新。
经过我们的不断努力,我们最终实现了简单的跑马灯的运行,便是两个灯地交替闪烁。我们感到兴奋极了。可是我们并没有满足于当前,我们又编写了三个灯地交替闪烁,四个及多个。当我们一步步实现我们的目的时,我得到莫大成就感和自信。
在这次实验中,我体会到了合作的重要性。一个人也可能实现这一系列的过程,可是要花费很多精力和时间。群策群力,分工明确,能够使我们更好、更快地完成我们的工作。在此期间,你能够更好明白自我的不足和缺陷,来得到改正。还能够明白自我的优势所在,把握好自我的优势。
很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,提高速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。
单片机的学习实践。
单片机提高重在实践,想要学好单片机,软件编程必不可少。可是熟悉硬件对于学好单片机的也是十分重要的。如何学习好硬件,动手实践是必不可少的。我们能够经过自我动手做一个自我的电子制作,经过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就能够多一些了解芯片的结构。我相信,你完成了一个属于自我的电子制作,你的单片机水平就会有一个质的提高。
这就是我学习单片机的心得体会,期望给单片机的爱好者学好单片机有所帮忙。
使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。
第一步:数字IO的使用
使用按钮输入信号,发光二极管显示输出电平,就能够学习引脚的数字IO功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,可是能够学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。
第二步:定时器的使用
学会定时器的使用,就能够用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,能够用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路能够实现时序电路,可编程逻辑器件(PLD)能够实现时序电路,可编程控制器(PLC)也能够实现时序电路,可是仅有单片机实现起来最简单,成本最低。定时器的使用是十分重要的,逻辑加时间控制是单片机使用的基础。
第三步:中断
单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要必须的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在回到执行正常的程序。中断功能使用中的困难是需要精确地明白什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应当干什么,中断完成后,程序应当干什么等等。中断学会后,就能够编制更复杂结构的程序,这样的程序能够干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也能够监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。
以上三步学会,就相当于降龙十八掌武功,会了三掌了,能够勉强护身。
第四步:与PC机进行RS232通信
单片机都有USART接口,异常是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不一样,需要使用一个MAX3232芯片进行电平转换。
USART接口的使用是十分重要的,经过该接口,能够使单片机与PC机之间交换信息,虽然RS232通信并不先进,可是对于接口的学习是十分重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机监视器上,而PC机的键盘信号能够在单片机实验板上得到显示,将是多么有意思的事情啊!
第五步:学会AD转换
MAP430单片机带有多通道12位AD转换器,经过这些AD转换器能够使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用AD转换功能的简单的例子是设计一个电压表。
第六步:学会PCI、I2C接口和液晶显示器接口
这些接口的使用能够使单片机更容易连接外部设备,在扩展单片机功能方面十分重要。
第七步:学会比较、捕捉、PWM功能
这些功能能够使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。如果以上七步都学会,就能够设计一般的应用系统,相当于学会十招降龙十八掌,能够出手攻击了。
第八步:学习USB接口、TCPIP接口、各种工业总线的硬件与软件设计
学习USB接口、TCPIP接口、各种工业总线的硬件与软件设计是十分重要的,因为这是当前产品开发的发展方向。
到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了!!
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。
单片机在学习和讲解时可以和学生已比较熟悉的微机的结构进行对比,因为单片机内部也用和微机功能类似的模块,比如CPU、内存、并行总线,还有和硬盘作用相同的存储器件,在学习和讲解中要着重强调单片机在以上相关芯片部件与微机的异同,应用时的差别。
突出讲解单片机是一种在线式实时控制计算机的本质特征,及有较强的抗干扰能力,较低的成本的特性,并且通过列举在日常日常生活中的常见的家电产品如全自动滚筒洗衣机、排烟罩、VCD等等,让学生对单片机的应用产生直观认识,提高学生的学习兴趣。
在进行单片机课程教学安排时,要遵循一定的次序,因为学习单片机知识需要有一定的基础。例如要具备一定的电子技术方面(数字电路和模拟电路等方面)的理论基础,特别是数字电路;软件设计方面要具备一定的编程语言学习基础(如汇编语言或C语言)。引导学生要想成为单片机高手,建议学生首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,但是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对学生今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为学习了学校的C语言课程就以为掌握了C语言,那只是C语言的一部分。在教学中给学生推荐单片机C语言程序设计参考书,例如马忠梅等著,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,建议学习清华大学谭浩强编写的C语言程序设计,这本书编写得比较好,通俗易懂。
其次,在教授单片机课程时要注意对单片机教材的选择。单片机是一门非常重视实践的技术,虽然看书不是指导实践最好的方法,但要学习单片机首先仍应重视对教材的学习,通过理论学习对单片机引脚、内部结构、寄存器和原理有一
定地了解和感官认识。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等……教导学生没必要每样都学!因为上述单片机的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就可以了。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。因此可以引导学生在教材之外选择一款有代表性的知识范围广,并且入门容易的51参考书。
最后,任何硬件的应用都离不开软件的设计支撑,因此在讲授单片机的课程中要强调编程的重要性,鼓励学生从小程序的编写设计开始,从模仿到独创,锻炼编程能力。并且注意记住单片机的外部引脚,p3口的复用,相关寄存器,PSW的设置,将软硬件技术结合起来,把理论用于实践中去,实现用单片机控制各个机构去做想要实现的事情,把抽象的东西用计算机语言表达出来传给单片机的最终任务。
做了两周的课程设计,有很多的心得体会,有关于单片机方面的,更多的是关于人与人之间关系方面的。
我们组一共有三个人,但其他两个人是真的神龙见首不见尾,除了在最终答辩的时候他们一齐坐在了我旁边,冠冕堂皇的指着我画了几遍的图说了几嘴,我想可能他们自我都不明白自我在说怎样,虽然有的东西他们也答出来了。我佩服他们的勇气,羡慕他们的运气(我见到的很多做了10天的人最终的成绩都有不如他们的),可是鄙视他们的做法。
所幸的是,我得到了很多同学的帮忙。我想没有他们我可能都要放弃了,因为我本人对单片机也并不是很熟悉,学的东西好像它是它,我是我似的,理论联系不了实际。以前的汇编语言没学好,一开始的程序这块儿就要令我抓狂了。之后请教我们班的一个男生,每次跟他一齐到试验室调试程序(他们组也仅有他一个人动手),看他边做边给我讲解。最终在开发机上做出来的时候,虽然不是我自我写的,但看他那么高兴,我也有一种分享到的成就感。之后我们组就用了他写的程序,他自我又抽空做了些拓展。
接下来就是做硬件方面的焊接工作了。没想到这项看起来不需要多少技术的工作却是十分的劳心劳力。很多次是早上起来带瓶水带些吃的到实训中心,一泡就是一天。我看到有很多人跟我一样,不一样的是他们是三三两两,而我大部分时间都是一个人做。在这个时候也有很多人帮忙我,或是热心的帮我带饭,或是在我打盹儿的时候帮我做点焊接。大家都鼓励我,即使最终出不来东西,可是必须要坚持把它做完。当我想放弃的时候,我也这么对自我说,即使你做出来的是次品甚至不合格品,可是你必须要拿出来一件成品。
在要验收前,最终做了一件成品出来,不幸的是它真的是一件不合格品。帮我的那个男生做的已经出来了,所以最终应当还是我的焊接方面的问题。有一点灰心,想再重做来不及了,单是检查线路却也查不出来什么问题。那么就准备答辩吧。我对着电路图再看课本,发现以前很多觉得很难记的东西此刻记起来容易多了,因为整天都在同它们打交道。51的引脚及其功能,AD转换器的,驱动器的,所有我用到的我都一再的看书了解,同时请教同学我看书过程当中的疑惑。在这个过程中又发现了以前焊接当中出的一些问题,能改的就改,不能改的,咳,要是时间再多一些,或者我能早点做好,要是不只是我一个人动手……算了吧,不要想那些如果,还是准备我自我的,做好我此刻能做的吧。
还好,验收还算成功,得了3分,不是很高,可是我觉得对我来说已经很好,代表了我真实的水平,我觉得我对单片机的一些知识在这个动手的过程中真的是从无到有增长的。同时我也尽量不去想别人得了多少分,没有什么不平衡的,有些人付出的是努力,有些人付出的是风险代价,其实这也没有什么不一样,这一点我早就了解。
最终,我发现自我对单片机竟然也有了一点兴趣,想暑假回家以后自我去买一些东西来做,再补一补汇编语言。有什么问题请教下以前的那些老同学好了,他们好厉害,在高中劳动课就成功的做出过调频收音机,大一暑假的时候参加了学校的电子竞赛培训之后比赛,可是之后怎样样我就不明白了。汗。看来要多坚持联络,这次回家就好好找他们叙叙旧。
20xx年3月4日和3月5日,我在安徽省网络培训中心参加了《单片机原理》的精品课程培训,认真聆听了张毅刚教授和杨青勇副教授对单片机原理知识的全面解析和教学教法的深刻分析,收益颇丰,主要有以下二点心得体会:
一、单片机原理课程特点与定位
单片机原理课程是电气信息类专业学生的一门重要课程,是我院自动化、电子信息工程和通信工程专业学生的专业必修课程。单片机原理课程是一门面向应用的、具有很强的实践性与综合性的课程,它可以充分体现学生利用自己所掌握的知识解决实际工程问题的能力,在电类的专业课程中经常要用到单片机知识。单片机知识在电类专业整个课程体系中处于承上启下的核心地位,一般测控系统和智能仪器仪表的实现都离不开单片机与接口技术,在各种电子设计竞赛以及毕业设计中都会用到单片机,它是学生就业和攻读硕士学位的必备要求。单片机与接口技术是现代电气信息类等专业学生必须掌握的一项专业技术。
合肥学院是一所应用型的本科院校,20xx年又被教育部列为“卓越工程师教育培训计划建设单位”,对学生应用能力培养的重要性不言而喻。针对过去的传统单片机课程的“重理论,轻应用,理论与实践不能紧密结合”的.教学特点,我们必须重新定位《单片机原理》课程的培养目标,重点培养学生的实践动手能力,提高学生的综合素质,培养掌握单片机应用系统设计的应用型人才。
二、单片机原理课程教学内容整合与优化
传统的单片机原理课程注重知识导向型,教学思路是按照教材的顺序,先讲单片机硬件基础知识,再讲指令系统和汇编语言编程,最后讲接口技术和一个单片机应用实例。学生只有在课程学习的最后才接触到单片机的实际应用系统,而在此之前的学习由于学习目标不明确,学生会感到学习内容枯燥乏味,因而学习的兴趣不高。
我们需要以知识为基础,以能力为核心,构建新的实践化课程内容体系,确保教学内容的合理性、实用性和先进性。建立完善“以芯片为基础,以接口设计为主线,以系统设计为目的”的课程体系,以典型项目实例分解模块,可以考虑以一个简单的“智能电子钟(lcd显示)”项目实例引入,将实例分解得到相应的知识模块,将分解出来的知识模块按照循序渐进的原则分别放在芯片和接口设计部分中进行讲解,以各个模块构建知识,前后连贯,层层递进。最后,再将前述内容以系统设计应用来统领全局,进行综合,达到以“应用”为主线连接所学知识内容的目的。用典型的项目实例统领整个教学内容,让学生在学习过程中得到了反复性的思维训练,加深了对教学内容的理解和运用,增强了学生对单片机应用性的熟悉和理解,同时在这个过程中,学生由于会不断地获得成就感,可以更大地激发起学生的求知欲望和主动学习的兴趣。
在实际教学中,让课堂理论教学和实验室实践教学一体化,打破实验室和教室的界限,打破课堂理论教学与验证式实验教学的界限,教师讲解和实物演示(或proteus仿真演示)同步,让学生主动参与进来,实施以学生为主体、教师为主导的教学模式,真正做到理论和实践的结合,从而达到单片机原理课程的教学培养目标。
总之,这次网络培训学习,对我的单片机原理课程的教学内容和教学手段有着非常重要的指导作用,我会不断更新教学内容和优化教学模式,提高单片机原理课程的教学效果。
一直想写一个帖子,将自己学习单片机的经历、经验和方法总结一下,今天终于动手写了,呵呵,这是我学习单片机的经验、心得、方法。希望对大家学习单片机有所帮助。
经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。
05年的时候,因为制作FM发射电路采用了BH1415的芯片,需要用到单片机控制,所以开始接触使用单片机,虽然以前读书时作为一门功课学过,不过也快丢荒了10年了,基本上都忘光了,也算是从头学起了吧。我当时是买了一块实验板,很简单的功能,比论坛实验板还要少功能,还有一个仿真器,也是比较简单的,SST芯片的。然后开始从大家都知道的流水灯写起,万事开头难,第一个程序基本上就抄人家的,翻查了一份快速入门的学习资料,写下第一个程序。然后,在仿真机是单步的看运行结果,从每一步执行,都硬件上反应出来的效果,很快,对单片机的运作有了一个非常感性的认识,这跟只看书然后自己想象运行是完全两码事。然后,是进一步的其它程序学习,一个月时间,基本上已经熟悉了51的各种硬件资源。把流水灯,数码管动态扫描,中断等等的学习了,然后就是写综合性的程序,也就是我发在论坛里的时钟。通过这个程序的编写,使自己的编程水平有了很大的飞跃。之后,就是逐步学习编写更多的程序,各种外围器件的控制等等,通过编写程序使自己不断的提高。在学过汇编之后,我又转到了C语言学习,因为以前没有学习过C语言,一切都很陌生,所以自己沿用了学习汇编的方法,大约花了3天功夫基本就对C语言有了初步的了解,然后就是尝试写上面所说的时钟,以汇编程序的思路作为参考,以C语言来编写,花了几天功夫完成了这一程序,也实现了从汇编编程为主到C编程为主的转变。然后,就是以C语言编写外围器件的控制程序,以此来熟悉C的编程风格,一直到现在,基本上就是C语言编程,汇编已经是作为调试程序的辅助。
下面我概括了几点我的学习经验和心得体会:
1、万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,说KEIL不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成HEX,刷进单片机中、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。
2、知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。
3、程序不要光看不写,一定要自己写一次。最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距……当你自己能写出来的时候,说明你就真的懂了。
4、必须学会掌握调试程序的方法。不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如KEIL里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。
5、找到解决问题思路比找到代码更重要。我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。举个例子:数码管动态扫描,没写过的初学者可能搞不清是怎么回事,其实,就是分时让每一时间段时只控制一只数码管显示数字,几只数码管轮流显示,由于速度很快,人眼的看起来是全部数码管都亮的。明白是这么一回事,事情就好办了,剩下的事情,无非是你安排让一只只数码管轮流显示出相应的数值。显示数字,然后延时一下,再下一只显示数字,延时,知道是这样,我们实际程序上只要做到这样就可以:往段口送段码,然后打开位选显示一只,延时一下,再关闭位选,再送出段码,再打开另一只位选仅此而已。有了解决问题的思路,我们就能问题拆分开来,然后逐一的解决,如果动态扫描的原理都没懂,不知道如何做,那么这个程序是怎么也写不出来的。
6、开动脑筋,运用多种方法,不断优化自己的程序。想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。
7、看别人的代码,学习人家的思路。这个在学习初期是很有用,通过看别人的代码,特别是有多年编程经验的人写出的具有一定水平的代码,可以使自己编程水平得到迅速的提高,同时,也可以结合别人的编程手法,与自己的想法融合在一起,写出更高水平的代码,从中得到进步。但要注意,切忌将学习变成抄袭,更不是抄袭完了就认为自己学会了,这样做只会使你退步。
8、尝试编写一下综合应用的程序。从流水灯学起,到动态扫描,再到中断,那么,你可以试试写一下时钟这种综合性应用的程序,不要小看时钟,要写好它不是一件容易的事情,它包括了单片机大部分的知识,比如有按键(IO读取)、动态扫描(IO输出)、中断等,如何协调好各功能模块正常工作,才是编程者需要学习的地方,当你单独写一个功能的时候,比如按键读取,你可能感觉很容易,因为你的程序啥也不做,只是读按键。但把它和其它功能混合在一起,如何在整个程序运行中使每一部分都正常工作,这就不是写一个按键读取这么容易的事情,功能模块之间有可能会互相影响,比如你需要让数码管既能显示,又要去处理按键读取,怎么使这两部分都正常工作,这就是一个协调过程。当你有了这个处理协调能力,你就算是入门了。
9、着重于培养解决问题的能力,而不是具体看自己编写了多少代码或者做过什么。“学单片机重点在于学习解决问题的思路,而不是局限于具体的芯片类型和语言”这一直是我的座右铭,是我学单片机多年来感悟出来的。经常看到有人说“你会驱动芯片,真牛啊”“你搞过XX项目,真厉害”之类的话,其实这是非常片面的,搞过芯片,搞过XX项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的`问题或器件,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。写程序的过程就是一个创造的过程,几乎没有完全一样的项目,每次你遇上的几乎都不相同,所以你拥有的必须是你面对新项目时的创造能力,而不是标榜着你以往做过多少项目。当然,业绩也能从另一侧面反映你的经验和水平。
10、如果有可能,多学习计算机专业的知识,比如数据结构等。这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。如前所说“会控制器件”这些只能算是微观编程,能做到这一步还只能算是菜鸟级别,如果面对一个新的器件,你心里没底,没把握去写这个控制程序,那说明你还是一个初级的菜鸟。当你有了一定的编程经验,控制过相当数量的器件之后,你就会发现,控制器件这些工作都是相似的、重复的工作,体现不出编程的水平,最多也是写得好与不好的差别,只能算是一些小技巧的应用。而对整个程序进行布局、安排这些才是最头痛的事情,能达到宏观编程和微观编程都做好才是真正的高手。对于规模越大的程序,越能体现出这一点。
11、面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。
12、多利用网络的搜索,学会提问题。一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。