单片机学习心得

时间:2019-05-12 13:56:42下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《单片机学习心得》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《单片机学习心得》。

第一篇:单片机学习心得

作为过来人思前想后,我感到完全有责任将发自心底的感受传递给年轻一代,“一个企业家心灵深处渴望优秀人才的卓越追求和深层次的叹息、痛苦和感受”。您们千万不要等到毕业求职时才觉得自己能力太差,世界上从来就没有后悔药。当然,如果您现在看了我写的这篇文章可能还不算晚,因为您还有机会在以后的岁月里奋起直追——“亡羊补牢,尤未为晚”。对于现在刚进入大学的学生,您应该更加珍惜这美好的求学机会,因为眨眼之间几年就过去了,您很快就会感到来自全社会生存竞争的压力,您面临的对手再也不仅仅是您身边的同学,今天您在班上的成绩的确是前几名,但一走到社会上去才感到是多么地脆弱而又多么地不堪一击。

在面试大多数本科生时,我仅仅是询问了一些有关MCS-51 系列单片机的基本原理,但却几乎很少有人能够完全答对,简直是五花八门。很多作为一个即将毕业的自动化专业本科生,至今还不知道单片机是这个专业的核心基础,难道不可悲吗?您的水平不高我完全心中有底,其实我只要求这些学生能够掌握单片机应用开发的基本技能,用汇编和C51 写过一些基本的程序,真正动手做过一些简单的项目,然后将自己做过的项目写成比较规范的文档。我想,这种形式的“自我介绍”肯定要比让别人看您那写的千遍一律的“八股文”简历不知要强多少倍,古人言:“一叶知秋”其实讲的就是这个道理。平心而论只有具备这样基础的学生才配得上企业花钱对您进行二次“开发” 事实上,很多学生根本就不管老师平时是多么地劝导都听不进去,我认为您只要平时善于做一个有心人,主动一些多找老师请 教,然后从大三开始帮老师打打下手干一些活。还有一个途径就是自己花钱购买一些学习开发实验板,加强动手能力的训练。但也有很多学生说没有钱,可事实上并非如此,现在的学生购买手机成风,我不知道手机对您们现在来说到底有多大的用途?事实上,现在的学生家庭条件普遍都不太好,可这些孩子们的攀比心里却十分地严重和可怕。到今天即将毕业之际才感到找工作太难。父母一个子儿地攒下一些辛苦钱给您购买电脑容易吗?“望子成龙――可怜天下父母心”!他们是希望您能够学到一些真本事,而您可能很多时间都在玩游戏,上网聊天,实际上对于您来说仅仅是举手之劳,只要花几百元买一块实验板,辛苦一个暑假的时间强化实践,可能您就会与众不同。与此同时,可能您的信心大增,前途一片光明。俗话说得好:仓库有粮,心中不慌!如果您平时没有准备,那么临时匆匆忙忙地上阵面试肯定是要败下来的。从2003 年开始是全国第一次扩招之后毕业人数最多的第一年,以后的毕业生还会更多,同时还有更多的研究生与本科生抢饭碗,面对就业的困境压力不能说不大,痛苦在其中。还有就是我每天都要面临那些看不完的自我介绍简历,很可惜几乎都是清一色的“八股文”令人讨厌。其实只要您的成绩不是太差,分数不是应聘成功的关键,重要的是做人要踏实,不要有水分,实际上,只要将您平时做过的小制作写成一篇心得,再带上您的作品,“事实胜于雄辩”这样更能打动人。还有很多经历了四年本科又三年研究生阶段学习行将毕业的硕士生,不仅不知道嵌入式操作系统是什么东西,而且连C++都不能熟练掌握,驱动程序开发的能力就更不容提了,仅仅做了 一个单片机的应用设计就拿到硕士文凭了,术业缺乏专攻泛泛而谈,说句实在话,怎么样也教人无法接受啊!对于我来说,如果您没有特别的才能,我宁愿用三年时间培养一个好的本科生给更高的待遇,他肯定不比一般的硕士生差。所以,考上了研究生之后,您要时刻明白加强动手能力的培养和前沿科学技术的学习至关重要的,这是您将来面试的“杀手涧”,因为您毕业之后要求的工资待遇起码是一般本科生的两倍,但是这个钱不是那么好拿的。顶多3-5 年的时间,大家肯定能够看到一个现实,那就是如果您还不能熟练地掌握嵌入式操作系应用开发技术的话,您只能拿2000 元的月薪。即便您是研究生或是博士,那又有什么稀奇的呢?邓伯伯有句名言,不管白猫还是黑猫,抓住老鼠就是好猫!我们知道企业家是要赚钱的,否则这个企业就留不住人才,无情的市场竞争机制将会毫不犹豫地将这个老板淘汰出局。一个可持续发展的企业,如果离开了富有聪明才智的优秀人才,那是不可想象的。光有几个还不行,而是要有一个卓越的军团。

其实就业的问题,对于一个努力的人来说是何等地简单,我面试了300 多本科生,我只对其中几个成绩中等的本科生感兴趣,他们主要是参加过2001 年全国电子大赛,有的是平时业余时间,暑假及其寒假都在跟老师干活的学生,与他们聊天真是一种莫大的享受和欣慰,对于我来说真的是如获至宝。于是,我就立即劝他们,您的成绩中等确实难以考上好的学校和导师还不如不考研究生以免浪费时间,同时也充满自信告诉他们,“我就是伯乐!我愿意给您机会和花钱培养您”。事实上,即便您考上研究生,如果没有遇上具有超前眼光和 经费充足的导师,您读了也白读,更何况现在的研究生扩招的这么多?一个导师带那么多研究生,有那么多课题吗?即便有的话,他应付得过来吗?可能残酷的现实将会让您看到,毕业之后回头一看还远远不如当年同您一道毕业的同班同学。确实也是,人家的机会比您好得多,关键是人家对待机会比您把握得好,可以说:恰到火候。难道非要读研究生理论水平才高吗?这是何等地荒谬啊!我们知道电子与计算机技术的发展日新月异。大学的更新速度一定就要快吗?回答是否定的,比如说推广PHILIPS 的最新单片机和USB 技术吧!他们的更新速度肯定比一个可持续发展的企业要慢得多,难道说我们的人才水平不够高吗?我们公司就有一批这样在各个领域里出类拔萃的“年轻专家”从 2003 年开始,我们将会有一系列的专著在北京航空航天大学出版社出版,大多数的著作都来自于我们长期的基础研究和应用开发,可以毫不夸张地说这些都是我们这个年轻团队合作的结晶。他们是优秀和卓越的人才,他们没有就业的压力,他们不怕炒鱿鱼,相反我倒时刻要想尽办法加强公司的管理,从工资,奖金,福利,生活和事业成就感等各个方面绞尽脑际善待人才和留住人才,这么努力的人才根本就不需要过多地为工作和生活发愁,对于这个问题当然是仁者见仁智者见智,也就是下面我要讲到的问题,一个人如何根据自己的特点、条件和机遇对自己如何定位的问题,也是至关重要的。

比如说,如果您对单片机的理解仅仅是入门水平的话,那么您首先就应该低调一些,因为您主要的任务是为了寻找一个可以学习的机会,说句实在话,此刻此刻您一定要清醒地意识到:寻找伯乐比眼前 的利益更加重要!因为您现在确实还没有可以骄傲的资本,您一定要想尽办法取得第一次正式踏入社会的入场卷,这对您来说是何等地重要啊!俗话说得好,“万丈高楼从地起”您一定要寻找机会通过业绩表现出您的能力,您确实与众不同之处。这样您就可能在一个公司里树立您的“信用”,有了信用之后随之而来的机会将会越来越多,到那时您根本就不用不愁自己的待遇和地位问题了。所以对于一个刚刚步入社会的年轻人来说,您能够做到以“诚信” 打天下,您将来的前途肯定是无限光明。千万不要感到自己在班上的成绩是前几名或者相对来说自己的动手能力相比之下比同学强多少、多少,或者自己在读书期间贷了多少款,或者家里是多么地缺钱,因为当您加入整个社会的竞争之后,这些都不是您要求高薪的理由,这个时候您的心态将可能会决定您的命运,因此对自己要有充分的认识和正确的估价,经常是很多学生用这些理由向我开出高价,我无话可说只好“摇头和叹息”。

如果您的水平还不够,我认为也不要自卑,要知道机会是时刻属于有准备的年轻人,但也不可掉以轻心,此时此刻,您应该振作起来,立即拿起书本努力学习和加强实战的训练,待到羽翼丰满之时大胆地走出去闯荡,让社会来对您做一个恰当的评价,然后再根据现实的情况不断地调整自己,继续学习和实践,由于电子和计算机科学的高速发展呈现日新月异的变化局势,您一定要明白:您距离失败永远只有6 个月!

很多单片机初学者问我的第一句话就是怎样才能学好单片机?对于这个问题我今天就我自己是如何开始学单片机、如何开始上手、如何开始熟练这个过程给大家讲讲。先说说单片机,我们现在用的比较多的是8051单片机,它的资料比较多,用的人也较多,市场也很大,51单片机内部结构比较简单,非常适合初学者学习,建议初学者将51单片机做为入门级芯片。单片机属于硬件,我强烈不推荐大家使用单片机仿真软件来学习单片机,也可以肯定的告诉大家,使用仿真软件是学不会单片机的,硬件只有把它摆在你的面前,亲自操作它,才会有深刻的体会,才能学明白它。单片机这门课是一科非常重视动手实践的科目,不能总是看书,但是也不能完全不看书,我们需要从书中大概了解一下单片机的各个功能寄存器,如果看的多了反而容易搞乱,尤其是现在市场上大多数讲单片机的书一开始就讲解较复杂的内存、地址、存储器什么的,更让初学者感到不知所云、难以入门。简单的说,当我们使用单片机时,实际上就是用我们自己编写的软件去控制单片机的各个功能寄存器,再简单些,就是控制单片机哪些引脚的电平什么时候输出高,什么时候输出低。由这些高低变化的电平来控制外围电路,实现我们需要的各个功能。

关于看书,大家只需大概了解单片机各引脚的功能,了解下寄存器。第一次、第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天就够了,而我们要把更多的时间放到实践中去,这才是最关键的,在实践的过程有不 懂之处再查书,这样记忆才深刻。关于实践有两种方法你可以选择,方法

一、你自己花钱买一块单片机的学习板,不要求那种价格上千块功能太太全的,对于初学者来说你买功能太全的板子,上面有很多东西你这辈子都用不着,我建议有流水灯、数码管、独立键盘、矩阵键盘、AD 和DA、液晶、蜂鸣器、IIC总线、有USB扩展也最好,这些就差不多了。如果说我上面提到的这些功能你能熟练应用,那可以说对于单片机本身的操作你已经入门了,剩下的就是自己练习设计外围电路,不断的积累经验。只要过了第一关,后面的路就好走多了,万事开头难,大家都听过。方法

二、你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板可能只需要几分钟的时间,而对于初学者可就难多了,因为只有对硬件彻底了解了,你才能熟练的驾驭它。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你还是选择方法一,毕竟自己有一块学习板要方便的多,以后做单片机类的小实验时经常都能用得上,省时又省事。

有了单片机学习板之后你就要多练习,最好是自己有台电脑,少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,比起跑跑卡丁车,比起魔兽世界,要好玩的多的多。当你编写的程序按你的意愿实现时,你比做任何事都开心,你会上瘾的,真的,做电 子设计的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经不能自拔了。就是要这样练习,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,或是上网搜索。当得到解答后你会记住一辈子的,知识必须应用于现实生活中,解决实际问题,这样才能发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,过一个假期,甚至过一个周末,然后忘的一干二净,是不是?你学到什么了?我认为这样的生活没有意义。但是我告诉你单片机一旦学会,永远不会忘了。

另外我再说说关于用汇编语言还是C语言编程的问题。很多同学大一、二就开设了C语言的课,我也上过,我知道那时上课老师讲的就是几乘几、几加几、求个阶乘、画个星星、编个月亮什么的。学完了有什么用?虽然考试我考了90分,可我心里比谁都明白,C语言到底是什么?它有什么用?到底它能做什么我一无所知。我们不能过多的评价当今的高校教育,但我们必须得为自己负责任。让你用C语言编单片机的程序你是不是就傻了?单片机编程用C语言或汇编语言都可以,但是我建议用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言很简单,只是一门工具而已,我劝大家最好学好学精它,将来肯定用得着,要不然以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。给大家推荐一本书,作者谭浩强,书名<程序设计>>,清华大学出版社,大家在学习 本书的同时再参考上面提到的这本书更有利C语言学习。也根本没必要再从头把<程序设计>>学一边,就算再学一边也许结果还是和你现在一样,最好的办法就是用到哪里学哪里。汇编写程序代码效率高,但相对难度较大,而且很繁琐,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的时钟,单片机的ROM也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,所以我劝大家用C语言。

总结上面,只要你有信心,做事能坚持到底,有不成功绝不放弃的强烈意志,那学个单片机对你来说就是件非常容易的事。建议步骤: 1、看书大概了解一下单片机结构,大概了解就行。不用都看懂,又不让你出书。

2、用学习板练习编写程序,学单片机主要就是练编程序,遇到不会的再问人或查书。

3、自己网上找些小电路类的资料练习设计外围电路。焊好后自己调试,熟悉过程。

4、自己完全设计具有个人风格的电路、产品 „ 你已经是高手了

第二篇:单片机学习心得

单片机学习心得

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

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

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

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

第三篇:单片机学习心得

篇一:单片机学习心得

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

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

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

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

篇二:单片机学习心得

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

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

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

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

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

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

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

第四篇:单片机学习心得

单片机学习心得

计算机科学与技术

学号:

单片机是一门应用性和综合性很强的学科,它综合了电子技术中的模拟电路和数字电路方面的知识,特别是数字电路,因为数字电路在里面的应用很多。学习单片机最好先从汇编语言入手,虽然汇编语言是低级语言,编程效率低,但它比C语言占用内存小,执行速度快等优点,在刚接触单片机时更容易学习。由于单片机涉及的知识很多,所以我们只能循序渐进的学习,逐步的积累,没有什么捷径可循。

刚开始学习的时候,对单片机没有什么认识,不知道什么是单片机,更不知道它有什么作用。通过学习才大体知道了单片机的一些知识。由中央处理器CPU、随机存储器RAM、只读存储器ROM、I/O接口、定时器/计数器以及串行通信接口等集成在一块芯片上,构成了一个单片微型计算机,简称为单片机。它的应用范围很广,在工业自动化中应用有数据采集、测控技术。在智能仪器仪表中应用有数字示波器、数字信号源、数字万用表、感应电流表,自动取款机等。在消费类电子产品中应用有洗衣机、电冰箱、空调机、电视机、微波炉、手机、IC卡、汽车电子设备等。在通讯方面应用有调制解调器、程控交换技术、手机、小灵通等。在武器装备方面应用有飞机、军舰、坦克、导弹、航天飞机、鱼雷制导、智能武器等。学习单片机要投入大量的时间,如果只想速成,几乎是不可能的。由于单片机涉及的知识面很广,不可能在朝夕间就学会,只能一点点的积累。不积跬步,无以至千里。只有当你一步步去学习、去积累之后,你的单片机水平才会提高。学习过程中还要注重理解,要逐渐养成自己的编程思路,在编程过程中还要注意细节问题,如果因为粗心大意将程序写错,将会无形间给自己带来更大的工作量,随着学习的深入,我们编写的程序将越来越长,如果出现很多错误,在

改错时将会很麻烦,出错越多你改的时间将会越长,就会无形间给自己带来更多麻烦。

单片机(micro control unit)是一种集CPU、RAM、ROM、I/O、中断、定时/计数等功能为一体的完整的计算机,只需外加主频振荡器和电源,灌入应用程序就可以实现一定的功能。单片机的的应用特点是“面向测控”。因此,它必须有强力的信息处理、检测、控制的功能。学习使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编指令系统或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。

一、总线:我们知道,一个电路总是由元器件通过电线连接而成的,在模拟电路中,连连线并不成为一个问题,因为各器件间一般是串行关系,各器件之间的连线并不很多,但计算机电路却不一样,它是以微处理器为核心,各器件都要与微处理器相连,各 器件之间的工作必须相互协调?所以就需要的连线就很多了,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线线,则线的数量将多得惊人,所以在微处理机中引 入了总线的概念,各个器件共同享用连线,所有器件的8根数据线全部接到8根公用的线 上,即相当于各个器件并联起来,但仅这样还不行,如果有两?器件同时送出数据,一 个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是是不允许的,所以 要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有 多个器件同时接收)。器件的数据线也就被称为数据总线,器件所有的控制线被称 控制 总线。

在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配 地址,才能 用,分配地址当?也是以电信号的形?给出的,由于存储单元比较多,所以,用于地址分的线也较多,这些线被称为地址总线。

二、数据、地址、指令:之所以将这三者放在一起,是因为这三者的本质都是一样的─数字,或者说都是?串‘0’和‘1’组成的序列。换言之,地址、指令也都是数据。指令由单片机芯片的设计者规定的一种数字,它与我们常用的指令助记符有着严格的 一一对应关,不可以由 单片机的开发者更改。地址:是寻找单片机内部、外部的存储 单元、输入输出口的依据,内 存单元的地址值

已由芯片设计者规定好,不可更改,外部的 单元可以由单片机开发者自行决,但有一些地址单元是一定要有的(详见程序的执行过 程)。数据:这是由微处理机处理的 象,在各种 不同的应用电路中各不相同,一般而言,被处理的数据可能有这么几种情况:

1地址(如MOV DPTR,#1000H),即地址1000H送入DPTR。

2方式字或控制字(如MOV TMOD,#3),3即是控制字。

3常数(如MOV TH0,#10H)10H即定时常数。

4实际输出值(如P1口接彩灯,要灯全亮,则执行指令:MOV P1,#0FFH,要灯全暗,则执 兄 令:MOV P1,#00H)这里0FFH和00H都是实际输出值。又如用于LED的字形码,也是实 际?出的值。理解了地址、指令的本质,就不难理解程序运行过程中为什么会跑飞,会把数据当成指 令来 行了。

三、P0口、P2口和P3的第二功能用法 初学时往往对P0口、P2口和P3口的第二功能用法迷惑不解,认为第二功能和原功能之间 要有个切换的过程,或者说要有一条指令,事实各端口的第二功能完全是自动,不需要指令来转换。如P3.6、P3.7分别是WR、RD信号,当微片理机外接RAM或有外部I/O口 时,它们挥作第二功能,不能作为通用I/O口使用,只要一微处理机一执行到MOVX指令,就会有相应的信号从 P3.或P3.7送出,不需要事先用指令说明。事实上‘不能作为通用I/O口使用’也并不是‘不能而是(使用者)‘不会’将其作为通用I/O口使用。你完全可以在指令中按排一条S ETB P3.7的指令,并且当单片机执行到这条指令时,也会使P3.7变为高电平,但使用者不会 这么做,因为这通常这会导致系统当溃(即死机)。

四、程序的执行过程 单片机在通电复位后8051内的程序计数器(PC)中的值为‘0000,所以程序总是从‘0000’单元开始执行,也就是说:在系统的ROM中一定要存在‘0000’个单元,并且在‘0000’单元中存放的一定是一条指令。

五、堆栈 堆栈是一个区域,是用来存放数据的,这个区域本身没有任何特殊之处,就是内部RAM的 一份,特殊的是它存放和取用数据的方式,即所谓的‘先进后出,后进先出’,并且 堆栈有特 的数据传输指令,即‘PUSH’和甈OP’,有一个特殊的专为其服务的单元,即堆栈指 针SP 每当执一次 PUSH

指令时,SP就(在原来值的基础上)自动加1,每当执行一次POP指令,SP就(在原 来值基础上)动减1。由于SP中的值可以用指令加以改变,所以只要在程序开始阶段更改了SP值,就可以把堆栈设置在规定的内存单元中,如在程序开始时?用一条MOV SP,#5FH指令,就时把堆栈设置在从内存单元60H开始的单元中。一般程序的开头总有这么条设置堆栈指针的指令,因为开机时,SP的初始值为07H,这样就使堆栈从08H单元 开始往后8H到1FH这个区域正是8031的第二、三、四工作寄存器区,经常要被使用,这会造成数据的浑乱

六:中断

当单片机应用于测控系统时,实时性就显得特别重要了。而中断技术就是处理这种实时性要求高的场合。单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能是需要合理控制的,在使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情。这就是中断功能的强大之处。

七:汇编语言与C语言

汇编指令有自己的一套繁琐的指令系统,不容易熟练掌握,编写程序不得不注意硬件细节。相对于C语言,汇编语言也有不可忽略的优势,就是在某些特殊场合需要高效的,占用存储空间小的地方。但随着技术的发展硬件的限制越来越小,C语言比较好理解,通用性和可移植性都很不错。也不用记专门的指令集合来,所以我还是比较倾向于用C编写程序的。

接触单片机已经有一段时间了,我感觉自己动手学习编写程序,调试然后在开发板上做学习的很快,看到自己看到的结果通过自己亲手做出来的感觉很有成功感。

有时候单片机的学习很单调,有些知识学起来很抽象,不容易理解,只能慢慢适应,一边学习理论知识,一边编写程序,将程序刷入单片机进行调试,通过这种方式才能更快速的学习单片机。同事也会从学习中体会成功的喜悦。

看门狗程序

看门狗,又叫 watchdog timer,是一个定时器电路, 一般有一个输入,叫喂狗,一个输出到MCU的RST端,MCU正常工作的时候,每隔一端时间输出一个信号到喂狗端,给 WDT 清零,如果超过规定的时间不喂狗,(一般在程序跑飞时),WDT 定时超过,就回给出一个复位信号到MCU,是MCU复位.防止MCU死机.看门狗的作用就是防止程序发生死循环,或者说程序跑飞。

工作原理:在系统运行以后也就启动了看门狗的计数器,看门狗就开始自动计数,如果到了一定的时间还不去清看门狗,那么看门狗计数器就会溢出从而引起看门狗中断,造成系统复位。所以在使用有看门狗的芯片时要注意清看门狗。硬件看门狗是利用了一个定时器,来监控主程序的运行,也就是说在主程序的运行过程中,我们要在定时时间到之前对定时器进行复位如果出现死循环,或者说PC指针不能回来。那么定时时间到后就会使单片机复位。、本程序通过按键喂狗防止溢出复位 看门狗演示程序

在16383个机器周期内必须至少喂狗一次

标准AT89s52单片机试验通过。-----------------*/ #include

sfr WDTRST = 0xA6;

sbit K1 = P3^0;sbit K2 = P3^1;sbit LED1=P1^1;sbit LED2=P1^2;

void DelayUs2x(unsigned char t);//us级延时函数声明

void DelayMs(unsigned char t);//ms级延时

/*-----------------

主函数

-----------------*/ main(){

LED1=0;

DelayMs(100);

LED1=1;

DelayMs(100);

TMOD=0x01;

TH0=0xc6;

//定时16ms

TL0=0x66;

EA=1;

ET0=1;

WDTRST=0x1e;

//在程序初始化中激活看门狗。

WDTRST=0xe1;

//先送1E,后送E1

if(K1==0)

{

TR0=1;

}

while(1)

{

if(K2==0)

{

TR0=0;

}

LED2=1;

LED1=1;

DelayMs(100);

LED2=0;

DelayMs(100);

} } /*-----------------

定时器中断函数

-----------------*/ void Time0(void)interrupt 1 {

TH0=0xc6;

//定时16ms

TL0=0x66;

WDTRST=0x1e;

//喂狗指令

WDTRST=0xe1;}

/*-----------------uS延时函数,含有输入参数 unsigned char t,无返回值

unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编,大致延时

长度如下 T=tx2+5 uS

-----------------*/ void DelayUs2x(unsigned char t){

while(--t);} /*-----------------mS延时函数,含有输入参数 unsigned char t,无返回值

unsigned char 是定义无符号字符变量,其值的范围是

0~255 这里使用晶振12M,精确延时请使用汇编-----------------*/ void DelayMs(unsigned char t){

while(t--){

//大致延时1mS

DelayUs2x(245);

DelayUs2x(245);} }

第五篇:单片机学习心得

单片机学习心得

第一次听说单片机是在今年年初的时候,是在一段视频上,好像讲的是基于单片机控制的遥控小车,真正见到单片机是在我的第一本入门教材上,在此之前我只是模拟电子电路爱好者,当我第一次认识单片机以后就彻底爱上她了,当时对她很是好奇,一片小小的芯片竟然可以实现这么多功能,还可以编程。

从那时起就开始了我的单片机学习之路,到现在已有7个月了,这7个月学到了许多。下面是我学习单片机的一些心得体会,供大家参考一下:

学习单片机最重要的不是你有多深厚的基础知识(当然基础也是很重要的),而是你对她是否有兴趣,兴趣的魅力是巨大的,兴趣是最好的老师,是你坚持下去的动力源。

要对数电和模电有一定的了解,这对你学习单片机有很大帮助。

学习单片机光看书是不行的,还得要实践,所以还得要有经济投入(不会花很多钱的)。

先选一本好的入门教材,51系列单片机入门教材很多,很适合我们初学者。

大略了解一下单片机结构,一开始不要深入研究,要多增加感性认识,有利于学习。要学习一门编程语言 汇编或者是C语言,(汇编有利于内部结构的了解,C语言可移植性好,建议先学汇编,再深入学习C语言。)

熟练使用一种编译软件,推荐Keil C。

会用一种电路图和PCB设计工具,推荐protel。好好利用网络资源,尽可能自己解决问题,这也是提高自学能力的一种方法。

要实践理论相结合,多动手。最重要的是要保持兴趣,贵在坚持。

下载单片机学习心得word格式文档
下载单片机学习心得.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    单片机学习心得

    单片机与机械专业联系及其重要性机械10-23100644202张弼赫摘 要:针对单片机应用日益广泛,并且对于机电一体化的应用具有现实意义,本文根据现实生活中单片机在机械行业中的应用,......

    单片机学习心得(精选5篇)

    我是刚毕业不久的工科学生,记得刚入大学的时候,有个比我大几届的师兄告诉我,让我利用课余时间好好学学单片机,只有那样才不愧为一名学电子的学生.坦白的说,那时侯我对单片机可以说......

    单片机学习心得[五篇材料]

    我的单片机学习心得 姓名:杨延海 学号:2005040165 这世界似乎总是很喜欢和人开着玩笑,原本对电子方面并不是很感兴趣的我在大学里却选择了电子信息科学与技术这一个对自己来......

    单片机学习心得(精选5篇)

    Medwin软件使用 计算机仿真对单片机指令系统学习的帮助主要在于帮助理解,加强记忆,适当应用。能够在单片机指令系统学习中的软件主要是MedWin,因为其操作简单,而且可以直观地看......

    单片机原理学习心得

    单片机原理学习心得 授课老师: XXX 姓名: XXX 学号:XXX 通过本学期学习我收获很大,虽然只是基础课程,但是让我对单片机有了深入的了解。在工业、农业、军事、保安、金融、仪器仪......

    单片机的学习心得

    如何开始学习单片机我并不是什么高手,只是自己在摸爬滚打7、8年后得到的一点点经验,说出来和大家分享罢了。这篇文章也就是个经验只谈,大家觉得合适就看看,不合适就不要看下去......

    单片机学习心得2

    单片机学习心得在学校学习期间我有幸的参加了学校的单片机学习小组,在小组里我了解了什么是单片机,单片机有哪些用途,利用单片机可以实现哪些功能来方便人们的生活如交通灯,时钟......

    单片机课程学习心得

    单片机学习心得这学期我们学习了单片机原理及接口技术这门新的课程,在短短七周的学习过程中,老师不仅传授了我们专业知识,交给我们人生的道理,求学的态度,还不忘联系生活,告诫我们......