最新单片机心得体会(优质13篇)
在平日里,心中难免会有一些新的想法,往往会写一篇心得体会,从而不断地丰富我们的思想。心得体会可以帮助我们更好地认识自己,了解自己的优点和不足,从而不断提升自己。以下是小编帮大家整理的心得体会范文,欢迎大家借鉴与参考,希望对大家有所帮助。
单片机心得体会篇一
一直想写一个帖子,将自己学习单片机的经历、经验和方法总结一下,今天终于动手写了,呵呵,这是我学习单片机的经验、心得、方法。希望对大家学习单片机有所帮助。
经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。
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、多利用网络的搜索,学会提问题。一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。
以上就是我学习单片机的经历和心得体会,希望对大家会有帮助,说得有不好或不对的地方欢迎大家批评指正。
单片机心得体会篇二
第一段:引言(字数:150字左右)。
在大学里,学生们除了上课听讲外,还有许多实践项目需要完成。其中,单片机实训是计算机科学与技术专业学生最常见的一个实践项目之一。在这个项目中,学生们需要利用单片机来设计和开发各种电子产品。通过这个实践项目,我深切体会到了实践的重要性,以及它对我们的学习和成长的重要意义。
第二段:实践的重要性(字数:250字左右)。
实践是理论学习的延伸和补充,通过实践,我们可以更深入地理解和掌握所学知识。单片机实训课程让我不仅仅是在课本上看到了各种电子器件和电路设计原理,更重要的是亲自动手实操。实践过程中,我们需要根据所学的知识,利用单片机及其周边器件来完成各种任务。这一过程不仅提高了我们的动手能力,还锻炼了我们的逻辑思维和问题解决能力。通过实践,我们可以将抽象的理论知识转化为具体的实际应用,更直观地感受到知识的实用性和价值。
第三段:实践对学习和成长的影响(字数:250字左右)。
实践不仅仅是对所学知识的应用,更是一种学习和成长的机会。在单片机实训中,我们需要进行团队合作,与同学们一起讨论和解决问题。这样的合作不仅加强了我们的沟通能力和团队协作能力,还培养了我们的领导能力和组织能力。此外,实践还帮助我们更好地了解自己,发现自己的优缺点,进一步提升自己的能力。通过实践,我们不仅能够学到更多的知识,还能够发展出更多的技能,为自己的未来发展打下坚实的基础。
第四段:实践中的挑战和解决方法(字数:250字左右)。
在单片机实训中,我们也面临各种挑战。比如,有时候电路设计出了问题,无法正常工作;有时候程序写错了,导致效果与预期不符。面对这些挑战,我们需要冷静思考,分析问题的原因,并找到解决问题的方法。我们可以借助老师和同学的帮助,共同解决问题。此外,我们还可以通过查阅资料和参考其他类似的设计来寻找灵感。通过这些努力,我们能够逐渐克服问题,并取得成功。实践中的挑战和解决过程,不仅让我们锻炼了解决问题的能力,还让我们更加坚定了在困难面前不放弃、百折不挠的品质。
第五段:结尾(字数:100字左右)。
通过单片机实训项目,我深刻体会到了实践的重要性和对我们学习和成长的积极影响。实践不仅让我们更深入地理解和掌握所学知识,还培养了我们的动手能力、逻辑思维、问题解决能力等一系列技能。通过实践,我们不仅能够学到更多的知识,还可以发展出更多的技能,并为未来的发展打下坚实的基础。因此,我认为每个学生都应该重视实践项目,积极参与其中,不断提升自己的能力和素质。只有通过实践,我们才能真正成长为有能力、有价值的人。
单片机心得体会篇三
单片机是一种集成电路芯片,具有强大的控制能力和处理能力。在我学习单片机的过程中,我深深感受到了它的魅力和广泛应用的前景。下面我将在五个方面分享我的心得体会。
首先,学习单片机需要良好的基础知识。理解电子电路的工作原理和常用元器件是学习单片机的基础。只有具备一定的电子基础知识,才能更好地理解单片机的工作机制和编程原理。在我学习单片机的过程中,我发现,如果没有扎实的电子基础,很难融入到单片机的世界中去,更难以理解单片机的运行逻辑和编程思维。
其次,程序设计是学习单片机的重要环节。单片机是通过编写程序来实现各种功能的,所以掌握程序设计是非常重要的。编写程序需要有良好的逻辑思维能力和丰富的编程经验。我在学习单片机的过程中,不仅要学会基本的语法和指令,还需要深入理解各种传感器和外设的工作原理,并能将其融入到程序中去,以实现更多的功能。通过不断地编写程序,我逐渐熟悉了单片机的编程语言,提高了自己的编程水平。
第三,实践是学习单片机的关键。单纯地在课本上学习理论知识是远远不够的,只有通过实践操作,才能真正掌握单片机的应用和调试方法。在我学习单片机的过程中,我经常进行实验和项目制作,通过对元器件的连接和程序的编写,来实现各种功能,这不仅锻炼了我动手能力和解决问题的能力,还使我更加熟悉和了解了单片机的工作原理和应用方法。
第四,与人交流是学习单片机过程中不可或缺的一环。在单片机的学习过程中,与他人的交流和讨论是非常重要的。通过和同学、老师以及业界专家的交流,我了解到更多单片机的应用案例和实践经验。同时,我也能从他们的建议和意见中得到启发,提升自己的学习方法和思维方式。单片机学习的路上,不孤单而且出错有人引导和解答,我觉得很幸运。
最后,坚持不懈是学习单片机的关键。学习单片机是一个需要时间和精力投入的过程,很多时候会遇到困难和挫折。但只要坚持下去,不断克服问题,就一定会有所收获。我在学习单片机的过程中遇到过很多问题,但我没有因此放弃,而是不断查找资料和请教他人,最终成功地解决了问题。通过坚持不懈地努力,我逐渐掌握了单片机的基本原理和应用方法。
总的来说,学习单片机是一条充满挑战和机遇的道路,在这个过程中,我们需要拥有扎实的基础知识、良好的程序设计能力、实践操作的经验、良好的交流能力和坚持不懈的精神。只有不断学习和积累,我们才能更好地应对未来的挑战和发展。学习单片机不仅是个人的技术能力的提升,更是为了不断推动科技进步和社会发展做出自己的贡献。
单片机心得体会篇四
单片机实训是计算机工程专业学生必修的课程之一,通过实际操控硬件,将软件应用在实际环境中,提高了学生独立思考和问题解决的能力。在本次单片机实训中,我学到了很多技术和知识,同时也收获了一些感悟和体会。
第二段:技术与知识。
在实训过程中,我了解了单片机基本的原理和结构,学习了汇编语言和C语言的编写方式,掌握了数码管、液晶屏、LED灯等数字电路的驱动方法,并学会了使用键盘、定时器等设备进行输入和输出控制。通过实践操作中出错和解决问题的过程,我进一步加深了对硬件电路和软件程序的理解。
第三段:团队合作。
在完成实训任务的过程中,我深深地认识到团队合作的重要性。一个人的能力是有限的,而团队的力量可以释放出每个人的潜力。在团队中,我分担了一部分任务,也受到了其他同学的帮助。同时,我也积极参与讨论、交流和协商,不仅加深了个人理解,也为团队决策提供了建设性的意见。
第四段:认识自我。
单片机实训让我认识到了自身的不足和需要提高的地方,也找到了自己的优势和擅长的领域。在实训中,我发现自己更喜欢使用C语言进行编程,比较擅长数字电路的设计和调试。另外,我也意识到自己在计划和节奏管理方面还需要更多的改进和提高。
第五段:未来展望。
通过单片机实训的学习和实践,我发现了自己对硬件电路和嵌入式系统的兴趣,也增强了我进一步深入学习和研究的动力。未来,我希望能够进一步深入研究电路设计和程序开发,拓展自己的技术和知识,对行业发展做出更大的贡献。
总结:
通过单片机实训的学习和实践,我获得了很多技术和知识,也发现了自己的不足和需要提高的地方。同时,团队合作和自我认识方面的经验也让我受益匪浅。更重要的是,这次实训也为我未来的发展提供了指引和动力,让我能够更加自信和深入地探索这个领域。
单片机心得体会篇五
近年来,单片机技术的发展日新月异,作为一名电子工程专业的学生,我为掌握了单片机编程技术而感到无比自豪。这学期我们进行了一项关于单片机爱心灯的实践项目,通过自己的努力和团队合作,我不仅增长了专业知识,还体会到了团队合作的重要性和技术的无限可能性。在这个过程中,我经历了困难和挫折,但同时也获得了成长和收获。下面我将从项目的背景、实施过程、问题与解决以及总结体会等四个方面,来分享我在这个单片机爱心灯项目中的心得体会。
首先是项目的背景。作为一种新型的科技应用,爱心灯被广泛用于各种庆祝活动和节日,成为人们展示心意和情感的重要道具。在这个项目中,我们需要利用单片机技术和LED灯,来制作一个可以自动闪烁的爱心灯。这不仅需要我们掌握单片机编程技术,还需要与电路和电子器件的工作原理相结合,并且要能够通过编程来控制LED灯的亮灭,实现灯的闪烁效果。这对于我们这些电子工程专业的学生来说,是一次很好的实践锻炼机会。
其次是项目的实施过程。在实施这个项目的过程中,我们遇到了许多困难和挑战。首先是学习和掌握单片机编程技术,由于单片机编程语言和传统的高级编程语言有很大的区别,在刚开始的时候我感到非常困惑。不过,通过阅读相关的教材和实践的不断摸索,我逐渐掌握了基本的单片机编程知识,能够使用计数器和定时器等功能来控制LED灯的亮灭。其次是与电路和电子器件的配合工作,我们需要先设计和搭建电路,然后才能将单片机与电路连接起来,保证正常的信号传输。最后是通过调试和检验来确保爱心灯的正常运行效果,这需要我们有耐心和细致的工作态度。在实施过程中,我学会了认真分析问题的原因和解决方法,提高了自己的动手能力和解决实际问题的能力。
然后是遇到的问题与解决。在实施这个项目的过程中,我们也遇到了一些困难和问题。首先是程序的编写,由于单片机编程语言的特殊性,我们遇到了很多语法和逻辑错误。我通过不断调试和查找资料,找到了错误的原因并进行了修正。其次是电路的设计和连接,我们在电路的选材和搭建过程中也遇到了一些小问题,如电阻与电源的匹配、引脚连接错误等。通过不断尝试和研究,最终找到了解决办法。在解决问题的过程中,我体会到了团队合作的重要性,只有通过合作与沟通,我们才能及时解决问题,保证项目的顺利进行。
最后是对整个项目的总结与体会。通过这个单片机爱心灯项目,我不仅学到了很多专业知识,也收获了很多宝贵的经验。首先是锻炼了自己的动手能力和解决问题的能力,在遇到困难和挫折时能够保持积极的心态,并提出合理的解决方案。其次是加深了对单片机原理和编程技术的理解,开拓了自己的思维方式和创新意识。最后是感受到了团队合作的重要性,只有通过与团队成员的紧密配合和交流,我们才能够克服困难,取得较好的实验结果。这次实践项目对我来说不仅仅是一次学业上的实践,更是一次锻炼和成长的机会。
综上所述,通过这个单片机爱心灯项目的实践,我不仅掌握了单片机编程技术,还从中体会到了团队合作的重要性和技术的无限可能性。我认识到实践是检验理论知识的重要途径,只有通过实践才能够真正掌握和应用所学的知识。通过这个项目,我不仅获得了专业知识,也提高了自己的综合能力和动手实践能力。我相信,通过不断地学习和实践,我一定能够成为一名出色的电子工程师,为科技进步和社会发展做出贡献。
单片机心得体会篇六
1.无论什么时候我们都要以实际应用的角度去考虑程序的编写。
2.无论什么时候都不要让cpu白白浪费等待,尤其是延时(超过1ms)这样的地方。
3.设计相应驱动电路时候,应该仔细阅读芯片的数据手册,了解每个引脚的驱动能力,以及整个芯片的驱动能力。
4.最重要的是,如何去释放cpu(如果是led每500ms闪烁一次,那么可以设置1ms为基准,定时器定时1ms后,进入相应操作使计数加1,判断达到500时,进入led,这些函数执行的时间是相当短的,如果主程序中还有其他函数,则cpu会顺次往下执行,对于其它函数(有的话)也要采取相同的措施,保证其不堵塞cpu,若全部基于这种方法执行,我们的小系统依旧可以保证多个任务(多个函数)同时进行,系统的实时性得到了一定的保证。
),这是写出合格程序的基础。
5.数码管显示,动态显示的亮度比静态显示要差一点,所以在限流电阻时应略小于静态显示电路中,动态扫描显示刷新频率最好大于50hz,即每显示一轮的时间不超过20ms,每个数码管显示的时间不能太长也不能太短,时间太长会影响刷新率,导致总体显示呈现闪烁的现象,时间太短发光二级管的电流导通时间也就短,会影响总体的显示亮度,一般控制在1ms左右最佳。
6.模块化编程,初学单片机的'时候(开始是c语言),是接触一些芯片实现独立的功能,如ds1302,ds18b20等,程序也不会很大,所以所有的程序都放在一个文件里面。
随着学习的逐步深入,程序也愈来愈大,这给调试带来了一定的困难,后来了解了模块化编程这个概念,运用之后大大地改善了程序的可读性和可移植性。
下面简单的介绍。
#ifndef__ds1302_h__。
#define__ds1302_h__。
/*模块ds1302.c文件中函数等的申明文件*/。
#endif。
//上面几个条件编译和宏定义是为了防止重复包含。
这样我们就把各个模块的接口函数都引出到各自的头文件中,然后在主程序中调用这些模块的*.h头文件即可。
这点和c++中的类很像。
在数据类型定义的时候,有时候用typedef会取得很好的效果。
说到模块化编程,以前曾看过不少大虾的例子,他们的源文件和输出下载文件是放在项目文件夹下地不同文件夹中,如源文件放在src文件夹中,输出*.hex放在output文件夹中,这样整个项目就更显得清晰明了。
7.多任务程序,这个概念在前面也有提到,就是充分地利用cpu来实现多任务的前后台操作,相当于自己用程序构造一个基于前后台的多任务操作系统,换句话说就是通过定时器中断合理地分配cpu资源来响应不同的任务。
多个任务需要cpu关照的频度不一样,我们选择最快的那个频度来作为定时器的节拍(通常为最小公倍数,这样方便定时器分配),然后通过定时器分频,即满足各个任务的响应节拍。
voidtime。
单片机心得体会篇七
通过今次单片机实训,使我对单片机的认识有了更深刻的理解。
系统以51单片机为核心部件,利用汇编软件编程,通过键盘控制和数码管显示实现了基本时钟显示功能、时间调节功能,能实现本设计题目的基本要求和发挥部分。
由于时间有限和本身知识水平的限制,本系统还存在一些不够完善的地方,要作为实际应用还有一些具体细节问题需要解决。
例如:不能实现只用两个按键来控制时钟时间,还不能实现闹钟等扩展功能。
踉踉跄跄地忙碌了两周,我的时钟程序终于编译成功。
当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。
我相信其中的酸甜苦辣最终都会化为甜美的甘泉。
但在这次实训中同时使我对汇编语言有了更深的认识。
当我第一次接触汇编语言就感觉很难,特别是今次实训要用到汇编语言,尽管困难重重,可我们还是克服了。
这次的实训使培养了我们严肃认真的做事作风,增强了我们之间的团队合作能力,使我们认识到了团队合作精神的重要性。
这次实训的经历也会使我终身受益,我感受到这次实训是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破。
希望这次的经历能让我在以后学习中激励我继续进步。
经常在群、论坛里看到有人问:怎么学单片机?也常看到有人说学了好几个月可就是没有什么进展。
当然,受限于每个人受到的教育水平不同和个人理解能力的差异,学习起来会有快慢之分,但我感觉最重的就是学习方法。
一个好的学习方法,能让你事半功倍,这里说说我学习单片机的经历和方法。
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、多利用网络的搜索,学会提问题。
一般来说,学习过程中,你遇上的问题,前人们多数也有遇上的,所以如果有什么不懂,在自己解决不了的时候,最好先到网上搜索一下,看能不能找到答案,找不到再到论坛里发问,发问也要有目的性,尽量简单明了的描述问题,让帮助你的人可以用最少的时间就看懂你说什么,毕竟人家帮助你是免费的,时间也是有限的。
以上就是我学习单片机的经历和心得体会,希望对大家会有帮助,说得有不好或不对的地方欢迎大家批评指正。
单片机心得体会篇八
二、设计内容。
1.设计并实现具有复位功能的单片机小系统。
2.利用单片机进行灯光的场景开关控制。
3.利用单片机进行灯光的循环点亮控制及速度变化控制。
4.利用单片机进行灯光的色彩连续变化效果控制。
5.利用单片机进行灯光的三色联动定时控制。
6.配合2至5项中功能,实现液晶屏输出功能或状态信息。(受器件条件限制,只需仿真方式实现。)。
7.以调节5或4项中的时间为例实现基于4x4键盘的输入功能。(受器件条件限制,只需仿真方式实现。)。
三、设计要求。
1.能启动、停止;。
2.能通过开关进行功能选择;。
3.要体现循环、组合和色彩变化的控制功能和效果,实现三色联动定时控制,
控制变化规律的类型或功能不少于5种;。
4.要有完善的课程设计报告。
四、设计流程。
本课程设计是采用80c51单片机设计艺术彩灯,通过keil进行c语言编程,通过protues进行软件硬件仿真。本设计成果,主要通过按键开关对彩灯进行控制,包括灯光的场景开关控制、灯光的循环点亮控制及速度变化控制、灯光的色彩连续变化效果控制、灯光的三色联动定时控制,以上内容均基于面包板完成。在4x4矩阵键盘和lcd液晶显示方面均在仿真下完成。
五、设计方案。
(一)硬件设计。
80c51单片机最小系统是由晶体振荡器和复位电路构成,如图所示晶振电路:复位电路:
单片机外部电路由八个彩灯,4x4矩阵键盘,1602lcd液晶显示和4个独立按键开关组成。以上电路可以完成本课程设计要求的所有功能。
单片机心得体会篇九
做了几十年技术工作,自认为技术还算过得去。
在自动化控制方面,我以前用的都是plc编程,现在于年逾五十岁之际,又有了要学习单片机的打算,只是还纠结于有没有必要学习?有没有能力学好的考虑之中。
每个人都有惰性,要想混下去总是有许多理由的。
从战略上讲,活到老、学到老是无需争辩的事情,超越自我、战胜自我的座右铭更是放之四海而皆准。
那么学会了技能是不是真的有用呢?考虑到自己最少还要工作十年以上,如果拿出点时间来学习技能,可以用十年以上,无论怎么看都是值得的。
而战术上真是问题多多,首先是年龄问题,这个年纪了,脑筋是不是给力,而学习这个技能的多是年轻人。
第二个是时间问题,自己本身有繁忙的工作,再加上生活琐事,一大堆的人际关系,还有电视电脑以及手机里的新闻和朋友圈的干扰,想一想就让人泄气。
其实,仔细分析自己的优势也不少,由于年龄大,自控能力应当是优势,自己总是教导孩子少玩多学,要有梦想!就像电影《功夫熊猫》里的主人公阿波!当年总是说孩子,现在孩子必然成为无言的监督员(看看我是怎么学习的)。
更大的优势是搞了多年的硬件,对硬件方面比较精通。
如果别人要学,光是硬件部分也够学一阵子的,更要命的是硬件部分需要理论联系实际,要做到精通是无法速成的(纯属给自己打气)。
我要学,只要搞清楚软件部分就ok。
思想斗争到此结束,开弓没有回头箭,下定决心,开始学习。
物质上的准备,仅一本教材是不够的。
于是在网上购买了一个单片机板子,没有想到商家竟然还赠送了视频教程。
有了这个教程学习变得容易了许多,本计划每天专心致志的学习四十五分钟,没想到几乎每次学习都超过这个时间。
这主要是学习中精神过于投入,经常忘了时间,经过了四个多月的学习,单片机已经尽在掌握,这迈出的一小步,其实是从维护到开发的一大步。
这次的学习成功,极大地鼓舞了我生活和工作的热情,响当当的事实再一次证明,一切困难都是纸老虎,只要排除干扰静下心来,那些所谓的困难,根本就是给自己的懒惰找借口而已。
通过这次的学习过程,笔者体会到,不静下心来是不可能成功的,这一点必须提醒大家。
在这次单片机的学习中,心灵上的收获大于技术上的收获。
我准备把这个学习的习惯一直保持下去!因此特把它写出来与志同道合的朋友分享,特别是一些年长的朋友。
单片机心得体会篇十
开题日期:
完成日期:
题目八路彩灯。
一、设计的目的。
(1)根据原理图分析各单元电路的功能;
(2)熟悉电路中所用到的各集成块的管脚及其功能;
(3)进行电路的装接、调试,直到电路能达到规定的设计要求;(4)写出完整、详细的课程设计报告。
二、设计的内容及要求设计任务。
设计一个八路彩灯逻辑控制电路。设计要求及器件。
(1)共有八个彩灯,分别实现三个过程,构成一个循环共25秒。(2)第一个过程要求八个灯从左到右依次点亮,各一秒,共八秒。(3)第二个过程要求八个灯从右到左依次熄灭,各一秒,共八秒。(4)最后八个灯同时闪烁八次,共8秒。
三、指导教师评语。
四、成绩。
第1章概述。
设计一个八路彩灯逻辑控制电路。
1.1.2设计要求及器件。
(1)共有八个彩灯,分别实现三个过程,构成一个循环共25秒。(2)第一个过程要求八个灯从左到右依次点亮,各一秒,共八秒。(3)第二个过程要求八个灯从右到左依次熄灭,各一秒,共八秒。(4)最后八个灯同时闪烁八次,共8秒。
1.1.3设计任务及目标:(1)根据原理图分析各单元电路的功能;
(2)熟悉电路中所用到的各集成块的管脚及其功能;
(3)进行电路的装接、调试,直到电路能达到规定的设计要求;(4)写出完整、详细的课程设计报告。
第2章.总体设计思路模块。
2.1系统逻辑框图。
如图(1)所示,它由三部分组成。
2
发光。
与非。
2.2设计的方法。
首先确定所有的芯片都是上升沿有效。
(1)cp产生电路:由1个555定时器,两个电阻分别是4.7k,51k和两个电容分别是0.01uf,10uf构成的多谐振荡器,它所产生秒脉冲主要是提供给74ls163和74ls194这两个芯片。
(3)彩灯演示电路:由2片寄存器74ls194实现。八个输出信号端连接八个保护发光二极管和八个发光二极管,第一个芯片的q3端连接到第二个芯片sr端,第二个芯片的sl端接地且q1端接到第一个芯片sl端。第二个芯片的q3同时接到8个输入端d0~d7.
3
第3章.各单元电路图及功能说明模块。
3.1器件选择。
3.1.1:计数器s163芯片的介绍。
74ls163引脚图(2)。
74ls163工作波形图。
74ls163是4位二进制同步计数器,它具有同步清零、同步置数的功能。74ls163的'外引线排列图(2)所示,其功能表如表所示。cp是输入计数脉冲,由555提供。
cr是清零端;ld是置数控制端;co是进位输出端,d0~d3是并行数据输入端,q0~q3是数据输出端,并且q2输出端提供给74ls190的cp脉冲。
4
单片机心得体会篇十一
单片机贪吃蛇是一种经典游戏,它通过程序控制单片机在显示屏上移动,吃食物并增长身体长度,而躲避撞到墙壁或自身。这个游戏考验了玩家的反应能力和策略规划能力,让人欲罢不能。在体验了一段时间的单片机贪吃蛇游戏之后,我得出了一些心得体会。
第二段:思维灵活与反应迅速(200字)。
在单片机贪吃蛇游戏中,玩家需要时刻把握蛇头的移动方向,通过键盘控制迅速改变移动方向。这个过程需要思维灵活和反应迅速,否则就会导致蛇撞墙或自杀。通过长时间的游戏,我发现自己的思维能力和反应速度得到了很大的提升。在某些场景下,我能够准确判断出最佳方向,避免了不必要的损失。这种思维灵活和反应迅速的能力在现实生活中也同样重要,它使我更加从容应对各种挑战和难题。
第三段:计划和执行能力(200字)。
在单片机贪吃蛇游戏中,玩家需要在追逐食物的同时,合理地规划移动路径,避免蛇身相撞。这需要玩家具备一定的计划和执行能力。在游戏中,我学会了事先规划好蛇头的移动路径,预测食物的位置,并采取相应的行动。通过不断的实践和尝试,我的计划和执行能力得到了提升。这也让我认识到,在现实生活中,一个好的计划可以让人更加有效地达成目标,而坚定的执行力则能够保证计划的成功实施。
第四段:坚持不懈与分秒必争(300字)。
在单片机贪吃蛇游戏中,每个食物的出现都是有限的,且时间限制很短。玩家需要不断地追逐食物,同时也要小心躲避撞墙或自身,因此坚持不懈和分秒必争的精神也是非常重要的。在游戏中,我深刻体会到了坚持不懈的重要性。每次错失了食物,我都会重新开始游戏,直到达到预期的目标。这种坚持不懈的精神对于实现生活中的目标同样适用。在面对困难和挑战时,只有坚持不懈地努力,才能够最终获得成功。
第五段:总结和展望(200字)。
通过单片机贪吃蛇游戏的体验,我学会了思维灵活和反应迅速,提升了计划和执行能力,锻炼了坚持不懈和分秒必争的精神。这些都是我成长的重要经验和宝贵财富。未来,我将继续巩固并应用这些能力,努力在学习和工作中取得更好的成绩。同时,我也期待着尝试更多类似的游戏,不断地挑战自我,提高自己的能力和水平。
通过单片机贪吃蛇游戏这一简单但富有挑战性的娱乐活动,我收获了许多。这些心得体会让我更加意识到在生活中,要灵活思维,迅速应对,合理计划,坚持努力。我相信这些经验将成为我未来发展道路上的指引和助力,帮助我在学习和工作中取得更大的成就。
单片机心得体会篇十二
单片机编程是现代工程师不可或缺的技能之一。然而对许多人来说,初步掌握单片机编程很有挑战性,尤其是对于没有编程背景和电子知识的人。在我踏入单片机编程世界的早期,我曾经感到困惑和无助,但是随着时间的推移和经验的积累,我的心态和对这个技能的理解都有着明显的变化。
第二段:实践是学习的关键。
在学习单片机编程方面,我发现实践是获得深入理解和练习的关键。一旦掌握了基本概念和语法,我就开始在实验室和家里安装和使用不同品牌的单片机开发板。通过不断尝试各种各样的代码和思路,我逐渐熟悉了单片机工作原理、电子电路和编程逻辑。
第三段:阅读和理解文档。
了解单片机控制器和开发板必定涉及大量文档、规格和说明书。尽管阅读这些文档通常让人感到烦恼和乏味,但是正确的读取和理解文档对于编程成功和深入掌握技能至关重要。实践中,我发现花更多时间阅读和反思规格书和技术文献,令我在短时间内进行更高效的学习和显著提高我的编程能力。
第四段:熟练掌握复杂性。
单片机程序通常涉及多个编程语言和工具,在复杂性和技术层面上存在诸多挑战。在我的学习过程中,我发现,正确的方法是学会深入掌握一个语言和一个编程工具,同时也了解它们之间的互动和共性。我发现,越熟练掌握一个编程语言和工具,就越能迅速地适应其他语言和工具,并且更容易理解和使用技术依赖。
第五段:结论。
学习单片机编程需要耐心、练习和技巧。在这个过程中,我发现实践、文档阅读和熟练掌握复杂性是成功的关键。学生们可以通过并肩作战、分享经验和讨论,彼此学习和提高。我坚信只要坚持和付出努力,每个人都能学会单片机编程这一强大而有价值的技能,并在后续的职业生涯中受益无穷。
单片机心得体会篇十三
人的一生是一个不断学习、不断成长的过程。转眼间,研究生的学习生涯结束了,走上新的工作岗位。回头看看,发现自己不知不觉已经走过了五年的单片机学习之旅。
在最初接触单片机的时候,在我心中觉得51就是单片机,单片机就是51,根本不知道还有其他单片机的存在。那时候老师只教会了我们汇编语言,根本不知道用c语言也可以进行单片机开发。幸运的是,我加入了单片机兴趣小组,在老师的指导下,做了一系列实验,有“基于ds18b20的温度采集系统”、“有基于164的移位寄存器的灯光控制系统”、“有步进电机和直流电机的控制系统”。这时候我才发现,这是学习单片机的一个最好途径——在实践中领悟理论,用理论指导实践。在上课的整整一个学期中,虽然老师讲得很详细,但是大部分概念都是到了实际动手做东西的时候才弄明白的。而且在经历了迷惑之后再搞清楚,印象就特别深刻。直到现在我对那些概念和接口都非常清晰。其实我也很庆幸学习和使用了两年多的汇编语言。由于有这些锻炼,我对单片机底层结构和接口时序就弄得很清楚。在使用c语言开发的时候,优化代码和处理中断也就不会太费劲。我觉得,虽然现在绝大部分单片机开发都使用c语言,甚至有些公司还推出了图形化编程的工具,这样对于项目的开展从时间上快了很多,在管理上也规范了不少,但是从学习和想深入掌握单片机精髓的角度来说,还是需要熟练掌握汇编语言的使用。
机会总是青睐于有准备的人。也许有了前面一段时间的理论和实践的积累,我才慢慢得到了一些参加科技竞赛和参与科研项目的机会。在参加第一届浙江省机械设计竞赛的时候,我们设计的由多单片机系统协调控制的“月球车”机器人夺得了唯一的一个特等奖。这个竞赛给我最大的收获是我对单片机的认识改变了,它不再仅仅是一门学科了,它是一个可以让你的创意得到充分发挥的平台。后来参与了“基于视频分划技术的钢卷尺自动切零位机”、“电能表涡杠涡轮啮合深度检测系统”、“基于公共电话网的水表集抄数据路由器”、“高精度电感微位移测量系统”等一些实际的项目。在这些过程中,我发现只是精通单片机技术还不能很好的解决问题。体会最深的是,单片机只有融合到各种应用领域中,才能展现它的最大活力。然而单片机仅仅是一个工具而已,要做好单片机系统还需要各种应用领域的专业知识的支持。例如,在“基于视频分划技术的钢卷尺自动切零位机”中,就需要搞清楚全电视信号的时序,弄明白钢卷尺切零位机的工作原理,懂得怎么利用叠加在视频信号中的横竖线来进行刻度的瞄准等。没有这些专业知识,就算单片机技术再厉害也不可能做好这个项目。脱离应用背景的单片机开发,就像一个没有灵魂的躯体一样。
随着arm的出现,我曾经认为,8位单片机可能在32位单片机的冲击下就此走进历史,可是很快就认识到我是错误的。随着技术的`革新和时间的推移,各大单片机公司纷纷将单片机朝着片上系统这个方向发展,集成了现在各种流行的技术和常用的模块。我相信,在当前国内和国外的这个市场中,8位单片机应用的市场仍然是充满生机,活力无限。在市场的不断变化和技术的不断更新过程中,8位单片机也会顺应潮流不断革新。
从我五年走过的路来看,单片机学习的过程应该是一个循序渐进、不断学习、不断积累的过程,可以分为三个阶段。
第一阶段:掌握开发单片机的必备基础知识。首先是熟练掌握单片机的基本原理,其实各家各门的单片机其基本结构和原理都差不多,特别是共有的知识需要好好理解和掌握。例如,内核结构、内存分配、中断处理、定时计数、串行通信、端口复用等一些最基本的概念和原理。除此之外,我们还需要具备模拟电子、数字电子、c语言程序开发知识以及原理图和pcb设计等一些技能。在进行系统开发的时候,进行原理设计、pcb布板、程序编写、系统联调这些工作都是在所难免的。
第二阶段:在掌握好一款单片机原理和应用的基础上,开始学习其他各家单片机的独有技术,学不了那么多也要多了解了解。同时尽可能多地掌握单片机的一些外围器件和常用电路,以备不时之需。有时候客户要求低成本,那我们只好选用合钛、义隆、华邦等这类芯片;如果客户要求工业级的性能,那么我们就得从pic、nec、飞思卡尔、nxp等这些欧美和日式单片机中选择;若要进行功耗的开发,选用msp430系列应该有一定优势;在进行测量仪器设计的时候,c8051和aduc842这类数模混合芯片就显得比较方便。所以说最好每个类型的单片机都会一两款,在实际项目选型中可以更加灵活。另外,要注意平时的技术积累。比如,在项目开发过程中将一些常用的接口程序和控制算法整理成模块或者函数,在其他的项目开发中,有同样或者接近的需求时马上就可以使用,又快又好。
第三阶段:在实际的项目开发过程中,不断深化单片机应用技术,不断积累应用行业的专业知识。例如,我完成了“高精度电感微位移测量系统”,就会对电感传感器的测量机理和信号特性、测量电路的设计、电磁兼容处理、误差修正和非线性处理等测控方面的专业技术有很深的认识。以后碰到类似的项目时,很多东西就可以直接利用了。有了扎实的单片机应用相关的基础知识,并且熟悉掌握了几款不同类型单片机的开发方法,再结合实际的应用背景,那么就可以随心所欲,设计出性能最优、结构最合理的单片机应用系统。这是我最大的奋斗目标,我觉得这也应该是单片机应用的最高境界吧。
在这五年的学习中,有感慨、有遗憾、有憧憬、有希望,更重要的是我对单片机应用这个领域充满热情。由于才疏学浅、涉世未深,希望能与行业里的各位老师多多交流,不断学习,不断成长。
一、什么是单片机?
在一片集成电路芯片上集成微处理器、存储器、i/o接口电路,从而构成了单芯片微型计算机,即单片机。intel公司推出了mcs-51系列单片机:集成8位cpu、4k字节rom、128字节ram、4个8位并口、1个全双工串行口、2个16位定时/计数器。寻址范围64k,并有控制功能较强的布尔处理器。
(1)用到单片机的项目经验介绍;
(2)手持粮库温度寻检设备;
(3)毕设答辩打分器;
(4)电话台灯;
(5)自动感应水龙头;
(7)工业自动化:数据采集、测控技术;
(8)智能仪器仪表:数字示波器、数字信号源、数字万用表、感应电流表等;
子设备等;
(10)通讯方面:调制解调器、程控交换技术、手机、小灵通等;
(11)武器装备:飞机、军舰、导弹、航天飞机、鱼雷制导、智能武器等;
三、学习单片机之前预备知识。
(1)数字电路中只有两种电平:高和低;
高+5v低0v。
(2)rs232电平:计算机的串口:
高-12v低+12v。
所以计算机与单片机之间通讯时需要加电平转换芯片;
(3)进制转换与逻辑、算术运算;
(4)c语言基础;
(5)80c51了解;
80c51是mcs-51系列中的一个典型品种;其它厂商以8051为基核开发出的cmos工艺单片机产品统称为80c51系列。
(6)。
总线(bus)是计算机各部件之间传送信息的公共通道。微机中有内部总线和外部总线两类。内部总线是cpu内部之间的连线。外部总线是指cpu与其它部件之间的连线。外部总线有三种:数据总线db(databus),地址总线ab(addressbus)和控制总线cb(controlbus)。
(7)。
i/o口:四个8位并行i/o口,既可用作输入,也可用作输出;
t/c:两个定时/记数器,既可以工作在定时模式,也可以工作在记数模式;
五个中断源的中断控制系统;
片内振荡器和时钟产生电路,石英晶体和微调电容需要外接。最高振荡频率取决于单片机型号及性能。
(8)c51数据存储类型。
例:
数据类型变量名。
charvar1;。
bitflags;。
unsignedcharvextor[10];。
intwwww;。
注意:变量名不能用c语言中的关键字表示。
(9)包含的头文件(可以在安装目录下inc目录下查看)。
通常有:c.h。
常用有:52.h。
(定义特殊功能寄存器和位寄存器);
math.h(定义常用数学运算);
(10)中断服务程序的格式。
函数名interruptnusingm。
{
函数内部实现….
}
(11)i/o口定义。
sbitbeep=p2^3;。
(12)单片机的基本时序。
机器周期和指令周期。
振荡周期:也称时钟周期,是指为单片机提供时钟脉冲信号的振荡源的周期,tx实验板上为11.0592mhz。
状态周期:每个状态周期为时钟周期的2倍,是振荡周期经二分频后得到的。机器周期:一个机器周期包含6个状态周期s1~s6,也就是12个时钟周期。在一个机器周期内,cpu可以完成一个独立的操作。
指令周期:它是指cpu完成一条操作所需的全部时间。每条指令执行时间都是有一个。
或几个机器周期组成。mcs-51系统中,有单周期指令、双周期指令和四周期指令。
四、学习单片机目标。
最小系统能够运行起来的必要条件:
(1)电源2.晶振3.复位电路。
(1)输出控制电平高低2.输入检测电平高低。
定时器:重点掌握最常用的方式2。
中断:外部中断、定时器中断、串口中断。
串口通信:单片机之间、单片机与计算机间。
/***********************************/。
分类收录的、优秀的电子技术网站现在越来越受电子技术爱好者青睐,但也有些电子技术爱好者愁于找不到一些优秀的电子技术网站来辅助学习与工作设计。因此,现在我将一位高级电子工程师归纳总结的电子行业技术网站、电子工程师必备网站汇总、整理;其包括单片机、dsp、嵌入式、plc、开关电源技术、通信技术、eda/pld可编程逻辑技术、电子技术论坛等等,这样或许会对我们这些电子技术爱好者有莫大的帮助吧!电子世家网址导航:---电子技术工程师的上网主页!