如何学好单片机

姓名:李浩然

学号:16030410020

转自:http://www.51hei.com/bbs/dpj-39925-1.html(有删改)

【嵌牛导读 】:在大学的很多课程中,老师都经常提到关于单片机的内容,但由于许多大学生都是初次接触这方面的内容面对这种问题,我都是不做回答,因为确实没法回答,但是问得人多了,不免引发了自己的思考,下面,我把我的学习经历分享出来,以供初学者参考。

【嵌牛鼻子】:微机原理、51单片机、汇编语言学习、流程图

【嵌牛提问】:怎么才能学好单片机?应该从哪些方面入手学习,流程应该是怎么样的?

【嵌牛正文】:

一、启蒙阶段

大一的时候,学习的是电路基础和模电数电,电路基础上,做一些诸如电机正反转的电路,模电数电课上,就自己做功放、电源等小制作,当时也是凭着自己的兴趣,做起来很认真,但实事求是的说,理论知识没记住多少,只能说,了解个大概。

二、学习微机原理

当时我们讲的是8086,这对了解计算机结构是不可或缺的,我也是在那时候起,接触到了汇编编程

三、汇编语言学习单片机

大二的时候,开始学习51单片机,当时我那届学生,开设的都是汇编语言教学,课程上,做得也都是可以用软件仿真的小设计,差不多学了三个月后,掌握了基本语法和单片机寄存器(如果有学习8086的基础,三个月的时间足够了)功能,就做一些实物,那时候,认识到,做实物和仿真的区别如此之大。

四、进阶

认识到仿真和实物的巨大差别后,我就放弃了仿真学习单片机的方式,转而通过实物。我的第一个作品是篮球计时计分器(不是课程设计,是真实的作品),当时很多东西都不懂,只能自己去查资料,比如说,74HC245,我那时候第一次接触,就查百度了,还有三极管电路等等,都是百度查到的,因为有大一打下的基础,电路图一看就懂,剩下的就是焊接实物测试了。拜良师所赐,我的焊接技术在速度和质量上,都还可以,所以,可以在很短的时间内,可以完成硬件测试。

自主学习的主要过程就是查资料了,对于一些基础的资料(IC参数等),网络上都是现成的,如果看不懂,那谁也没办法。问题是,为什么我就可以看得懂呢,这就又要回到我大一的时候所学的课程,那时候读书还算用功,培养了这种学习能力。换句话说,哪怕以前你是搞文科的,只要有学习、理解的能力,那么到另一个领域,也不会觉得无从下手。

然后就是编程了,很多网友问我数学是不是很好,我只能表示惭愧了,高中的时候,我的数学分数都在40分左右(满分150),大学后,在30分左右。但数学不好,不代表不能编程,哪怕是用汇编语言。

那么,如何编程呢?有人说,先画流程图,然后再写程序、调试。我想,这是数学比我好的人说的,我的方法如下:

1、用文字描述自己需要的功能(假设功能大于2)

2、拆分出各个功能,用文字描述每个功能是如何实现的

3、完成各个功能的程序,并做好测试,对于我来说,如果了解单片机的工作方式,那么编写程序其实就是把汉语翻译成汇编语言。

4、修改每个功能模块的程序,尽量让程序简短,并且预留好和其他功能衔接的功能(接口、变量等)

5、合并简单功能模块,复杂功能逐一合并,每次合并做好程序备份,以便纠错

6、如果上述工作做的足够好,那么可以直接得到想要的结果,我的程序往往都是写完了就可以用,这是建立在部分模块程序的完美基础之上的。

如果是设计了独一无二的作品,比如说我的立方光(我是独立设计的原理和程序,不管是新版还是旧版),那就在第一条补充一条:构思,这需要你对单片机很了解,预想如何实现,会遇到什么样的问题,以及解决的方案。立方光我构思了2个月,真正做实物的时间,只有一周。等到了新版立方光问世,我也是用了三周构思,一周做实物。

五、学习c语言

通过一段时间的学习,我认识到了汇编语言的优越性,也认识到它的缺点,这点我们稍后再说,先说一下我现在学习c语言的情况。

因为之前有了做实物和编程的基础,我就通过项目来学习C,比如,做一个温度显示,用到了18B20,就自己百度资料,至于程序,我就找了开发板上现成的(说到这,买个开发板还是很必要的,要的是程序)。第一次接触C编程,VOID是啥都不懂,那就百度吧,可以说,一个程序,我要百度很久来理解里面的内容,不懂就是问师弟(他们现在是学C的),差不多一天的时间(包括查资料),程序也就完成了,当然,我还优化了原程序,自己改写后的程序比以前更简短,占用RAM更少,因为之前是学汇编的,一眼就看得出,程序改如何优化。

以上就是我的学习经验了,在这里我还是建议大家,要先学汇编语言,这没坏处,比如我,因为有汇编的基础,学起c来就觉得很上手,特别是自己可以写出更优化的程序。但有人说,汇编难学,就算学了,以后编程也用不到。那么我要说,我的立方光程序就是汇编的,怎么用不到了?很多单片机的参考资料,也都是以汇编作为原始资料的,你不懂汇编,怎么学习新的功能?学了汇编后,你会知道,单片机可以做哪些事情,哪些事情不能做,以及如何做好一件事情,这是单纯学C的人体会不到的。

那么汇编语言和C语言比起来,优劣势在哪里呢?我根据我的学习经验,写一点个人心得,仁者见仁智者见智,各位也可以发表自己的看法。

汇编做为测试程序最合适不过了,比如你想测试最小系统的好坏,那么随便更改一组IO的输出就可以了,用汇编的话,写三行足矣。如果测试某些IC的好坏,特别是需要脉冲的模块,那么汇编就更有优势,可以精确的控制时间,而且代码量极短。最后就是在RAM占用上,汇编语言,总是把RAM的占用在最低,而纯学C的人往往忽略这一点,都是想用多少变量就定义多少变量,对于RAM小的可怜的单片机来说,是一种灾难,在实际生产中,往往选用的都是廉价单片机,IO和RAM、ROM资源都很小,没有多少你发挥的余地,如果你的程序可以让公司把40P单片机换成28P的单片机,那么PCB板就节约了,如果你的程序能从2K简化到1K,那么单片机的购买成本也会降低,对于企业来说,一个板子省一毛钱都是巨大的利润,所以说,你程序的好坏,是影响的企业利益的,何况很多人也想自己创业呢!至于说,如何才能优化程序、写出最短的程序,那必须先要对单片机有足够的了解,而学习单片机的内部原理,是非汇编不可的。加上有人学单片机是为了向嵌入式进阶,那么学习汇编就是更是必不可少的了。C语言的优势我就不多少了,现在几乎都是在用C编程,我最近在学习C编程,也体会到了C强大,但这不代表我以前学的汇编就浪费了,比如stc的eeprom程序,官方给的就是汇编,可实际来说,写成C更好,如果你不懂汇编,自然也无法翻译这些程序,谈何C的应用?关于这两种语言的话题,我就不再往下说了,免得又引起口水战,如果想学单片机,我建议学C,如果你想学好单片机,那就先学汇编再学C,这就我给初学者的建议。最后要说的是,汇编编程,非常锻炼人的思维,这也就是为什么都说汇编难学了,如果你在汇编上有一定的编程能力,那么再掌握其他编程语言的时候,学习过程就会变得很容易。

我想写到这里就差不多了,学单片机没什么窍门,作为一门知识,学它和学其他科目都用共性,谦虚、严谨、勤劳是必须的,不同的是,仅仅靠兴趣维持是不行的,它带给你的困难会很快让你失去兴趣,单片机,要的更多的是毅力,面对困难,只有勤劳,而不是所谓的灵感。大多数人,都是经历几十次失败就停手了,我不是很聪明的人,我经历最多的失败足有300多次,我的成功,都是源于我的坚持,坚持正确的思路并持之以恒!

希望这些文字或多或少的给初学者一些帮助, 早日入门!

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 203,772评论 6 477
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 85,458评论 2 381
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 150,610评论 0 337
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,640评论 1 276
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 63,657评论 5 365
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,590评论 1 281
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,962评论 3 395
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,631评论 0 258
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,870评论 1 297
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,611评论 2 321
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,704评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,386评论 4 319
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,969评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,944评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,179评论 1 260
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 44,742评论 2 349
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,440评论 2 342

推荐阅读更多精彩内容

  • Microcontrollers 1.单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模...
    yansicing阅读 975评论 0 4
  • 跟串儿来个约会,它是孤寂无聊时的陪伴,是兴奋快活的消遣,是插科打诨时的牙祭,是粗茶淡饭后的惊喜。 串儿,已不仅仅是...
    周可波罗阅读 362评论 0 0
  • 相爱容易,相处难,且行且珍惜。在感情里我们其实都是单翼的天使,单翼,注定了我们需要有另一只翅膀的配合,才能飞起来!...
    王园园2016阅读 1,314评论 6 2
  • 序言 前几天公交车上看了一篇百度大神的关于 KVO 探索的博客。我实地验证了一下子,也遇到了好多问题,一番各种查阅...
    黃小梦阅读 1,170评论 8 29
  • 同学们好,我们的祖先造出的汉字,实在是世界文字史上的一朵奇葩,世界文化史上一道雄奇的丰碑。《淮南子·本经》...
    死生契阔i阅读 1,638评论 0 5