单片机学习总结(优秀17篇)

单片机学习总结(优秀17篇)

ID:9278909

时间:2024-01-15 07:47:58

上传者:雁落霞

在学习总结中,我们可以反思自己的学习过程,寻找提高学习效果的方法和策略。以下是一些经过整理和编辑的学习总结范文,希望对大家的写作有所帮助和启发。

单片机学习心得

我从大二起,就去实验室去学习。在那里与老师和一些电子设计爱好者的交流中,我学到了更多的专业知识。我从此走上了学习嵌入式的道路。这丰富了我的大学生活,是我在大学的最大收获。

我是从学习单片机开始我的嵌入式学习的。

我接触单片机的方式是在图书馆看书,我看了很多本书,但是大多数书写的大同小异。书里面讲解的单片机的寄存器我看了很多遍也没有看懂。我都不明白改怎样学习它了。慢慢的我悟出了一个道理:电子的学习实践是最重要的,这样,我在大二的时候就买了一块学习板,我一边看视频一边仿照视频的程序,自己编写程序,在很短的时间里,我的单片机有了很大的提高。那些难懂的寄存器透过编写程序,我慢慢的弄懂了它们,此刻回头看去,原先它还是很简单的。

用哪种编程语言最适合我们。

我看过的单片机的书籍,大部分的程序都是汇编写的。它是一种基于机器硬件的低级语言,对于我们这些只学习过c语言的人来说,十分难懂。我认为刚开始学习单片机没有必要必须要从学习汇编编程开始。我学习单片机就是用c语言编程的,我并不会汇编语言,也没有妨碍我把单片机学好。

很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用c语言为单片机编程,既省时间,学起来又容易,进步速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。

单片机提高重在实践,想要学好单片机,软件编程必不可少。但是熟悉硬件对于学好单片机的也是十分重要的。如何学习好硬件,动手实践是必不可少的。我们能够透过自己动手做一个自己的电子制作,透过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就能够多一些了解芯片的结构。我相信,你完成了一个属于自己的电子制作,你的单片机水平就会有一个质的提高。

这就是我学习单片机的心得体会,期望给单片机的爱好者学好单片机有所帮忙。

单片机学习总结精选

为了给前一段时间学习pic16f616型单片机的一个总结和方便大家的交流,我写了这篇关于pic单片机的学习心得,都是在看了手册和编程调试后用自己的语言组织的,其中有不足或者有疑问的地方希望大家能及时的给予纠正和批评,提出宝贵的意见。

单片机学习心得

我看到书上讲:单片机能够用两种语言编写,一种是c语言,另外一种是汇编语言。汇编语言是一种机器语言,且代码繁琐,不易记忆。需要掌握单片机的内部结构和逻辑结构,透过看了几本书让我了解认识到汇编确实太繁琐,但是我学习过c语言,也参加了全国计算机二级考试,觉得自己在一方面具有优势,能很快学好它。

但是在学习中,我才发现学习单片机不仅仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎样和电脑相连都不明白,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。

时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。

俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目,其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

虽然这次的课程设计算起来在实验室的时间只有三天,但是因为我们都有自己的实验板,所以在宿舍里做实验的时间必须不止三天。

硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对就应是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

单片机的学习方法

单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。

学习单片机的要领就是:在实践中成长,indoingwelearn!

学射箭,你得去拉弓,整天只摆造型肯定不行;学游泳,你得下水扑腾,整天在岸上做模仿活动不行;学开车,你得坐车上去开,坐沙发上肯定学不会。同样的道理,学单片机,整天盯着单片机书看肯定不行,你也必须得亲自动手去练。

没有不下水就学会游泳成为游泳健将的,没有不到车上练就能成为赛车手的,这点大家都清楚,可为什么那么多人学单片机的时候,总是只抱着一本书看呢。第一,我们小学中学甚至大学的学习模式都是如此,学什么东西主要都是靠看书,应付书面考试;第二,很多人想实践却不太清楚该怎么去实践。

遇到问题查下书比直接看书的效果要好过百倍。不是不让大家看书,而是看了一点以后,要马上去实践验证,然后再回头结合实践的结果,理解书上的内容。从这个地方,大家要得出一个结论来,就是在学实际技术的过程中,和应付考试不同,书上的内容不需要你去硬性记忆,书是用来查的,不是用来背的。

单片机学习心得

熟悉单片机的人都明白,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计(随便说一下,很多书中的电路设计已经过时,并且有些程序还是错误的)。如果按照此种学习方法,想进行产品开发,就务必先把所有的知识全部掌握了才能够进行实际应用。学习使用单片机只能靠循序渐进的积累,下面就本人学习单片机的过程和经验做简要介绍。

首先,学习单片机要有必须的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,个性是数字电路;编程语言要求汇编语言或c语言。要想成为单片机高手,推荐初学者首先学习汇编语言,学的差不多的时候,转入c语言学习。尽管汇编语言属于低级语言,编程效率低,但是较c语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。c语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了c语言,那只是c语言的一部分。在那里给大家推荐一本单片机c语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的c语言应用程序设计》,要求c语言基础。如果没学过c语言,推荐学习清华大学谭浩强编写的c语言程序设计,这本书写的不错,通俗易懂。

其次,是单片机教材选取。单片机是一门十分重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有必须地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。此刻单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、pic系列、avr系列、摩托罗拉等等……我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有必须的相似,只要学精通一款就ok了!尤其是用c语言编程,就几乎不用分什么派系,但是我们要选取一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,mcs-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编mcs-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。

定某个实验,就恭维的告诉你一声”恭喜你,学会了”自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了必须了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品.因此除了入门外,精通可千万别轻易说出口。

最后,在熟练掌握和应用后,那能够说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计电路,不断的积累经验。最终,自己完全设计具有个人风格的电路,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,大家可能都听过。时下多家电子类的报刊杂志如:《电子制作》《无线电》《电子报》《电子世界》都开设了详细的单片机教程专栏,对于想学习单片机的朋友来说帮忙很大,能够说此刻的单片机教程环境是最好的,有网络,有书籍,有报刊杂志,还有视频教程,元件的采购方面也十分充足,相关的器材又多有便宜。如果每一天能抽出两小时的时间去学习,快的一个月,慢的三个月就入门拉。

以下是一些经验:

(1)学习单片机没有捷径,别指望两三天就学会,要坚持不懈,重在积累。

(2)别崇拜高手,别相信天才,大部分人都不是天才(相信你也不是)!

(3)单片机是一门应用性和实践性很强的学科,要多动手,多做实验。

(4)要学会参考别人的程序,减少自己琢磨的时间,迅速提高自己的编程潜力。

(5)碰到问题能够借助网络来搜寻答案和对自己有帮忙的问题,能够大大减少你的开发时间。

(6)要多交一些朋友,多交流。技术是靠不断的积累和交流才会进步的,封闭自守只会更加落后。

期望大家多上网看看前辈的经验,能够少走很多弯路。最后,祝愿大家早日成为单片机高手。

单片机学习总结精选

通过单片机课上的系统设计项目,作为一个三人组成的团队,我们在团队管理方面都深有体会。

首先一个团队的每个成员必须同心协力,共同努力完成任务。团队每个成员都要有责任感,因为我们团队只有三个人,所以大家都可以做到相互督促,相互鼓励,每个人对整个项目也都有很整体的把握。一个人遇到难以克服的困难,三个人团结协作一起解决。

同时也要注意分工的问题,责任分配一定要明确,困难是大家的,责任却是个人的。小团队里不需要专门的问责制,但是我们团队每个成员都很自觉的承担起各自的责任。一定要注重效率,避免重复工作。这又向我们提出了经常交流的要求。只有多交流,搜集到的资源才能充分共享,每个人都知道其他人的想法,清楚项目的进程。

最后还要注意团队精神状态的保持。团队成员应始终对单片机应用有充足的兴趣,不会因为困难而轻易退缩。将最初的热情保持到最后才能取得成功。队长应始终保持乐观态度,适时调动团队情绪,使得整个团队的精神保持在良好的状态。

我们在项目的设计制作过程中遇到了各种各样的问题,比如超声波接收电路换过两次,仍然不能成功接收超声波;lcd显示屏只能仿真成功,下载到单片机上却总是不能工作。我们灰心过,但是到最后还是在努力试图完成我们的项目。

单片机的学习方法

单片机是一门实用技术,我们学习它已经不是为了应付考试了,我给大家总结了单片机的学习方法是:一个要领,四个步骤。

学习单片机的要领就是:在实践中成长,indoingwelearn!

学射箭,你得去拉弓,整天只摆造型肯定不行;学游泳,你得下水扑腾,整天在岸上做模仿活动不行;学开车,你得坐车上去开,坐沙发上肯定学不会。同样的道理,学单片机,整天盯着单片机书看肯定不行,你也必须得亲自动手去练。

没有不下水就学会游泳成为游泳健将的,没有不到车上练就能成为赛车手的,这点大家都清楚,可为什么那么多人学单片机的时候,总是只抱着一本书看呢。第一,我们小学中学甚至大学的学习模式都是如此,学什么东西主要都是靠看书,应付书面考试;第二,很多人想实践却不太清楚该怎么去实践。

遇到问题查下书比直接看书的效果要好过百倍。不是不让大家看书,而是。

单片机学习心得

单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。概括的讲:一块芯片就成了一台计算机。它的体积小、质量轻、价格便宜、为学习、应用和开发提供了便利条件。同时,学习使用单片机是了解计算机原理与结构的最佳选择。单片机在学习和讲解时可以和学生已比较熟悉的微机的结构进行对比,因为单片机内部也用和微机功能类似的模块,比如cpu、内存、并行总线,还有和硬盘作用相同的存储器件,在学习和讲解中要着重强调单片机在以上相关芯片部件与微机的异同,应用时的差别。突出讲解单片机是一种在线式实时控制计算机的本质特征,及有较强的抗干扰能力,较低的成本的特性,并且通过列举在日常日常生活中的常见的家电产品如全自动滚筒洗衣机、排烟罩、vcd等等,让学生对单片机的应用产生直观认识,提高学生的学习兴趣。

在进行单片机课程教学安排时,要遵循一定的次序,因为学习单片机知识需要有一定的基础。例如要具备一定的电子技术方面(数字电路和模拟电路等方面)的理论基础,特别是数字电路;软件设计方面要具备一定的编程语言学习基础(如汇编语言或c语言)。引导学生要想成为单片机高手,建议学生首先学习汇编语言,学的差不多的时候,转入c语言学习。尽管汇编语言属于低级语言,编程效率低,但是较c语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。c语言是一门学问,有很多专业书籍来讲解,并且对学生今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为学习了学校的c语言课程就以为掌握了c语言,那只是c语言的一部分。在教学中给学生推荐单片机c语言程序设计参考书,例如马忠梅等著,北京航空航天大学出版社出版的《单片机的c语言应用程序设计》,要求c语言基础。如果没学过c语言,建议学习清华大学谭浩强编写的c语言程序设计,这本书编写得比较好,通俗易懂。

定地了解和感官认识。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,按内部结构体系派系分:51系列、pic系列、avr系列、摩托罗拉等等……教导学生没必要每样都学!因为上述单片机的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就可以了。一般来说,mcs-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。因此可以引导学生在教材之外选择一款有代表性的知识范围广,并且入门容易的51参考书。

最后,任何硬件的应用都离不开软件的设计支撑,因此在讲授单片机的课程中要强调编程的重要性,鼓励学生从小程序的编写设计开始,从模仿到独创,锻炼编程能力。并且注意记住单片机的外部引脚,p3口的复用,相关寄存器,psw的设置,将软硬件技术结合起来,把理论用于实践中去,实现用单片机控制各个机构去做想要实现的事情,把抽象的东西用计算机语言表达出来传给单片机的最终任务。

如何快速学习单片机

学习单片机最终要的是当然是练,我所说的学习跟课堂上的单片机学习不同,我以前也看过一些单片机教材,有些教材讲的是单片机的工作原理和内部结构,这些东西对于我们暂时并不需要,等以后开课的时候在学习好了。现在要学习的是暂时抛开内部结构原理不谈,如何能用单片机写一些简单的小程序,是从实用性的角度出发,网上有一种说法称之为先实践后理论的学习方法。

因此我的观点如下,单片机的硬件结构首先要有一个基本的了解,最起码要知道各引脚的功能、区别,能自己动手搭一个单片机的最小系统,然后就可以直接从程序入手,程序最好还是用c语言编程,从简单的跑马灯做起,逐渐深入,陆续可以做一些数码管、液晶、ds1302、ds18b20等电子元器件的应用,在深入就可以结合一些具体实例扩展一些中断、串口通讯等功能。还有一点要声明的是单片机里用到的c语言其实很有限,课堂上学习c++的很大一部分内容在初期单片机编程中都用不到,因此没必要因为觉的自己的c语言基础不是很好而对单片机望而止步!

单片机学习心得

1、学习单片机没有捷径,别指望两三天就学会,要坚持不懈,重在积累。

2、别崇拜高手,别相信天才,大部分人都不是天才(相信你也不是)!

3、单片机是一门应用性和实践性很强的学科,要多动手,多做实验。

4、要学会参考别人的程序,减少自我琢磨的时间,迅速提高自我的编程潜力。

5、碰到问题能够借助网络来搜寻答案和对自我有帮忙的问题,能够大大减少你的开发时间。

6、要多交一些朋友,多交流。技术是靠不断的积累和交流才会提高的,封闭自守只会更加落后。

单片机学习心得体会

两周的单片机课程设计最终顺利完成了,其中包含着欢乐,也有辛酸。我们选的设计题目是“数字温度计”,大家都觉得这个题目是比较简单的。其实不然,做了之后,发现设计电路虽然简单,但我们认为它真正困难的地方是程序设计,可是在我们同心努力下最终完成了。

我们刚选该题目时,真的是一头雾水,硬件电路不知如何下手,更何谈解决程序那块,因为我们所学的都是单片机方面的理论知识,应用到实践中去还比较少。可是,我们三人也没偷下懒,迅速分工去查阅和收集资料。我们去了图书馆借一些参考书,上网找一些相关资料,并且请教指导教师。经过不断努力,最终把数字温度计的思路和模型定了下来并开始分一个人去焊接硬件电路,剩下的去整理和修改程序。

经过一番整理和修改后,在电脑上进行仿真,仿真成功后准备焊接电路板。在焊接电路板中,我们首先对硬件电路进行布局,然后确认无误后,在电路板上进行焊接,这个过程我们觉得是做得比较快的,以至于后面出现了虚焊的错误。

焊接电路板完工,细心检查后,进行通电测试。结果液晶lcd没有显示,经过检查,原先是lcd坏了,在换了块新的后,能显示显示值。但还有个问题是,当报警电路不会报警,在请教教师后,发现走动蜂鸣器的电压太低了,是因为串接了一个太大的电阻。然后,我们换了一个小电阻,但这时蜂鸣器却一向在叫,停不下来,可是,在我们三人的的细心检查下,原先是在放大电路的一端虚焊了,这说明我们焊接电路的技术还不够好。在重新焊接那端后,数字温度电路最终成功实现功能,当时我们的心境都是无比兴奋和欢乐的,因为我们两周的辛苦没有白费。

在完成单片机课程设计后,我们发现我们还有许多不足,所学到的知识还远远不够,以至于还有一些功能不能被动完成。但经过学习这一次实践,增强了我们的动手本事,提高和巩固了单片机方面的知识,特别是软件方面。从中增强了我们的团队合作精神,并让我们认识到把理论应用到实践中去是多么重要。

单片机学习心得

在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟,还有手机中,电子玩具等等,它们里面都有单片机的存在来实现某种功能。通过在单片机小组里的学习我简单总结了几点心得和体会:

第一:万事开头难,要勇敢的迈出第一步,不要总找借口说没有学习过就总推脱。凡事都有第一步可以先可简单的来,然后可以逐步的向深层次学习。可以从建项目开始,然后可以找一个简单的小程序先把它敲进单片机内然他运行起来,感觉一下单片机的运行,让自己了解单片机整个运行。

第二:对于知识点,学过的要掌握牢固,对于没有学的和暂时用不到的先不用学习。比如:小灯得点亮就没有用到中断可以先不用看。这样可以避免知识过多记不住的麻烦。对于程序这里的知识点不能只停留在理论层次上,一定要结合着程序进行学习这样才能掌握的很牢靠,当用到哪里的知识点不记得了可以去看书,对于用不到的可以不去看。

第三:程序不要只是看别人得,一定要自己写过才是自己的。开始不懂可以参考别人的,看看每一句代表着什么意思,能够实现什么现象。明白之后自己再重新写一遍,你会发现看别人的能懂到自己写的时候很困难。当你自己能写出来的时候说明你真懂了。

第四:一定要学会程序调试的方法。有时候把程序写完了然后运行时不能实现理想的现象。这时有人就晕了不知该怎么办,然后就去问别人。当别人找出问题出在哪里时就会恍然大悟。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人。自己一定要掌握解决问的方法和思路。

一起完成任务,虽然省时间但不利你的学习。当你遇到一新项目时你应该先想一下程序的构架,想想如何来完成。然后自己动手去写,当你遇到实在是没办法解决的问题时再去请教别人,看他是怎么处理的,学习他的方法。这样起码你自己想过了,有自己的思路不会受到别人的影响,这样更容易提高自己。

在单片机的学习开始时感觉很吃力,在不断的学习过程中慢慢的对单片机产生了些好感,而且在编写程序过程中吃力的感觉慢慢的淡了。在这其中基础知识掌握牢固是非常重要的,然后在学习过程中要学会提问题和自己解决问题,慢慢的对于学习单片机你也会产兴趣。虽然在开始学习单片机时感觉很青涩,但只要坚定自己的学习信心,在付出持之以恒的努力,我相信自己能进一步加深对单片机的了解,在单片机的学习道路上走得更远!

单片机学习心得

经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。

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项目,真厉害”之类的话,其实这是非常片面的,搞过xx芯片,搞过xx项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的问题或器件,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。写程序的过程就是一个创造的过程,几乎没有完全一样的项目,每次你遇上的几乎都不相同,所以你拥有的必须是你面对新项目时的创造能力,而不是标榜着你以往做过多少项目。当然,业绩也能从另一侧面反映你的经验和水平。

10、如果有可能,多学习计算机专业的知识,比如数据结构等。这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。如前所说“会控制xx器件”这些只能算是微观编程,能做到这一步还只能算是菜鸟级别,如果面对一个新的器件,你心里没底,没把握去写这个控制程序,那说明你还是一个初级的菜鸟。当你有了一定的编程经验,控制过相当数量的器件之后,你就会发现,控制器件这些工作都是相似的、重复的工作,体现不出编程的水平,最多也是写得好与不好的差别,只能算是一些小技巧的应用。而对整个程序进行布局、安排这些才是最头痛的事情,能达到宏观编程和微观编程都做好才是真正的高手。对于规模越大的程序,越能体现出这一点。

11、面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。

12、多利用网络的搜索,学会提问题。一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。

单片机学习心得

一直想写一个帖子,将自己学习单片机的经历、经验和方法一下,今天终于动手写了,呵呵,这是我学习单片机的经验、心得、方法。希望对大家学习单片机有所帮助。

经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。

的时候,因为制作fm发射电路采用了bh1415的芯片,需要用到单片机控制,所以开始接触使用单片机,虽然以前读书时作为一门功课学过,不过也快丢荒了了,基本上都忘光了,也算是从头学起了吧。我当时是买了一块实验板,很简单的功能,比论坛实验板还要少功能,还有一个仿真器,也是比较简单的,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项目,真厉害”之类的话,其实这是非常片面的,搞过xx芯片,搞过xx项目,只能说明你做过这一项目,它只是你的业绩,并不是代表能力就一定高。真正的能力应该是:“遇到没有解决过的问题或器件,能利用自己已学的知识,迅速找到解决问题的方法。”这个才是能力。写程序的过程就是一个创造的过程,几乎没有完全一样的项目,每次你遇上的几乎都不相同,所以你拥有的必须是你面对新项目时的创造能力,而不是标榜着你以往做过多少项目。当然,业绩也能从另一侧面反映你的经验和水平。

10、如果有可能,多学习计算机专业的知识,比如数据结构等。这些是你解决问题的基础知识,你把这些知识应用得越好,就会发现越容易找到解决问题的方法,这就是为什么一个学计算机专业的人编的程序和一个非计算机专业的人编的程序有差异的原因。也是一个菜鸟进军到高手所要配备的知识。如果我们把编程分为宏观编程和微观编程,那么微观编程就是写具体的代码,比如控制某某器件的语句;而宏观编程就是如何对整个程序进行布局、安排,使功能模块以你想要的方式去运行,得出你想要的结果。如前所说“会控制xx器件”这些只能算是微观编程,能做到这一步还只能算是菜鸟级别,如果面对一个新的器件,你心里没底,没把握去写这个控制程序,那说明你还是一个初级的菜鸟。当你有了一定的编程经验,控制过相当数量的器件之后,你就会发现,控制器件这些工作都是相似的、重复的工作,体现不出编程的水平,最多也是写得好与不好的差别,只能算是一些小技巧的应用。而对整个程序进行布局、安排这些才是最头痛的事情,能达到宏观编程和微观编程都做好才是真正的高手。对于规模越大的程序,越能体现出这一点。

11、面对一个新项目时,多自己开动脑筋,不要急于找别人的程序。有不少人面对一个新项目时,第一步想到的就是网上找别人写过的代码,然后抄一段,自己再写几句,凑在一起就完成任务,这虽然可能是省时间,但绝对不利你的学习。当你接到一个新项目时,应该先自己构思一下整个程序的架构,想想如何来完成,有可能的话,画一个流程图,简单的可以画在脑子里,对程序中用到的数据、变量有一个初步的安排,然后自己动手去写,遇到实在没办法解决的地方,再去请教别人,或看别人是怎么处理的,这样首先起码你自己动过脑想过,自己有自己的`思路,如果你一开始就看别人的程序,你的思维就会受限在别人的思维里,自己想再创新就更难了,这样你自己永远也没办法提高,因为你是走在别人的影子里。

12、多利用网络的搜索,学会提问题。一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。

以上就是我学习单片机的经历和心得体会,希望对大家会有帮助,说得有不好或不对的地方欢迎大家批评指正。

时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。

俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究老师给的题目,选一个自己有兴趣的题目。其次,老师对实验的讲解要一丝不苟的去听去想,因为只有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最后,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。

虽然这次的课程设计算起来在实验室的时间只有三天,不过因为我们都有自己的实验板,所以在宿舍里做实验的时间一定不止三天。

硬件的设计跟焊接都要我们自己动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。

当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。()第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应该是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。

在这次难得的课程设计过程中我锻炼了自己的思考能力和动手能力。通过题目选择和设计电路的过程中,加强了我思考问题的完整性和实际生活联系的可行性。在方案设计选择和芯片的选择上,培养了我们综合应用单片机的能力,对单片机的各个管脚的功能也有了进一步的认识。还锻炼我们个人的查阅技术资料的能力,动手能力,发现问题,解决问题的能力。并且我们熟练掌握了有关器件的性能及测试方法。

再次感谢老师的辅导以及同学的帮助,是他们让我有了一个更好的认识,无论是学习还是生活,生活是实在的,要踏实走路。课程设计时间虽然很短,但我学习了很多的东西,使我眼界打开,感受颇深。

单片机学习心得

一直想写一个帖子,将自己学习单片机的经历、经验和方法总结一下,今天终于动手写了,呵呵,这是我学习单片机的经验、心得、方法。希望对大家学习单片机有所帮助。

经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。

05年的时候,因为制作fm发射电路采用了bh1415的芯片,需要用到单片机控制,所以开始接触使用单片机,虽然以前读书时作为一门功课学过,不过也快丢荒了10年了,基本上都忘光了,也算是从头学起了吧。我当时是买了一块实验板,很简单的功能,比论坛实验板还要少功能,还有一个仿真器,也是比较简单的,sst芯片的。然后开始从大家都知道的流水灯写起,万事开头难,第一个程序基本上就抄人家的,翻查了一份快速入门的学习资料,写下第一个程序。然后,在仿真机是单步的看运行结果,从每一步执行,都硬件上反应出来的效果,很快,对单片机的运作有了一个非常感性的认识,这跟只看书然后自己想象运行是完全两码事。然后,是进一步的其它程序学习,一个月时间,基本上已经熟悉了51的各种硬件资源。把流水灯,数码管动态扫描,中断等等的学习了,然后就是写综合性的程序,也就是我发在论坛里的时钟。通过这个程序的编写,使自己的编程水平有了很大的飞跃。之后,就是逐步学习编写更多的程序,各种外围器件的控制等等,通过编写程序使自己不断的提高。在学过汇编之后,我又转到了c语言学习,因为以前没有学习过c语言,一切都很陌生,所以自己沿用了学习汇编的方法,大约花了3天功夫基本就对c语言有了初步的了解,然后就是尝试写上面所说的时钟,以汇编程序的思路作为参考,以c语言来编写,花了几天功夫完成了这一程序,也实现了从汇编编程为主到c编程为主的转变。然后,就是以c语言编写外围器件的控制程序,以此来熟悉c的编程风格,一直到现在,基本上就是c语言编程,汇编已经是作为调试程序的辅助。

下面我概括了几点我的学习经验和心得体会:

1、万事开头难、要勇敢迈出第一步。开始的时候,不要老是给自己找借口,说keil不会建项目啦、没有实验板啦之类的。遇到困难要一件件攻克,不会建项目,就先学它,这方面网上教程很多,随便找找看一下,做几次就懂了。然后可以参考别的人程序,抄过来也无所谓,写一个最简单的,让它运行起来,先培养一下自己的感觉,知道写程序是怎么一回事,无论写大程序还是小程序,要做的工序不会差多少,总得建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成hex,刷进单片机中、运行。必须熟悉这一套工序。个人认为,一块学习板还是必要的,写好程序在上面运行一下看结果,学习效果会好很多,仿真器就看个人需要了。单片机是注重理论和实践的,光看书不动手,是学不会的。

2、知识点用到才学,不用的暂时丢一边。厚厚的一本书,看着人头都晕了,学了后面的,前面的估计也快忘光了,所以,最好结合实际程序,用到的时候才去看,不必说非要把书从第一页看起,看完它才来写程序。比如你写流水灯,完全就没必要看中断的知识,专心把流水灯学好就是了,这是把整本书化整为零,一小点一小点的啃。

3、程序不要光看不写,一定要自己写一次。最开始的时候,啥都不懂,可以抄人家的程序过来,看看每一句是干什么用的,达到什么目的,运行后有什么后果,看明白了之后,就要自己写一次,你会发现,原来看明白别人的程序很容易,但到自己写的时候却一句也写不出来,这就是差距……当你自己能写出来的时候,说明你就真的懂了。

4、必须学会掌握调试程序的方法。不少人写程序,把代码写好了,然后一运行,不是自己想要的结果,就晕了,然后跑到论坛上发个帖子,把程序一贴,问:为什么我的程序不能正常运行?然后就等别人来给自己分析。这是一种很不好的行为,应该自己学会发现问题和学会如何解决问题。这就需要学习调试程序的方法,比如keil里,可以下断点啦,查看寄存器内容等等,这些都是调试程序的手段,当你发现你写的程序运行结果和你想象中不一样的时候,你可以单步,也可以下断点,然后跟踪,查看各相关寄存器内容,看看程序运行过中是不是有什么偏差,找出影响结果的地方,改正过来。这一个过程非常重要,通过程序的排错,你可以学到的知识是书上得不到的。

5、找到解决问题思路比找到代码更重要。我们用单片机来控制周边器件,达到我们想到的目的,这是一个题目,而如何写出一个程序,来控制器件按你想要的结果去运作,这个就是解题的思路。要写程序,就得先找到解决问题的思路,你学会找出这个解题思路,比你找到代码更为重要。不少人很喜欢找人家的代码,有的人甚至有了代码就直接复制到自己的程序中,可以说,这不是一种学习的态度,无助于你编程水平的提高。我几乎不怎么看人家的代码,多数时候是看别人的思路,有方框图最好,没有的话文字说明也可以,要从代码中看出别人处理问题的思路,是相当困难的,特别是大型的程序,看起来是非常的累人,所以现在我也明白了,以前读书时说的程序流程图很重要,现在算是知道了。当你知道一个问题怎么去解决了,那么剩下的只是你安排代码去完成,这就已经不是什么问题了。举个例子:数码管动态扫描,没写过的初学者可能搞不清是怎么回事,其实,就是分时让每一时间段时只控制一只数码管显示数字,几只数码管轮流显示,由于速度很快,人眼的看起来是全部数码管都亮的。明白是这么一回事,事情就好办了,剩下的事情,无非是你安排让一只只数码管轮流显示出相应的数值。显示数字,然后延时一下,再下一只显示数字,延时,知道是这样,我们实际程序上只要做到这样就可以:往段口送段码,然后打开位选显示一只,延时一下,再关闭位选,再送出段码,再打开另一只位选仅此而已。有了解决问题的思路,我们就能问题拆分开来,然后逐一的解决,如果动态扫描的原理都没懂,不知道如何做,那么这个程序是怎么也写不出来的。

6、开动脑筋,运用多种方法,不断优化自己的程序。想想用各种不同方法来实现同一功能。这是一个练习和提高的过程,一个问题,你解决了,那么你再想想,能不能换种写法,也可以实现同一功能,或者说,你写出来的代码,能不能再精简一点,让程序执行效率更高,这个过程,就是一个进步的过程。很多知识和经验的获得,并不是直接写在书让你看就可以得到的,需要自己去实践,开动脑筋,经验才能得到积累,编程水平才能有所提高。

觉,先建个项目,再配置一下项目,然后建个程序,加入项目中,再写代码、编译、生成hex,刷进单片机中、运行。其实当遇到问题一定要自己尝试着解决,不能遇到问题就去问别人,自己一定要掌握解决问的方法和思路。对一个新项目时,自己一定要多想想,不要急着去看别人是怎么写的。应该先想一下程序的构架,想想如何来完成。然后自己动手去写,理清自己的思路这样更容易提高自己。

熟悉单片机的人都知道,要学好单片机可不是一件容易的事,倒不是因为单片机很难学,而是很难找到一本专为单片机入门者而编写的教材。翻一下身边的单片机教材,都好像是为已经懂单片机的人而写的,一般先介绍单片机的硬件结构和指令系统,再是系统扩展和外围器件,顺便讲一些应用设计(随便说一下,很多书中的电路设计已经过时,并且有些程序还是错误的)。如果按照此种学习方法,想进行产品开发,就必须先把所有的知识全部掌握了才可以进行实际应用。学习使用单片机只能靠循序渐进的积累,虽然单片机的课程只上了几节就去上班了,但在学习的过程中有了一定的了解。下面就本人学习单片机的过程和经验做简要介绍。

首先,学习单片机要有一定的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,特别是数字电路;编程语言要求汇编语言或c语言。要想成为单片机高手,建议初学者首先学习汇编语言,学的差不多的时候,转入c语言学习。尽管汇编语言属于低级语言,编程效率低,但是较c语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。c语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,因此要深入学习,千万不要自以为看了某某的视频教程就以为掌握了c语言,那只是c语言的一部分。在这里给大家推荐一本单片机c语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的c语言应用程序设计》,要求c语言基础。如果没学过c语言,建议学习清华大学谭浩强编写的c语言程序设计,这本书写的不错,通俗易懂。

但这并不要紧,因为你还缺乏实践经验。现在单片机应用广泛,因此各个厂家分别推出了自己的单片机,我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有一定的相似,只要学精通一款就ok了!尤其是用c语言编程,就几乎不用分什么派系,但是我们要选择一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,mcs-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编mcs-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。

然后,是开发工具和开发环境的选择。选择一块合适的学习板,对于初学者来说一般无力接受,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、ad或da、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是非常宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。随便推荐一下,学林电子的51tracer仿真器,有兴趣的朋友可关注一下。有了单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自己多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自己的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得非常兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞定某个实验,就恭维的告诉你一声”恭喜你,学会了”自己学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了一定了解和会使用它了。但是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品.因此除了入门外,精通可千万别轻易说出口。

最后,在熟练掌握和应用后,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己练习设计开发各种课题,不断的积累经验。最终,自己完全设计具有个人风格的课题,产品,这样你就是单片机高手拉。只要过了第一关,后面的路就好走多了,万事开头难,这大家可能都听过。

有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。要坚定自己的学习信心,在付出持之以恒的努力,我相信自己能进一步加深对单片机的了解,在单片机的学习道路上走得更远!

单片机学习心得

本人还是学生,此刻大三,接触单片机一年多以来,从最基础的51开始,到更高级点的msp430,一向到此刻刚开始上手的stm32,编过的程序不算多,但加起来怎样也有上百个了,做过的东西仔细数数,能拿出手来算算的上是个样的也不下十个,算是小有所成吧。

但今日,我却发现,这一年我一向在走一条歪路。

先说一下情景吧,是这样的,最近同学几个合伙做个小项目,不算复杂,跟市面上的工程项目完全没法比,用难再需要使用的一个芯片是教师给的,从没用过,没有历程,至于一份电子版的数据手册,一切的一切都只能是从头开始,从底层开始,我们几个斌开始从最底层的逻辑时序、寄存器操作开始,但经过几天的研究,确实毫无效果可言。

为此,我们几个郁闷了好长时间,开始疯狂的上网搜资料,拷代码,却终究是不得而返,还让教师骂了一顿,因为这个项目是我们主动要求教师放给我们的,结果却耽误了工期。

我次我们几个人很受打击,最终决定大家一齐静下心来分析分析,到底我们败在了什么地方。

最终总经过两天的思考、讨论、总结、检讨···,我们发现了问题的所在,想来想去,这估计是很大一部分初学者正在面临的一个“瓶颈问题”,所以,由我净这个讨论的结果发布出来,期望与更多的人交流、分享、提高、共勉。

下头先总结一下我们失败的几点原因:

1、“都是开发板惹的祸”,能够说从开始学习单片机,哪怕是最基础的51、以致之后的msp430、arm,我没从未离开过开发板,并且这长达一年多的时间,养成了我们对开发板极大的依靠,尽管自我焊过51最小系统、绘制过430最小系统板,但都是参考的别人已有的电路图,连最基本的电路基本都没分析过,为什么要在这几个电阻,该加个多大的,不加会怎样样,太大了太小了会有什么后果,等等此类问题,我们从未分析过,全是copy、copy、再copy,以致自我做过的东西不少,本事却未曾提高。

2、“全是例程误导我”,我们买来的开发板,往往都会带有丰富的例程,通常这也是卖家吹嘘、比拼的地方,但就是这些附带的历程,让我们与底层的开发绝缘了,有了例程,我们不用再一个代码一个代码地敲键盘,不用再去研究那些器件的数据手册、通信接口、寄存器、内部原理、以及很多商家没给我们加进去的功能,哪怕是将这些程序改到别的地方,我们也可是是在宏定义里改两个引脚配置而已,从未尝试过从底层写驱动、敲代码、写函数,从未尝试过快平台移植代码,开发呢些没用过的功能等等。

3、“现实环境太无奈”,这跟上头两个说的是不一样的方面,我们都是大学生,大学里此刻吵得火热的“大学生就业难”、“你是考研还是就业”、“你报xxx培训班了吗”“你考四六级证了吗”等等,好像上大学就是为了干这些,似乎没有这些,你就会陷入“毕业即失业”的困境。应对这些外来的干扰,越来越多的学生坐不住了,我们这些人也一样,尽管一向在学习自我的爱好,但当被人问得多了的时候,心里也难免会发毛、会害怕,从而导致一年来真正静下心来学这些东西的时间越来越少。

大体也就总结怎样多吧,经过这次失败,也算是教训深刻吧,此刻才大三,到大四毕业,还有近两年的时间,还不算太晚,再说将来的路还长,此刻发现这些,应当不算晚吧。

对我们来说,革命尚未成功,同志仍需努力啊!

开这贴,一为总结这次失败、而为自我立志改变、三为警示之后的同学、四为大家齐言献计。

大家有遇到同样问题的、要类似迷茫的、要好的提议意见的,欢迎回帖交流,大家一齐共勉。

如何学习avr单片机

我们将以一个小的测试电路开始.这个测试电路的目的仅仅是测试我们的开发环境.我们用它来编译,下载以及测试一个小程序.这个测试程序仅仅是引起led闪烁.

我建议给这个单片机弄一个小的印刷电路板.以后你就可以在这块电路板的区域做你自己的试验.一个好办法是用一个模拟板当作这个.你无论如何也不能尝试着把avr和它的4mhz晶震直接放在模拟板上.更好的办法是用少量的短线把输入和输出脚与模拟板相连,因为这样的模拟板不是为快速数字电路制作的.4mhz的晶震和电容器在物理上应该非常靠近单片机.

在我们这个例子里编程器的连接器电阻实际上是不必要的.只有在你打算把port-b输入输出脚用于其他目的时才需要.

关闭