资讯详情

如何学好单片机?​嵌入式第一门课

很多想学单片机的人问我的第一句话是:怎样才能学好单片机?

对于这个问题,我将告诉你如何开始学习单片机,如何开始,如何开始熟练的过程。

先说单片机。一般我们现在用的比较多。MCS-51单片机信息多,人多,市场大。根据我个人的经验,如何更快地学习单片机课程。

单片机是一门非常重视动手实践的学科。你不能总是读书,但你必须先读书才能学会,因为你需要从书中大致了解单片机的各种功能寄存器。为了解释这一点,我们使用单片机来控制单片机的各种功能寄存器,然后解释这一点,即控制单片机管脚的电平何时输出高,何时输出低。

由这些高低电平的变化来控制你的系统板,实现我们需要的各个功能。至于看书,只需大概了解单片机各管脚都是干什么的?能实现什么样的功能?第一次,第二次你可能看不明白,但这不要紧,因为还缺少实际的感观认识。

所以我总是说,学习单片机读两三天就足够了,读小说你一天可以读五六本书,看单片机你两三天读两三次就足够了,你不能仔细阅读。推荐一本书,这本书就足够了,标题是新编辑MCS-哈尔滨工业大学出版社出版了51台单片机应用设计,作者是张一刚。了解书中的内容,然后练习是非常关键的。

如果你不练习单片机,你就不可能学习它。你可以选择两种方法来练习。一种方法:你自己花钱买一个单片机学习板,不需要太完整的功能。对于初学者来说,你买了一个有很多功能的板你这辈子不需要很多东西。我建议有流水灯、数字管、独立键盘、矩阵键盘、AD或DA(原理相同),液晶,蜂鸣器,差不多。如果你能熟练应用上面提到的,可以说你已经介绍了单片机的硬件,剩下的就是练习设计电路,不断积累经验。

只要通过第一关,后面的路就容易走得多。一开始一切都很困难,每个人都可能听说过。方法2:如果你身边有一个单片机专家,请向他求助,让他帮你建立一个简单的最小系统板。

对于大师来说,制作单片机的最小系统板只需要一分钟,对于初学者来说要困难得多,因为只有了解硬件,才能熟练地使用它。如果你周围没有这样的大师,找不到任何人可以帮助你,那么我建议你最好自己买一个,毕竟,你有一个更方便,以后做单片机小实验可以使用,但也很容易。

有了单片机学习板,你应该多练习。最好有一台自己的电脑,一天少看电影,少玩游戏,把学习板和电脑连接起来,打开调试软件坐在电脑前,先学会如何使用调试软件,然后从最简单的流水灯实验开始。当你能让那八盏流水灯按照你的意愿随意流动时,你已经开始了,你会发现单片机有多迷人,太有趣了。但是在玩,当你写的程序按照你的意愿实现时,你比做任何事都快乐,你会上瘾,真的。

做电子的人真的上瘾了。然后让数字管亮起来。这两次会议结束后,你无法自拔。你已经开始考虑你这辈子要走哪条线了。

就是这样练习。写程序的时候肯定会遇到很多问题。这时,你会翻书或者问别人。得到答案后,你会记住一辈子。知识必须用于现实生活,解决实际问题,才能发挥作用。想想自己。上了这么多年大学,天天上课,你在课堂上学到了什么?

你忙于期末考试吗?考试90分后,哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈哈

学完有什么用?让你用C语言编单片机程序,你傻吗?我们必须能够使用书中的东西。单片机编程可以使用C语言或汇编语言,但我建议使用C语言更好。如果有C语言的基础,学习会更好。如果没有,你也可以在学习单片机时学习C语言,C语言也很简单,只是一个工具,我建议你最好学习,将来必须使用,否则你必须学习,你不会汇编没关系,但你没有C语言,你将来会受苦。

编写程序代码效率高,但相对困难,非常冗长,特别是遇到算法问题,非常麻烦,现在单片机主频率不断提高,我们不需要如此高效的代码,因为有高频时钟,单片机ROM它也在不断改进,足以容纳你用C语言写的任何代码,C语言资料多,容易找到,未来可移植性很好,只需要变一个IO口写温度传感器的程序可以在任何地方使用,所以我建议你使用C语言:嵌入式开发初学者,如何学习C语言?。

综上所述,只要你有信心,能坚持到底,有不成功不放弃的强烈意志,学单片机就很容易了。

1.找一本书,大致了解一下单片机的结构,大致了解一下。不要全部理解,也不要让你出书。(3天)

2.找学习板练习编写程序,学单片机就是练习编写程序,遇到不会再问人或查书。(20天)

3.在网上找一些小电路数据练习设计外围电路。焊接后自行调试,熟悉流程。(10天)

4.你已经是个人风格的电路和产品的专家了。

你看到了吗?努力一个多月就能成为高手。我说了这么多。如果你学不会,如果你得不到努力,那就看你了。

很多人说,学习单片机最好先学习汇编语言。根据我的经验,绝对没有必要。初学者从一开始就直接用C语言为单片机编程,这不仅节省了时间,而且易于学习,进步速度也会很快。当你第一次学习单片机时,不要浪费时间来理解单片机的内部结构,这只会打击你的信心。当你学习编程时,你自然会一步一步地掌握它的内部结构。

提高单片机注重实践,软件编程对于学好单片机至关重要。但是熟悉硬件对于学好单片机也很重要。

如何学好硬件,动手实践是必不可少的。我们可以自己做一个电子生产,提高我对一些芯片的理解和熟练使用。这样,我们就可以更多地了解芯片的结构。我相信,如果你完成了自己的电子生产,你的单片机水平会有质的提高。

这是我学习单片机的经验,希望能帮助单片机爱好者学好单片机。

使用单片机是了解单片机的硬件结构和内部资源的应用,学习汇编或C语言中各种功能的初始化设置,实现各种功能的编程。

使用按钮输入信号,发光二极管显示输出电平,学习引脚的数字I/O功能,按下按钮后,发光二极管发光,这是数字电路组合逻辑功能,虽然很简单,但可以学习一般单片机编程理念,例如,必须设置许多寄存器初始化引脚,使引脚具有数字输入输出功能。每次使用单片机功能时,都应设置控制该功能的寄存器。这就是单片机编程的特点。不要害怕麻烦。所有单片机都是这样。

如果你学会使用定时器,你可以使用单片机实现定时电路。定时电路功能强大,广泛应用于工业和家用电气设备的控制。例如,可以使用单片机 现在是一个带按钮的走廊灯开关。按下按钮一次后,灯亮3分钟后自动熄灭。当按钮连续按下两次时,灯通常不会熄灭,当按钮按下时间超过2次s,则灯灭。

数字集成电路可以实现编程逻辑器件(PLD)可编程控制器实现时序电路(PLC)时间电路也可以实现,但只有单片机最简单,成本最低。定时器的使用非常重要,逻辑和时间控制是单片机使用的基础。

单片机的特点是程序重复执行,程序中每个指令的执行都需要一定的执行时间。如果程序没有执行到指令,指令的动作就不会发生,这将推迟很多快速发生的事情,例如按下按钮时的下降边缘。

为了使单片机在程序正常运行过程中对快速运行做出反应,必须使用单片机的中断功能,即单片机在快速运行后中断正常运行的程序,处理快速运行,处理完成后返回执行正常程序。

使用中断功能的困难在于准确知道什么时候不允许中断(屏蔽中断),什么时候允许中断(打开中断),需要设置什么寄存器才能使某个中断工作,中断开始时程序应该做什么,中断完成后程序应该做什么等等。

中断学习后,可以编制更复杂的程序结构,这样的程序可以做一件事,监控一件事,一旦监控发生,中断正在做,处理监控,当然,也可以监控多件事,形象隐喻,中断功能使单片机吃碗,看锅的功能。

以上三个步骤相当于降龙十八掌武功。如果你知道三掌,你可以勉强保护自己。

单片机都有USART特别是接口MSP430系列中有两种型号USART接口。USART接口不能直接与PC机的RS232接口连接,逻辑电平不同,需要使用MAX3232芯片电平转换。

USART接口的使用非常重要。通过这个接口,单片机和PC机之间交换信息,虽然RS232通信不先进,但学习界面非常重要。正确使用USART接口,需要学习通信协议,PC机的RS232接口编程等知识。试想一下,单片机实验板上显示的数据PC在机器监视器上PC单片机实验板上可以显示机器的键盘信号,会有多有趣啊!

MAP430单片机多通道12A/D通过这些,转换器A/D转换器可以模拟单片机的操作量,显示和检测电压、电流和其他信号。学习时注意模拟和数字、参考电压、采样时间、转换速率、转换误差等概念。A/D设计电压表是转换功能的简单例子。

这些接口的使用可以使单片机更容易连接外部设备,在扩展单片机功能方面非常重要。

这些功能可以使单片机控制电机,检测速度信号,实现电机调速器等控制功能。如果你学会了以上七个步骤,你可以设计一个一般的应用程序系统,相当于学习10个动作龙18掌,你可以攻击。

学习USB接口、TCP/IP接口、种工业总线的硬件与软件设计是非常重要的,因为这是当前产品开发的发展方向。

到此为止,相当于学会15招降龙十八掌,但还不到打遍天下无敌手的境界。即使如此,也算是单片机大虾了!!

首先,单片机不是万能的,但没有单片机那是万万不能的。从N年前的单片机,到现在的单片机,单片机只是单片机,其性质并没有太多的改变。只是从原来的“神秘”、“暴利”、“有趣”等等,回归了她原来的真是面目罢了--那只是在说明社会在进步,更加的合理和趋于理性。

只是现在的这样回归,有点走了极端,从一个极端走了另一个极端罢了。但相反,社会在这方面的需求却是越来越大,至少在我们的有生之年,这样的“自动化”过程一直会贯穿下去。所以你有什么好担心的,怕自己没有用武之地吗?!怕自己的资薪没有或不高吗?

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

有些人在抱怨单片机在社会上的方方面面,那只是一个现象或表象罢了,或者说那只是纯电子开发或纯电子开发的配套产品,在面临更加激烈的竞争情况罢了。别说自己只会编编程,做点纯电子的工作就觉得不得了了,那就错了,单片机系统工程没有那么狭隘。

如果你走不出这种狭隘,那你注定就是在抱怨的那部分人。就像我前面说的,单片机只是在回归她的本来面目而已。还有就是中国就是太缺少“到了50、60岁的样子”,都还在从事单片机工作的人。也许那也是新兴的中国需要经历的一个过程吧?!

没有什么职业是最好的,只有在当前或相当一段时间内适合自己的职业。就说单片机,对我来说,单片机的工作成果那只是一个配件(当然纯电子产品除外),正因为是“配件”,所以你需要提供相应的物理尺寸,单片机系统的散热,安装条件和安装方式等等情况,需要与你的上下游提供的环境配合好,而不是说我的单片机功能完成了就没我的事了,万事大吉了。

就仅对单片机需要实现的功能来说,如果你连功能都实现不了,那我还要你做什么--那只是基础工作。其实,往往上下游提供的环境对你的设计就是一种考验,也有你需要变换N种方案才能比较好的实现的可能。很明显,这样的上下游环境,对你就是一种很好的资源,不过有些人可能就会视而不见,让你更加熟悉自己开发的东西,在这个行业中的使用和价值情况,对自己的今后发展都是一个很好的参考。不像C、C++的人员到了没有发挥平台的时候,就很郁闷了。相反,对单片机来说,我们可以为自己建立那样的可以供自己发挥和发展的平台。

说了那么多,我只是在闲聊,聊聊自己的看法,希望对你有点帮助。

就我的理解出发,单片机是相当“底层”和“硬件”的东西,没有太多高深的数据结构,也没有太多需要技巧的编程算法,只要我们从单片机执行的角度去理解和编程就行了。一个单片机就可以构成一个电子系统,也可以只构成一个智能节点。没有太多高深的东西需要去研究,因为我们只是单片机的应用者而已,别把自己提到“研究”的高度,我们只在“应用”的高度。

9b41ee8008a34443bfad2f3623b79b02.png

正因为是在“应用”的高度,所以在熟悉和能精确把握“单片机的使用”的时候,应该把更多的精力放在“单片机的应用”的“使用环境”上。曾经有个牛人,拿着intel的8031的芯片技术手册和内部手册,在一个单片机上实现了你想都没想过能实现的应用,但我认为那个是没有必要的,除非你想搞51芯片开发。说了那么多,如果你还在为单片机而单片机的话,那我觉得你有点可悲了。

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

当有一定的年龄和人力资源后,就可以自己出来做了,当个所谓的半个老板了。但当自己做老板说容易也容易,说不容易也不容易。当初我就是在这样的忐忑中,冲了进去。项目接的很多,周期对自己规定的也很短,往往都是白天在处理前一个或前面项目的维护工作,晚上回来工作到一、二点开发新项目。

累就不用说了,有时想想那是在拿自己的命来搏钱啊!!!老婆不太同意我出来自己干,做的好好的也不错。于是,我就对老婆说,可能我不能每个月准时的拿钱养家糊口,但我保证一年下来的平均每个月养家糊口的钱一定不会低于现在。就这样,我开始了走自己的路了。吃苦受累我不怕,付出了没有收获我不怕。怕的就是过不了自己的心理关,也许一直以来都比较好运气和顺利的缘故吧?!作为和我同行的兄弟姐妹们,一定要过了自己的心理关,别太在意今时今日的得失,还有所谓的某些情况下的“面子”。

至少我们应该用“最小的代价”来给自己当“学费”。也不怕你们笑话,我的“学费”交的也不少。一个成功的项目,不是你的功能有多好,有多强,而是你的开发成功为你的项目方带来了多少的利润收入,那才是真正的成功了,尽管你只赚了点儿开发费。

做项目,别为自己考虑太多,多换位思考一下。人家能信任你,把项目交给你做,你就多该从项目方的角度考虑考虑---也许有时他们的要求有点过分,但所谓不知者不去怪罪了。

做一个称职的软硬电子工程师吧。不用学太多,就学一些就行了,也不要去跟风,那个没有必要。有时,你就是去学了,如果没有相应对应的开发任务,学的也是皮毛,不过只要皮毛也可以了,当你真正需要的时候,再拿起来就会快很多,也算是一种储备吧。

但你至少要会一种,一种相对来说狭隘的系统吧?!不怕你笑话,我就只会51单片机。先说说我自己了,从事工业自动化方面的机床设备行业:

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

  • 粗通ARMDSP,粗通ARM和DSP的汇编,了解C编程。

  • 精通三维造型软件SOLIDWORKS(可以为自己的线路板造型和机械设备造型)

  • 粗通机加工大部分的工艺。

  • 精通钣金和焊接。

  • 熟悉数控设备、机床的实现解决方案。

对于每个人来说,学以致用,以前的我什么都想学,什么都用不好,当学的时候,却没有用的发挥平台,都是为学而学。但至少当你要用的时候,重新捡起来的时候,就会很快。就拿ARM来说吧,学的时候学的很努力,从其机理到实现,也做过好多的实验,可现在就是用的少就剩下了点概念的东西了。

所以没必要什么都要精通,只要一样,比如51单片机吧,从设计、投板、采购、焊接、一直到调试成成品等等一个系统下来,如果你思考了,如果你精通了,你还怕什么,不给高工资也要给你高年薪了,应该都能了解“老板一将难求”的道理了。

做一个合格的新手电子工程师吧。对于新手,我的建议是:别上来就是一个什么五年十年规划之类的,我们都是普通人,那种规划不适合普通人。如果我们能将今后一年和二年的规划做好了,那你就已经很了不起了。

每天都是一个想法,每月都是一个变化,更别说每年了,只要你在努力,脚踏实地的做事。不要把自己搞的太忙碌了,给自己每天留半个小时想想“心事”了。做好一样,再发散开去,对于电子类的,什么STM32,DSP,51都是相通的:简单分析STM32和51的区别。精通了一个体系,那么其他电子类的体系都是相通。怕就怕你什么都不通,都是半通。还半桶水的晃来晃去的,那就有点郁闷和悲哀了!

转自公众号:STM32嵌入式开发

标签: 加速度传感器必不可少da1200二极管散快速二极管

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台