从本篇起,《单片机小白学步》系列教程将做一个严重的改版。前面的文章暂时就不改动了,之后的文章将会从头编列。首要的改动如下:
-
文章悉数运用Markdown进行编写排版,格局愈加丰厚,阅览起来也会愈加轻松。
-
试验的工程源码,将上传至我的GitHub页面,可直接下载运用。
我的GitHub主页
https://github.com/jzj1993 -
为了便利一致解说,也考虑到开发板材料或许有版权问题,本系列教程将和绿豆芽科技合作。大部分试验,将直接运用绿豆芽科技供给的51Start开发板。假设有这款开发板,能够直接烧写配套代码进行试验。假设没有,欢迎购买这款开发板。当然也能够经过简略的修正代码,在其他开发板上做试验。
-
部分试验仍然会运用面包板建立最小体系,或经过Proteus仿真进行。
绿豆芽科技官方淘宝店
http://douyatech.taobao.com西安电子科技大学的学生,可直接到新校区综合楼西电试验室,购买配套开发板。
-
每个常识板块的介绍,大致会经过下面的次序进行:
- 首要对概念进行简略介绍;
- 经过根本的例程试验,进行开始体会,加深了解;
- 深化介绍底层结构和原理;
- 介绍相关的编程技巧思维等内容,以及更深化的例程试验。
学习思维
经过重复的考虑,得出了单片机学习的思维,并进行了总结。
单片机的学习有两个方向,别离介绍如下。
1. 重视上层运用实践
这个方向,便是直接考虑实践运用而不是完成原理。了解了各种通讯接口、各种电路模块等,可将它们进行奇妙的组合,然后完成对咱们的日子有用的产品。例如,经过结合显示屏、按键、单片机,就能够完成计算器、秒表、抢答器、游戏机等各种好玩风趣的东西。
学习这方面的东西,需求有较好的立异才能,长于从日子中寻觅构思。相对来说技能性会弱一点,运用的各种模块,完全能够选用现成的东西去完成。
这个方向有个比较典型的比如,是Arduino渠道,常常被称为电子积木。硬件方面,各种电路模块都是做好的,直接经过导线插接就能够运用;软件方面,各种电路模块都有现成的模块化驱动,直接调用相应的函数就能够完成功用。运用Arduino时,往往只需求关怀著作的构思,以及功用逻辑完成,而不需求深化研究详细的技能。
2. 深化底层发掘原理
这个方向,便是从原理的视点深化了解单片机。例如寄存器的构成,CPU的履行办法等。深化一些,包含模仿电路,数字电路,微机原理等。甚至运用FPGA等可编程逻辑器件,自行规划和完成CPU和单片机。
学习这方面的东西,需求较多的布景常识,包含模仿电路,数字电路,微机原理等,能够经过运用汇编言语进行单片机编程然后加强了解。假设有爱好自行规划CPU,还能够学习Verilog或VHDL编程。
3. 总结
这儿对此做个总结。
之前遇到不少人都提了相同的一个问题:学单片机究竟要不要学汇编呢?
这儿我举一个比如~
-
假设你想学会煮饭,最简略直接的办法,是直接购买做好的食材,只需学会操控火候,学会怎么调配各种食材和调料,并把握必要的烹饪过程等内容就能够了。
-
有时分你或许想要做一些比较特别的菜,可是直接买来加工好的食材不能充沛满足要求。这个时分就需求购买半成品,然后学会自己去加工了。
-
假设对食材自身也有了解,例如什么时节哪些蔬菜会比较常见等,往往能做的更好,还能节约本钱。
-
假设有特别需求,还能够测验自己栽培一些蔬菜等~
学单片机也是相同的。重视上层运用实践,相当于直接运用现成的食材,去进行组合调配,得到各种有用的东西。而深化底层发掘原理,相当于去深化了解各种食材的特色,并能作出更好的挑选。甚至,你还能够考虑自己从底层去完成一些模块,完成想要的作用。
所以关于“要不要学习汇编”这个问题,我的答复是,需求学习,可是不需求花费过多的精力。一开始直接用C言语进行单片机的学习,有了必定的知道之后,再简略的去学习汇编。其意图是,从中了解底层的作业原理,然后能更好的了解一些问题,能更好的应对一些特殊情况,更好的驾御单片机体系规划。而实践去完成想要的构思和产品,直接经过模块化的C编程就能够了。直接用汇编,功率实在是太低。
上面说的两个方向,偏上层方向的学习,技能性相对弱化了,更多的是要考虑各种其他方面的问题,包含构思、产品、甚至市场需求等内容;而偏底层的原理学习,技能难度相对较大。一般情况下,学习单片机,需求对各种根本模块有所了解(食材),对底层的原理最好也有一些了解(食材半成品的加工),然后再学习一些上层的模块化编程思维、模块之间的组合等(食材的调配、火控操控等)。能够依据个人爱好和专长,有挑选的学习相关常识。