2020年 12月 16日 星期三
您的位置: 威廉希尔主页 > 单片机技术 >

如何学好单片机_单片机的学习实践

来源:未知     作者:威廉希尔     发布时间:2020-12-16 18:48         

  ,一般我们现在用的比较多的的MCS-51的单片机,它的资料比较多,用的人也很多,市场也很大。就我个人的体会怎么样才能更快的学会单片机这门课。单片机这门课是一项非常重视动手实践的科目,不能总是看书,但是学习它首先必须得看书,因为从书中你需要大概了解一下,单片机的各个功能,而说明白点,我们使用单片机就是用软件去控制单片机的各个功能寄存器,再说明白点,就是控制单片机那些管脚的电平什么时候输出高,什么时候输出低。由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。所以我总是说,学单片机看书看两三天的就够了,看小说你一天能看五六本,看单片机你两三天看两三遍就够了,可以不用仔细的看。推荐一本书,就这一本就足够,书名是《新编MCS-51单片机应用设计》,是工业大学出版社出的的,作者是张毅刚。大概了解一下书上的内容,然后实践,这常关键的。如果说学单片机你不实践那是不可能学会的,关于实践有两种方法你可以选择,一种方法:你自己花钱买一块单片机的学习板,不要求功能太全的,对于初学者来说你买功能非常多的那种,有很多东西你这辈子都用不着,我有流水灯、数码管、键盘、矩阵键盘、AD或DA(原理一样)、液晶、,这就差不多了。如果我提到的这些,你能熟练应用,那可以说对于单片机方面的硬件你已经入门了,剩下的就是自己设计,不断的积累经验。只要过了第一关,后面的就好走多了,万事开头难,大家可能都听过。方法二:你身边如果有单片机方面的高手,向他求助,让他帮你搭个简单的最小系统板。对于高手来说,做个单片机的最小系统板只需要一分钟的时间,而对于初学者可就难多了,因为只有对硬件了解了,才能熟练运用。而如果你身边没有这样的高手,又找不到可以帮助你的人,那我劝你最好是自己买上一块,毕竟自己有一块要方便的多,以后做单片机类的小实验时都能用得上,还省事。有了单片机学习板之后你就要多,最好是自己有台电脑,一天少看电影,少打游戏,把学习板和电脑连好,打开调试软件坐在电脑前,先学会怎么用调试软件,然后从最简单的流水灯实验做起,等你能让那八个流水灯按照你的意愿随意流动时你已经入门了,你会发现单片机是多么迷人的东西啊,太好玩了,这不是在学习知识,而是在玩,当你编写的程序按你的意愿实现时你比做什么事都开心,你会上瘾的,真的。做电子类的人真的会上瘾。然后让数码管亮起来,这两项会了后,你已经了,你已经开始考虑你这辈子要走哪一行了。就是要这样,在写程序的时候你肯定会遇到很多问题,而这时你再去翻书找,或是问别人,当得到解答后你会记住一辈子的,知识必须用于现实生活中,解决实际问题,这样才能发挥它的作用,你自己好好想想,上了这么多年大学,天天上课,你在课堂上学到了什么?是不是为了期末考试而忙碌呢?考完得了90分,哈哈哈好高兴啊,下学期开学回来忘的一干二净,是不是?你学到什么了?但是我告诉你单片机一旦学会,永远不会忘了。另外我再说说用汇编和C语言编程的问题。很多同学大一二就开设了C语言的课,我也上过,我知道那时天天就是几乘几,几加几啊,求个阶乘啊。学完了有什么用?让你用C语言编单片机的程序你是不是就傻了?书上的东西我们必须要会运用。单片机编程用C语言或汇编语言都可以,但是我用C语言比较好,如果原来有C语言的基础那学起来会更好,如果没有,也可以边学单片机边学C语言,C语言也挺简单,只是一门工具而已,我劝你最好学会,将来肯定用得着,要不你以后也得学,你一点汇编都不会根本无所谓,但你一点C语言都不会那你将来会吃苦头。汇编写程序代码效率高,但相对难度较大,而且很罗嗦,尤其是遇到算法方面的问题时,根本是麻烦的不得了,现在单片机的主频在不断的提高,我们完全不需要那么高效率的代码,因为有高频率的也在不断的提高,足够装得下你用C语言写的任何代码,C语言的资料又多又好找,将来可移植性非常好,只需要变一个IO口写个的程序在哪里都能用,所以我劝大家用C语言。总结,只要你有信心,做事能到底,有不成功不放弃的强烈意志,那学个单片机来说就是件非常容易的事。步骤

  使用按钮输入信号,发光二极管显示输出电平,就可以学习引脚的数字I/O功能,在按下某个按钮后,某发光二极管发亮,这就是数字电中组合逻辑的功能,虽然很简单,但是可以学习一般的单片机编程思想,例如,必须设置很多寄存器对引脚进行初始化处理,才能使引脚具备有数字输入和输出输出功能。每使用单片机的一个功能,就要对控制该功能的寄存器进行设置,这就是单片机编程的特点,千万不要怕麻烦,所有的单片机都是这样。第二步:定时器的使用

  学会定时器的使用,就可以用单片机实现时序电,时序电的功能是强大的,在工业、家用电气设备的控制中有很多应用,例如,可以用单片机实现一个具有一个按钮的楼道灯开关,该开关在按钮按下一次后,灯亮3分钟后自动灭,当按钮连续按下两次后,灯常亮不灭,当按钮按下时间超过2s,则灯灭。数字集成电可以实现时序电,可编程逻辑器件(PLD)可以实现时序电,可编程控制器(PLC)也可以实现时序电,但是只有单片机实现起来最简单,成本最低。定时器的使用常重要的,逻辑加时间控制是单片机使用的基础。第三步:中断

  单片机的特点是一段程序反复执行,程序中的每个指令的执行都需要一定的执行时间,如果程序没有执行到某指令,则该指令的动作就不会发生,这样就会耽误很多快速发生的事情,例如,按钮按下时的下降沿。要使单片机在程序正常运行过程中,对快速动作做出反应,就必须使用单片机的中断功能,该功能就是在快速动作发生后,单片机中断正常运行的程序,处理快速发生的动作,处理完成后,在返回执行正常的程序。中断功能使用中的困难是需要精确地知道什么时候不允许中断发生(屏蔽中断)、什么时候允许中断发生(开中断),需要设置哪些寄存器才能使某种中断起作用,中断开始时,程序应该干什么,中断完成后,程序应该干什么等等。中断学会后,就可以编制更复杂结构的程序,这样的程序可以干着一件事,着一件事,一旦的事情发生,就中断正在干的事情,处理的事情,当然也可以多个事情,形象的比喻,中断功能使单片机具有吃着碗里的,看着锅里的功能。以上三步学会,就相当于降龙十八掌武功,会了三掌了,可以勉强护身。第四步:与PC机进行RS232通信

  单片机都有USART接口,特别是MSP430系列中很多型号,都具有两个USART接口。USART接口不能直接与PC机的RS232接口连接,它们之间的逻辑电平不同,需要使用一个MAX3232芯片进行电平转换。USART接口的使用常重要的,通过该接口,可以使单片机与PC机之间交换信息,虽然RS232通信并不先进,但是对于接口的学习常重要的。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等等知识。试想,单片机实验板上的数据显示在PC机器上,而PC机的键盘信号可以在单片机实验板上得到显示,将是多么有意思的事情啊!第五步:学会A/D转换

  MAP430单片机带有多通道12位A/D转换器,通过这些A/D转换器可以使单片机操作模拟量,显示和检测电压、电流等信号。学习时注意模拟地与数字地、参考电压、采样时间,转换速率,转换误差等概念。使用A/D转换功能的简单的例子是设计一个电压表。第六步:学会PCI、I2C接口和液晶显示器接口

  这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。第七步:学会比较、捕捉、PWM功能

  这些功能可以使单片机能够控制电机,检测转速信号,实现电机调速器等控制起功能。如果以上七步都学会,就可以设计一般的应用系统,相当于学会十招降龙十八掌,可以出手了。第八步:学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计。

  学习USB接口、TCP/IP接口、各种工业总线的硬件与软件设计常重要的,因为这是当前产品开发的发展方向。到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了!!

  首先,单片机不是万能的,但没有单片机那是万万不能的。从N年前的单片机,到现在的单片机,单片机只是单片机,其性质并没有太多的改变。只是从原来的“神秘”、“暴利”、“有趣”等等,回归了她原来的真是面目罢了--那只是在说明社会在进步,更加的合理和趋于。只是现在的这样回归,有点走了极端,从一个极端走了另一个极端罢了。但相反,社会在这方面的需求却是越来越大,至少在我们的有生之年,这样的“自动化”过程一直会贯穿下去。所以你有什么好担心的,怕自己没有用武之地吗?!怕自己的资薪没有或不高吗?

  我自己在单片机和自己熟悉的行业上做了快10年了,不说自己的水平怎么样。说牛不牛,说不牛也牛--该骄傲的时候还是要骄傲的,那是对自己的肯定,该谦虚的时候也要谦虚学习,毕竟单片机总是一个系统工程,方方面面的东西不是自己都要熟悉和精确把握的。要想自己混的不错,我还是那句话---和自己所处的行业结合,那才是。

  有些人在抱怨单片机在社会上的方方面面,那只是一个现象或罢了,或者说那只是纯电子开发或纯电子开发的配套产品,在面临更加激烈的竞争情况罢了。别说自己只会编编程,做点纯电子的工作就觉得不得了了,那就错了,单片机系统工程没有那么狭隘。如果你走不出这种狭隘,那你注定就是在抱怨的那部分人。就像我前面说的,单片机只是在回归她的本来面目而已。还有就是中国就是太缺少“到了50、60岁的样子”,都还在从事单片机工作的人。也许那也是新兴的中国需要经历的一个过程吧?!

  没有什么职业是最好的,只有在当前或相当一段时间内适合自己的职业。就说单片机,对我来说,单片机的工作那只是一个配件(当然纯电子产品除外),正因为是“配件”,所以你需要提供相应的物理尺寸,单片机系统的散热,安装条件和安装方式等等情况,需要与你的上下游提供的配合好,而不是说我的单片机功能完成了就没我的事了,万事大吉了。就仅对单片机需要实现的功能来说,如果你连功能都实现不了,那我还要你做什么--那只是基础工作。其实,往往上下游提供的对你的设计就是一种,也有你需要变换N种方案才能比较好的实现的可能。很明显,这样的上下游,对你就是一种很好的资源,不过有些人可能就会视而不见,让你更加熟悉自己开发的东西,在这个行业中的使用和价值情况,对自己的今后发展都是一个很好的参考。不像C++、C++的人员到了没有发挥平台的时候,就很郁闷了。相反,对单片机来说,我们可以为自己建立那样的可以供自己发挥和发展的平台。

  就我的理解出发,单片机是相当“底层”和“硬件”的东西,没有太多高深的数据结构,也没有太多需要技巧的编程算法,只要我们从单片机执行的角度去理解和编程就行了。一个单片机就可以构成一个电子系统,也可以只构成一个智能节点。没有太多高深的东西需要去研究,因为我们只是单片机的应用者而已,别把自己提到“研究”的高度,我们只在“应用”的高度。正因为是在“应用”的高度,所以在熟悉和能精确把握“单片机的使用”的时候,应该把更多的精力放在“单片机的应用”的“使用”上。曾经有个牛人,拿着intel的8031的芯片技术手册和内部手册,在一个单片机上实现了你想都没想过能实现的应用,但我认为那个是没有必要的,除非你想搞51芯片开发。说了那么多,如果你还在为单片机而单片机的话,那我觉得你有点可悲了。

  多熟悉单片机的上下游和条件,那不是很困难的事。我希望自己理解的这些东西,对后来者有点帮助,对新手能够带来点思考的东西,那就够了。

  当有一定的年龄和人力资源后,就可以自己出来做了,当个所谓的半个老板了。但当自己做老板说容易也容易,说不容易也不容易。当初我就是在这样的忐忑中,冲了进去。项目接的很多,周期对自己的也很短,往往都是白天在处理前一个或前面项目的工作,晚上回来工作到一、二点开发新项目。累就不用说了,有时想想那是在拿自己的命来搏钱啊!!!老婆不太同意我出来自己干,做的好好的也不错。于是,我就对老婆说,可能我不能每个月准时的拿钱养家糊口,但我一年下来的平均每个月养家糊口的钱一定不会低于现在。就这样,我开始了走自己的了。吃苦受累我不怕,付出了没有收获我不怕。怕的就是过不了自己的心理关,也许一直以来都比较好运气和顺利的缘故吧?!作为和我同行的兄弟姐妹们,一定要过了自己的心理关,别太在意今时今日的得失,还有所谓的某些情况下的“面子”。至少我们应该用“最小的代价”来给自己当“学费”。也不怕你们笑话,我的“学费”交的也不少。一个成功的项目,不是你的功能有多好,有多强,而是你的开发成功为你的项目方带来了多少的利润收入,那才是真正的成功了,尽管你只赚了点儿开发费。做项目,别为自己考虑太多,多换位思考一下。人家能信任你,把项目交给你做,你就多该从项目方的角度考虑考虑---也许有时他们的要求有点过分,但所谓不知者不去了。

  做一个称职的软硬电子工程师吧。不用学太多,就学一些就行了,也不要去跟风,那个没有必要。有时,你就是去学了,如果没有相应对应的开发任务,学的也是皮毛,不过只要皮毛也可以了,当你真正需要的时候,再拿起来就会快很多,也算是一种储备吧。但你至少要会一种,一种相对来说狭隘的系统吧?!不怕你笑线单片机。先说说我自己了,从事工业自动化方面的机床设备行业:

  精通51,了解其他的单片机,精通51汇编,精通CPLD,半精通C51(只用来做点人机界面工作),粗通FPGA(想精通自己做51IP核)。

  对于每个人来说,学以致用,以前的我什么都想学,什么都用不好,当学的时候,却没有用的发挥平台,都是为学而学。但至少当你要用的时候,重新捡起来的时候,就会很快。就拿ARM来说吧,学的时候学的很努力,从其机理到实现,也做过好多的实验,可现在就是用的少就剩下了点概念的东西了。所以没必要什么都要精通,只要一样,比如51单片机吧,从设计、投板、采购、焊接、一直到调试成成品等等一个系统下来,如果你思考了,如果你精通了,你还怕什么,不给高工资也要给你高年薪了,应该都能了解“老板一将难求”的道理了。

  做一个合格的新手电子工程师吧。对于新手,我的是:别上来就是一个什么五年十年规划之类的,我们都是普通人,那种规划不适合普通人。如果我们能将今后一年和二年的规划做好了,那你就已经很了不起了。每天都是一个想法,每月都是一个变化,更别说每年了,只要你在努力,脚踏实地的做事。不要把自己搞的太忙碌了,给自己每天留半个小时想想“心事”了。做好一样,再发散开去,对于电子类的,什么ARM,DSP,51都是相通的。精通了一个体系,那么其他电子类的体系都是相通。怕就怕你什么都不通,都是半通。还半桶水的晃来晃去的,那就有点郁闷和悲哀了!

  智能门锁是指区别于传统机械锁的基础上改进的,在用户安全性、识别、管方面更加智能化简便化的锁具。智....

  微控制单元(Microcontroller Unit; MCU),也叫做单片微型计算机(单片机)。单片机是一块芯片上集成了中央处理器CPU, 随机...

  今年的全球半导体似乎并不太平,本以为疫情会导致全球半导体产业发生萎缩,但是谁也没有想到,带来的却是各....

  电力系统的飞速发展对继电不断提出新的要求,电子技术、计算机技术与通信技术的飞速发展又为继电技....

  芯海科技的CSU32P10芯片是一个8位RISC MCU、带12-bit ADC的高性能单片机。内置2K×14位OTP程序存储器。 ​ ...

  我的理解:硬件设计就是根据产品经理的需求PRS(Product Requirement Specification),在COGS(Cost of Goods Sa...

  生活中常用的电子计算器具有结构简单、性能稳定的优点,在现代经济社会有着广泛的应用。本次设计的基于MS....

  RT,是前三个单元里面存了1条无条件转移指令,还是每个单元里存一条?为什么是前三个单元呢?...

  单片机(MCU)一般都有内部程序区和数据区(或者其一)供用户存放程序和工作数据(或者其一)。为了防止....

  各位高工: 我需要应用一个lib库中的函数,并向把这个函数的rom存放地址固定,如何引用呢。 我试了下__attribute_...

  近几年,随着农业科技迅速进步,市场上出现了各式各样先进仪器,其中谷物筛选器,是该仪器是专门用于检测粮....

  1.设计前期部分规则设定:Preference-system-file type关联文件(所有关联)PCB-editor-General-drc(在线drc,短报错)&nb...

  本文档的主要内容详细介绍的是使用单片机实现出租车计价器的设计资料合集免费下载包括了:原理图,PCB,....

  织物电子织物强力机 【适用范围】   多功能电子织物强力机可采用不同的夹具辅具实现不同的能,主要用于....

  模数转换模块ADC是连接现实世界模拟量和数字量之间的桥梁,它的转换精度经常可以决定一个产品的品质。现....

  本系统主要由三个模块组成,即以MSP430F149单片机为核心的MCU;以LCM168651为主要部....

  模型姿态即攻角α和侧滑角β的测量控制如图2所示。所选用FB900C系列角位传感器及变送器其本身为一单....

  在MDK的开发中编译的时候会遇到各种问题,本文把开发中遇到的问题及相应的解决办法做个汇总,希望对大家有帮助。说明:此颜色...

  将C向MCU(俗称单片机)8051上的移植始于80年代的中后期。客观上讲,C向8051 MCU移植的难点不少。如: ·8051的非冯·诺...

  本文档的主要内容详细介绍的是基于单片机控制的温控设计实现方案的硬件设计资料包,包括温度湿度以及与手机....

  STM32作为一个可靠稳定的微处理器,但是不能排除由于某些特殊因素可能造成STM32的外部振荡器....

  本文档的主要内容详细介绍的是单片机入门学习教程单片机的详细概述包括了:什么是单片机,单片机的特点及应....

  如ircode【0】=mun //mun是10101010 disnum【0】=ircode【0】/16 disnum【1】=ircode【0】%16 我想问一下它们...

  在ARMCC中,编译器通常将函数和数据放在一起,并且将每一个类别规整到同一个section中,如果在....

  堆区(heap):就是那些由new分配的内存块,它们的编译器不去管,由我们的应用程序去控制,一般....

  随着我国电力事业的快速发展,电力系统对发、输、配、用电量的采集也有了更高的要求。电量采集作为电力系统....

  SPCE061A是凌阳科技公司生产的一款性价比很高的16位单片机,该单片机具有810位ADC,2....

  反客科技推出的 CMSIS DAP 仿真器主要是针对 Cortex-M0/M3/M4/M7 内核的芯....

  神器,作为一个伴随着手机前置摄像头诞生成长起来的新名词,在短短十几年的时间里,已经有了一段不短的....

  在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应....

  伴随着无线通信技术的发展趋势与普及化,频率早已变民群众所了解的标量。而单片机设计的出現,也是对包....

  室内监测仪实现原理:采用单片机和外围传感器模块通信,获取传感器数据,将数据显示到3.5寸液晶....

  【适用范围】 多功能电子织物强力机可采用不同的夹具辅具实现不同的能,主要用于各种纺织品的断裂拉伸、撕....

  随着社会的发展,人们的活动、居住区域越来越大,安全问题越显重要,加上电话、手机得到普及,简捷、经济型....

  基于GSM短消息的业务不需要建立拨号连接,只需把待发的消息加上目的地址发送至短消息中心,再由短消息中....

  该文使用Arduino硬件开发平台,以Arduino UNO电板为中心,配合使用8乘8矩形点阵完成....

  在慕尼黑华南电子展灵动微电子正式宣布将启用四位数字命名规则来命名全新的MCU系列,推出一款基于32位....

  在SVG(静止无功发生器)装置中涉及到大量的复杂计算(如滤波计算、瞬时无功计算)和先进的控制手段(如....

  单片机控制系统主要完成对过零TTL信号的检测、键值识别、延时调控可控硅、显示输出和定时开关控制这5项....

  变频技术作为现代电力电子的核心技术,集现代电子、信息和智能技术于一体。针对工频(我国为50 Hz)并....

  本文档的主要内容详细介绍的是单片机的学习课件和ZG-51C开发板的资料合集免费下载包括了:开发板原理....

  本文档的主要内容详细介绍的是使用单片机实现多位数按键加减不闪烁数码管显示的C语言实例免费下载。

  2021中国IC风云榜“年度新锐公司”征集现已启动!入围标准要求为营收过亿元的未上市、未进入IPO辅....

  本文档的主要内容详细介绍的是使用STM32单片机实现贪吃蛇的程序免费下载 利用STM32,液晶显示屏....

      威廉希尔