0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

准备学习单片机,该做哪些准备呢?

GReq_mcu168 来源:未知 作者:李倩 2018-11-05 11:00 次阅读

已经准备学习单片机,该做哪些准备呢?资深工程师告诉你如何有准备的学习单片机

这里的准备,笔者将其分为两大类:精神和物质上的准备。

1.精神准备

“千里之行,始于足下”,单片机一天、一周学不会。玩单片机一定不能“1.01³×0.99²<1.01(三天打鱼、两天晒网)”,要有持之以恒的毅力与决心。学习完几个例程后,就应及时做实验,融会贯通,而不要等几天或几个星期之后再做实验,这样效果不好甚至前学后忘。另外要有打“持久战”的心理准备,不要兴趣来时学上几天,无兴趣时放上几个月。玩单片机(In Doing Anything)很重要的一点就是持之以恒。

(1)不要一说写代码就去向别人要源代码。一定要先好好思考,完了记下自己的问题点,再去请教别人,之后借鉴别人的思路再去编程。不要只走马观花看了看实验现象,傲慢的向别人炫耀,已经会单片机的编程了。

(2)学习一个新的软件,一定要多看帮助手册,书上讲的肯定没官方的全面。倘若连软件都没看一眼,就盲目的问东问西,让人觉得你很幼稚。

(3)不要蜻蜓点水,得过且过,细微之处往往体现实力。

(4)把时髦的技术挂在嘴边,还不如把过时的技术记在心里。

(5)看得懂的书,请仔细看;看不懂的书,请硬着头皮看。不要指望看了一遍书就能记住和掌握什么。书读百遍、其义自现。

(6)对于网络,还是希望大家能多利用一下,很多问题不是非要到论坛来问的,首先要学会自己找答案,比如Google、百度都是很好的搜索引擎,你只要输入关键字就能找到很多相关资料,别老是等待别人给你答案。这样的人平时一定也很懒!

(7)到一个论坛,要学会看以前的帖子,不要什么都不看就发帖子问,也许你的问题早就有人问过了,你再问,别人已经不想再重复了。作为初学者,谁也不希望自己的帖子没有人回是吧?

2.物质准备

笔者将物质准备分为两类:软件和硬件准备。

1)软件准备

这里的软件不仅仅指C语言,还包括汇编C++、G语言等,电子基础(例如电阻电容等)、模拟电路、数字电路、高频电路等,概况的说,就是要有理论知识的储备。

读者看着以上的软件准备要点,或许想“哭”,别“哭”,乖。等读者将以上技术都学完了或者学会了,再去学单片机,那就OUT了。因为上面的任何一门(仅仅一门)学科,就足足够你大学几年喝一壶。那如何学,请读者手头备几本书,以便“查”阅。

有人说“零基础”学单片机,这句话本来就是骗人的,现在没有什么人做什么事都是从零开始,除非你搭乘时光机回到原始社会。永远记住一句话:站在别人的肩膀上,你会看的更远、飞的更高!因为有了以上基础,笔者相信你“玩”起来会更开心,如果这些不会,那可谓真是零基础了。俗话说——The early bird catches the worm,你就得比别人起的更早,睡得更晚,付出得更多,就像残弈悟恩一样,早起晚睡,勤能补拙嘛。如何付出?不是去借本数电、模电、C语言书,从第一页开始背,背一页忘一页,书背完的同时也忘完了。

笔者建议:需要什么,就去查什么,现玩现查。例如,要点亮一个LED,开始是包含头文件:#include,读者若不知道,就去查C语言书;做蜂鸣器实验时,若三极管不懂,就去查模拟电路书。因此笔者建议边“玩”、边“查”,不是边“学”、边“背”。这样在用时查到的知识点,你将终身难忘。再说了,公司招聘时不问你学过什么,而是问你用过什么;不问你懂什么,则会问你会什么。对于电子类的同学,没搭过电路,你不知道LED怎么亮的;没有编过单片机程序,你还真不知道C语言能做什么,你还以为C语言只能在PC机上输出一个“Hello World”,光理论不实践学也百搭。因而有了下面的硬件准备。

讲述软件准备的最后,回答读者一个网上提了很多遍的问题:该学汇编还是学C语言(C51)?

答:若只是为了用单片机做产品,C51足够了。若要深入研究、搞发明,自己生产单片机,那必须得学汇编。该书是以为了做产品而写,所以主要讲述C51。

这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要用汇编,也有人坚持选择高级语言。C51刚推行时,单片机内部资源比较宝贵,而且C51本身的编译器效率也不够高,导致当时很多人选择用汇编来写代码。

现在的情况是怎样的呢?编译器效率高了,单片机内部的资源也丰富了,用C来写单片机软件不会再遇到以前程序代码太大,单片机运行不起来的问题了。外面的企业,大部分都是用C,C好写,可读性强,可移植性强。那么汇编就不用学了吗?光会C也还是不够的,你还得了解汇编,实际上不是了解汇编指令,是了解单片机的体系结构。鉴于这样,笔者认为玩单片机,还是用C,但是平时也得多看看汇编代码,最低要求就是:能熟练运用C写代码,能读懂汇编代码。

这里汇报个情况,在大学里老师基本都是用汇编教学,听说(笔者自迷恋上电子之后,就从不去上课了,^_^)笔者的老师也是用汇编教单片机编程。可大多数读者工作以后,公司要求用C,当时大家都大骂一顿老师,现在明白老师的良苦用心了,用C教学,老师要轻松很多,而老师却选择汇编,为什么在大家眼中的“坏老师”要如此吃力不讨好呢?

这是因为,用汇编教,能让大家更清晰的掌握单片机的体系结构,运行机理,掌握单片机的核心本质,用汇编读者才会掌握什么是立即寻址,直接寻址,什么是间接寻址,什么是偏移量等一系列问题。不知道这些,用C也能把程序玩转,若不知道运行机理,读者不觉得心慌吗?以后学ARM时能看懂启动代码吗?又能编写完整的启动代码吗?读者说我可以CTRL+C、CTRL+V啊,那笔者就无语。

2)硬件准备

单片机是一门实践性非常强的学科,不实践一切都是“空中楼阁”。笔者将硬件又分三类:本、开发板、实战工具,这里结合笔者的经验,以问答的形式来为读者讲述。

(1)书要不要?

答案是:要。别小家子气,买本书几十块都舍不得,你还学什么呢?为了省钱看电子书,浪费的时间绝对超过书的价值。当然如果查资料,只能看PDF,另当别论。再说了,拿着一本书,坐在图书馆,或许还能静下来。笔者曾经在图书馆一待就是几个小时哈。相反,在电脑上看电子书,总忍不住东点点、西看看,这样浮躁的你会更加浮躁。

(2)开发板要不要?

答案是:花点钱买块开发板是非常必要的。笔者相信看此书的人,还不至于会自己做开发板,因此强烈推荐买一块开发板。

买的板子可以把注意力集中在软件开发上,软件开发过程中可以不必担心硬件上的问题。咱本来就刚刚起步,写个程序半天没反应,也不知道是硬件还是软件,到头来,雄心壮志没了。另外,买板子更省时间,再有就是买的资料相对来说比较齐全。说到这里,可能被一些只为赚钱,不顾及初学者想法的“商业”人士把风气给搞砸了,有些甚至为了做广告,说买开发板,送一注彩票,对于这样的卖家,读者可以直接忽视。

开发板就好比农民种地的种子,只要能合理利用,它便会生根发芽,最后定能收获丰盛的果实。想要种好地,不要不舍得去买好种子。玩单片机,建议大家一定要多做实验,一开始可以模仿笔者所写的程序在开发板上做些简单的实验,模仿时千万不要满足只在开发板上运行一下,一定要自己动手把程序敲进电脑、一句一句分析透彻,不懂的地方拿出课本来查,琢磨琢磨笔者的编程思路,然后再编译、下载、看现象。只有这样边玩边查,才能使那些看起来很复杂、摸不着头脑的单片机的知识变的很具体;只有不断的做实验,在实践中学习,才能真正扎实掌握单片机的基本知识,有了这些单片机的基本知识和自己的亲身体会及经验以后,就该朝着自己动手设计的方向迈进了。

再说了,买一块开发板,就是买一个平台,“有了平台,你便可以轻松的爬上别人的肩膀”。有了单片机的实验平台,你才能去试验更多的程序,才能积累更多的模块化的源程序,积累更多的单片机开发的经验和思路,才能踏进单片机开发的大门。

(3)仿真学不学?

远离虚幻,走向真谛。笔者的远离虚幻意思是不要借助仿真去学单片机,只用软件模拟仿真是永远成不了高手的。所谓仿真就是用Protues软件去模拟实验现象。不知读者看了目录之后有没有发现,笔者没有写单片机仿真,不是读者不会。曾经在实验室,当老师看着笔者仿真的——简易波形发生器时,老师吃惊地说了一句:原来这东西这么好看。这东西说白了就只是好看,没有多少实践之意。笔者也见过有些同学做毕设时,仿真的很完美,怎么一搭电路,调试之后就发现了好多问题,还跟我说,Keil编译的结果是0错误、0警告。软件仿真也通过了,为何这里有问题呢?残弈悟恩当初就很纠结,0错误、0警告就能说明所写程序是正确的,根本不是。举个例子,你要让8个LED灯亮,应该是:P2=0x00;可你写了:P2=0xff;这也是0错误、0警告啊,可能达到效果吗?仿真中,什么都是理想的,电流、电压、阻抗等若考虑不周到,或许能猜出个正确结果。可实际电路中,电流、电压大了,电路板可能会冒烟,晶振频率可能不稳定,导致程序运行混乱。说到晶振,记得笔者在珠海某电子公司工作时,所用晶振为27MHz(是用在机顶盒上),刚开始测试发现频率确实为27MHz,但后来机子工作以后,频率就变了,之后也找了供应商,测试都好的,无奈之下,一位同事说,将晶振外壳接地吧,这一接,问题果断解决了。笔者说这些,没有一点贬低仿真软件或仿真的重要性,只是建议读者玩单片机,必须要多实践,多焊接电路、多调试电路,不要停留在理论和仿真上。

关于这点,读者跟随本书就可以了。首先,笔者一一讲述了每个入门实验,等大家把这些实验做熟练了、彻底掌握了,那毫无疑问单片机肯定是入门了。之后就需要提高,如何提高,就得学一些与单片机有瓜葛,但不是单片机内容,例如PCB设计上位机编程、操作系统等。再把这些与单片机相结合,做一些东西,那才可以说你真正会单片机了。

(4)该玩哪种单片机?

先来个故事,笔者曾工作时,经理让一位同事去搞DB850(VFD屏)的测试,可那同事刚好辞职,这项任务就落在了我的头上。先看了看数据手册,之后开始设计电路,该电路的核心是升压,就是将系统工作的电压(5V)升到VFD所需的电压(32V),笔者最后选择的升压方案是——BOOST电路。设计好之后就画板、打样。等板子发出之后就开始编写程序,这时有位同事说:你用的是什么单片机?我说:51(是增强型的C8051F系列)单片机。他又说:51不是过时了吗,在说了这东西(VFD屏)不是雷雄(另一位同事,技术很牛,人也很低调)搞过了嘛,人家还用的是AVR单片机。此时的笔者真是哭笑不得,说你懂技术吗,说的全是行外话,不懂吗,在电子行业都工作了2年了。他主要想表达的意思是AVR单片机比51单片机(现在STC公司出品的STC15系列的单片机也很高级啊)高级,所以用AVR单片机的人比用51的人技术高。笔者当初就想说一句,可又没说出口,要是你想拿所用单片机的高级(其实C8051F系列的单片机在性能方面并不比AVR单片机差)来判断一个人的技术,那么笔者干脆用ARM、FPGA(这些笔者都不在话下)得了,问题是杀鸡何必用牛刀,打一只蚊子还需二炮出动嘛?就简简单单的一个VFD测试,只需5个I/O口,一般的单片机完全足够。

其实单片机原理都是相通的,就像电脑一样,不同的电脑只是配置不同,不同的单片机也只是配置不同(汇编指令不一样是后话),只要认真掌握了任何一款单片机,再学习其它款,都可以在很短的时间内学会。51系列作为经典的一款单片机,它的资料非常丰富,也比较容易掌握,因此,从51开始入门应该是非常明智的选择。

在这里笔者要批判一些观点,有人老是叫嚣:51早就过时了,还学这玩意,要玩起码得从玩ARM开始吧。他们连基本的道理都不懂,没有学会初等数学,怎么能学会高等数学呢?(除非你是天才)不学51,就想着学ARM、FPGA,你那是一口气要上珠峰,多半“死”在半路,估计你从此连51的小山都没信心爬了。再说俺们只是以51入门,不是只学51,读者将来都是要登“珠峰”的人,因此打好基础很重要。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    5997

    文章

    43947

    浏览量

    620525
  • 数字电路
    +关注

    关注

    192

    文章

    1379

    浏览量

    79718

原文标题:资深工程师教你如何有准备的学习单片机

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    没接触过单片机直接学FPGA,verilog需要什么准备?

    我之前都没有接触过单片机,DSP什么的,想直接学FPGA,对着学习板学verilog可以吗?最好需要什么准备基础? 我看过两本verilog设计的书,感觉和C语言一样,挺简单的。。
    发表于 09-30 16:17

    准备参加和泰杯单片机应用竞赛,无经验,请求高人注解

    准备参加和泰杯单片机应用竞赛,无经验,请求高人注解。我该从哪些方面入手学习
    发表于 12-10 15:07

    单片机新手如何准备学习?需要什么资料

    单片机新手如何准备学习?需要什么资料,软件
    发表于 12-19 16:41

    准备单片机,该从哪下手

    准备单片机,该从哪下手?要准备点什么?
    发表于 12-03 21:18

    单片机学习应该如何入门

    本人纯小白一枚,研究生学习中老师突然提出要我学习一下单片机、DSP、嵌入式系统之类的东西,听起来好像单片机更简单一些,我就想先从学习
    发表于 04-20 10:19

    学完过51单片机,要准备买个4412开发板,学习android方面可以吗?

    学完过51单片机,要准备买个4412开发板,学习android方面可以吗?如何学习,请前辈指点!
    发表于 01-07 16:03

    学习单片机需要准备什么

    单片机的种类繁多,种单片机功能也各有不同,个人推荐新手同鞋们入门首选用51核的单片机,而现在炒的最火的就是STC的51核单片机了,如果不喜欢51哪,哪二推STM8S的
    发表于 07-22 07:05

    学习单片机之前需要哪些准备?精选资料分享

    学习单片机需要哪些准备?要说准备的话,我觉得最重要的就是先把心态准备好,
    发表于 07-16 08:12

    学习单片机需要哪些准备

    学习单片机需要哪些准备
    发表于 11-03 06:09

    工程师STM32单片机学习基础手记(1):充分准备与开始编程

    工程师STM32单片机学习基础手记(1):充分准备与开始编程
    发表于 10-27 09:11 34次下载

    学习单片机需要准备那些必备工具

    学习单片机的必备工具多动手做实验能够帮助初学者很快理解单片机的原理和开发技巧。单片机开发之前都要创建一个开发环境。所以,学习前应
    发表于 07-23 17:37 2次下载
    <b class='flag-5'>学习</b><b class='flag-5'>单片机</b>需要<b class='flag-5'>准备</b>那些必备工具

    学习单片机需要准备那些东西?怎么样才算入门了

    如果你想学单片机,请在学习单片机之前,请做好如下准备工作: 一、硬件准备: 本人推荐给大家的学习
    的头像 发表于 09-08 09:56 8242次阅读

    防锈油在防锈前应该做哪些准备

    当我们需要对工件进行防锈时,是否应率先针对所需要的防锈材料进行初步准备?例如,清洁、保护措施、干燥准备等。这些都是在涂抹防锈油之前必须完成的事情。否则,如果直接涂抹防锈油,效果会大大降低。与此同时,会有许多不必要的问题发生。那么,在防锈的前提我们应
    发表于 10-12 11:10 651次阅读

    学习单片机之前需要哪些准备

    学习单片机需要哪些准备呢?要说准备的话,我觉得最重要的就是先把心态准备好,学习世界上任何东西都是
    发表于 11-14 15:36 8次下载
    <b class='flag-5'>学习</b><b class='flag-5'>单片机</b>之前需要哪些<b class='flag-5'>准备</b>?

    单片机学习准备

    单片机学习准备
    发表于 11-26 14:36 0次下载
    <b class='flag-5'>单片机</b><b class='flag-5'>学习</b>前<b class='flag-5'>准备</b>