本人还是学生,此刻大三,接触单片机一年多以来,从最基础的51开始,到更高级点的MSP430,一向到此刻刚开始上手的STM32,编过的程序不算多,但加起来怎样也有上百个了,做过的东西仔细数数,能拿出手来算算的上是个样的也不下十个,算是小有所成吧。
但今日,我却发现,这一年我一向在走一条歪路。
先说一下情景吧,是这样的,最近同学几个合伙做个小项目,不算复杂,跟市面上的工程项目完全没法比,用难再需要使用的一个芯片是教师给的,从没用过,没有历程,至于一份电子版的数据手册,一切的一切都只能是从头开始,从底层开始,我们几个斌开始从最底层的逻辑时序、寄存器操作开始,但经过几天的研究,确实毫无效果可言。
为此,我们几个郁闷了好长时间,开始疯狂的上网搜资料,拷代码,却终究是不得而返,还让教师骂了一顿,因为这个项目是我们主动要求教师放给我们的,结果却耽误了工期。
我次我们几个人很受打击,最终决定大家一齐静下心来分析分析,到底我们败在了什么地方
最终总经过两天的思考、讨论、总结、检讨···,我们发现了问题的所在,想来想去,这估计是很大一部分初学者正在面临的一个“瓶颈问题”,所以,由我净这个讨论的结果发布出来,期望与更多的人交流、分享、提高、共勉。
下头先总结一下我们失败的几点原因:
1、“都是开发板惹的祸”,能够说从开始学习单片机,哪怕是最基础的51、以致之后的MSP430、ARM,我没从未离开过开发板,并且这长达一年多的时间,养成了我们对开发板极大的依靠,尽管自我焊过51最小系统、绘制过430最小系统板,但都是参考的别人已有的电路图,连最基本的电路基本都没分析过,为什么要在这几个电阻,该加个多大的,不加会怎样样,太大了太小了会有什么后果,等等此类问题,我们从未分析过,全是COPY、COPY、再COPY,以致自我做过的东西不少,本事却未曾提高。
2、“全是例程误导我”,我们买来的开发板,往往都会带有丰富的例程,通常这也是卖家吹嘘、比拼的地方,但就是这些附带的历程,让我们与底层的开发绝缘了,有了例程,我们不用再一个代码一个代码地敲键盘,不用再去研究那些器件的数据手册、通信接口、寄存器、内部原理、以及很多商家没给我们加进去的功能,哪怕是将这些程序改到别的地方,我们也可是是在宏定义里改两个引脚配置而已,从未尝试过从底层写驱动、敲代码、写函数,从未尝试过快平台移植代码,开发呢些没用过的功能等等。
3、“现实环境太无奈”,这跟上头两个说的是不一样的方面,我们都是大学生,大学里此刻吵得火热的“大学生就业难”、“你是考研还是就业”、“你报____X培训班了吗”“你考四六级证了吗”等等,好像上大学就是为了干这些,似乎没有这些,你就会陷入“毕业即失业”的困境。应对这些外来的干扰,越来越多的学生坐不住了,我们这些人也一样,尽管一向在学习自我的爱好,但当被人问得多了的时候,心里也难免会发毛、会害怕,从而导致一年来真正静下心来学这些东西的时间越来越少。
大体也就总结怎样多吧,经过这次失败,也算是教训深刻吧,此刻才大三,到大四毕业,还有近两年的时间,还不算太晚,再说将来的路还长,此刻发现这些,应当不算晚吧。
对我们来说,革命尚未成功,同志仍需努力啊!
开这贴,一为总结这次失败、而为自我立志改变、三为警示之后的同学、四为大家齐言献计。
大家有遇到同样问题的、要类似迷茫的、要好的提议意见的,欢迎回帖交流,大家一齐共勉。
很多人说,学单片机最好先学汇编语言,以我的经验告诉大家,绝对没有这个必要,初学者一开始就直接用C语言为单片机编程,既省时间,学起来又容易,提高速度会很快。在刚开始学单片机的时候,千万不要为了解单片机内部结构而浪费时间,这样只能打击你的信心,当你学会编程后,自然一步步就掌握其内部结构了。
单片机的学习实践。
单片机提高重在实践,想要学好单片机,软件编程必不可少。可是熟悉硬件对于学好单片机的也是十分重要的。如何学习好硬件,动手实践是必不可少的。我们能够经过自我动手做一个自我的电子制作,经过完成它,以提高我的对一些芯片的了解和熟练运用它。这样我们就能够多一些了解芯片的结构。我相信,你完成了一个属于自我的电子制作,你的单片机水平就会有一个质的提高。
这就是我学习单片机的心得体会,期望给单片机的爱好者学好单片机有所帮忙。
使用单片机就是理解单片机硬件结构,以及内部资源的应用,在汇编或C语言中学会各种功能的初始化设置,以及实现各种功能的程序编制。第一步:数字IO的使用
使用按钮输入信号,发光二极管显示输出电平,就能够学习引脚的数字IO功能,在按下某个按钮后,某发光二极管发亮,这就是数字电路中组合逻辑的功能,虽然很简单,可是能够学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。
第二步:定时器的使用
学会定时器的使用,就能够用单片机实现时序电路,时序电路的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,能够用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电路能够实现时序电路,可编程逻辑器件(PLD)能够实现时序电路,可编程控制器(PLC)也能够实现时序电路,可是仅有单片机实现起来最简单,成本最低。定时器的使用是十分重要的,逻辑加时间控制是单片机使用的基础。
第三步:中断
单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要必须的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在回到执行正常的程序。中断功能使用中的困难是需要精确地明白什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应当干什么,中断完成后,程序应当干什么等等。中断学会后,就能够编制更复杂结构的程序,这样的程序能够干着一件事,监视着一件事,一旦监视的事情发生,就中断正在干的事情,处理监视的事情,当然也能够监视多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。
最近自我对单片机异常的感兴趣,因为看到它能控制电机的转动,自我觉得很神奇。就想弄清楚它到底是怎样做到的?
我看到书上讲:单片机能够用两种语言编写,一种是c语言,另外一种是汇编语言。汇编语言是一种机器语言,且代码繁琐,不易记忆。需要掌握单片机的内部结构和逻辑结构,经过看了几本书让我了解认识到汇编确实太繁琐,可是我学习过c语言,也参加了全国计算机二级考试,觉得自我在一方面具有优势,能很快学好它。
可是在学习中,我才发现学习单片机不仅仅需要软件的知识,还需要硬件的知识。我买了一个单片机在实践中就是一个活生生的例子,没有相应的硬件知识,我连单片机怎样和电脑相连都不明白,我为我当初的想法感到羞愧。单片机是一门很好的学问,需要我去钻研它。
时光飞逝,一转眼,一个学期又进尾声了,本学期的单片机综合课程设计也在一周内完成了。
俗话说“好的开始是成功的一半”。说起课程设计,我认为最重要的就是做好设计的预习,认真的研究教师给的题目,选一个自我有兴趣的题目。其次,教师对实验的讲解要一丝不苟的去听去想,因为仅有都明白了,做起设计就会事半功倍,如果没弄明白,就迷迷糊糊的去选题目做设计,到头来一点收获也没有。最终,要重视程序的模块化,修改的方便,也要注重程序的调试,掌握其方法。
虽然这次的课程设计算起来在实验室的时间仅有三天,可是因为我们都有自我的实验板,所以在宿舍里做实验的时间必须不止三天。
硬件的设计跟焊接都要我们自我动手去焊,软件的编程也要我们不断的调试,最终一个能完成课程设计的劳动成果出来了,很高兴它能按着设计的思想与要求运动起来。
当然,这其中也有很多问题,第一、不够细心比如由于粗心大意焊错了线,由于对课本理论的不熟悉导致编程出现错误。第二,是在学习态度上,这次课设是对我的学习态度的一次检验。对于这次单片机综合课程实习,我的第一大心得体会就是作为一名工程技术人员,要求具备的首要素质绝对应当是严谨。我们这次实习所遇到的多半问题多数都是由于我们不够严谨。第三,在做人上,我认识到,无论做什么事情,只要你足够坚强,有足够的毅力与决心,有足够的挑战困难的勇气,就没有什么办不到的。
首先,学习单片机要有必须的基础:电子技术方面要有数字电路和模拟电路等方面的理论基础,个性是数字电路;编程语言要求汇编语言或C语言。要想成为单片机高手,推荐初学者首先学习汇编语言,学的差不多的时候,转入C语言学习。尽管汇编语言属于低级语言,编程效率低,可是较C语言具有目标代码简短,占用内存少,执行速度快等优点,更重要的是能使初学者尽快熟悉单片机的内部结构,并能对其进行精确的控制。汇编语言在单片机教材里面都会涉及,不需要单独购买教材和学习。C语言是一门学问,有很多专业书籍来讲解,并且对我们今后的编程生涯有绝对的好处,所以要深入学习,千万不要自以为看了某某的视频教程就以为掌握了C语言,那只是C语言的一部分。在那里给大家推荐一本单片机C语言程序设计参考书,马忠梅等著,北京航空航天大学出版社出版的《单片机的C语言应用程序设计》,要求C语言基础。如果没学过C语言,推荐学习清华大学谭浩强编写的C语言程序设计,这本书写的不错,通俗易懂。
其次,是单片机教材选取。单片机是一门十分重视实践的技术,不能总是看书,但要学习它首先应看书,对单片机引脚、内部结构、寄存器和原理有必须地了解和感官认识,它的是怎样工作的,能干些什么?刚开始时,也许你看不明白,但这并不要紧,因为你还缺乏实践经验。此刻单片机应用广泛,所以各个厂家分别推出了自我的单片机,按内部结构体系派系分:51系列、PIC系列、AVR系列、摩托罗拉等等……我们没必要每样都学!因为他们的编程方法和调试过程以及内部指令结构有必须的相似,只要学精通一款就OK了!尤其是用C语言编程,就几乎不用分什么派系,可是我们要选取一款有代表性的知识范围广,并且入门容易,书籍多。一般来说,MCS-51系列单片机已经得到广泛的普及和应用,市场上它的资料也比较多,用的人也很多。给大家推荐一些参考书,学习时只需要一本就足够拉。书名:《新编MCS-51单片机应用设计》,哈尔滨工业大学出版,作者:张毅刚;书名:《单片机原理及应用》,高等教育出版社,作者:张毅刚等;书名:《单片机高级教程:应用与设计》,北京航空航天大学出版社,作者:何立民。相关教材还有很多,在这不一一列举。
然后,是开发工具和开发环境的选取。选取一块适宜的学习板,提议吴鉴鹰教师的板子,对于初学者来说一般无力理解,如果经济条件允许、本人又对单片机很感兴趣、有从事相关工作意向的话,鼓励大家购买。随便说一句,学习板功能要求太全,具有流水灯、数码管、独立键盘、矩阵键盘、AD或DA、液晶、蜂鸣器等就差不多啦,毕竟,功能齐全的价格比较高。仿真器对单片机初学者来说既是那么耳熟,同时又有些陌生,这主要是因为市场上传统的仿真器价格都在千元以上,对经济不是十分宽裕的人来说是不小的开支。同时仿真器是用来提高调试程序效率的,也不是非需不可的,如果你没有仿真器,遇到程序出错的时候,只好苦思冥想,反复烧写调试。有兴趣的朋友可关注一下。有了吴鉴鹰单片机教程板以后,先看下指导说明书,熟悉一下学习板,开卷有益。以后就得靠自我多练习了,将学习板与电脑连接好,先学会开发软件的使用,然后从最简单的流水灯实验做起,按照你自我的意愿控制流水灯,当你完成时,你会发现这是多么惬意的事情。太好玩了,你会觉得这不是在学习,而是在玩,当你发现,单片机能够按照你编写的程序工作时,你会觉得十分兴奋,比做什么事情都开心,这样你会慢慢迷上单片机,真的。不少网站上说搞
定某个实验,就恭维的告诉你一声”恭喜你,学会了”自我学会了单片机,这有点可笑,这只能说明你算过关了,对单片机有了必须了解和会使用它了。可是单片机能完成的功能太多了,尤其是对外围器件的控制,综合起来能设计出许多意想不到的产品。所以除了入门外,精通可千万别轻易说出口。
学习单片机这门课程(教学中选用inter公司的mcs-51),要掌握单片机指令系统中汇编语言各种基本语句的意义及汇编语言程序设计的基本知识和方法,以及单片机与其他设备相连接的输入输出中断等接口技术。使学生从硬件软件的结合上理论联系实际,提高动手本事,从而全面掌握单片机的应用。
实验教学的全过程包括认识、基础、综合3个阶段。以往的单片机实验是进行软件的编制和调试,与实际应用中的硬件电路相脱节。使学生缺乏硬件设计及调试分析本事,对单片机如何构成一个单片机最小应用系统,缺乏认识。发布的单片机实验板,经过计算机连接仿真器在实验板上把硬件和软件结合起来一齐调试,
软件的修改也十分方便,软件和硬件调试都经过后,把程序固化在eprom当中,插上8051单片机构成一个完整的单片机应用系统。
由于单片机体积小、成本低、使用方便,所以被广泛地应用于仪器仪表、现场数据的采集和控制,但单片机存储量有限,数据处理本事差,不利于数据信息的保存和处理,在那里利用单片机的串行口和上位PC机串口通讯,实验板上的MAX233串行转换芯片实现TTL信号和RS232信号之间的转换,和PC机通讯,从而实现远距离的监控及信息的存储、处理和打印清单,单片机完成现场数据的采集及各种信号的控制,构成一套环境监控单元。
在电子技术应用领域中,单片机的应用愈来愈多地应用到各行各业。如:工业控制、仪器仪表、电讯技术、办公自动化和计算机外部设备、汽车与节能、商用产品、家用电器等。目前,单片机正朝着大容量片上存储器、多功能io接口、宽范围工作电源和低功耗方向发展。要开发单片机的应用,不但要掌握单片机硬件和软件方面的知识,并且还要深入了解各应用系统的专业知识,仅有将这两方面的知识融会贯通和有机结合,才能设计出优良的应用系统。一个好的工程设计师不仅仅要掌握单片机的工作原理,并且还要不断了解各公司最新芯片的结构和应用,在实际应用中找到最好的性能价格比。所以还要注意培养学生理解新知识的自学本事,掌握芯片发展动态。