从业十年,教你单片机入门基础。(连载)
大家好,我是吴坚鸿,自从去年在本论坛写了《从业将近十年,手把手教你单片机程序框架》后,赢得了一部分网友的好评,同时也发现了一些网友没有C语言基础,没有单片机基础,不懂keil的安装和使用,不懂74hc595的使用原理,不懂动态扫描数码管的原理,甚至连如何烧录程序也不清楚,这样阅读我那程序框架的贴子就很吃力,所以我决定新开这个连载基础贴。我2006年毕业出来工作,到现在只工作了九年,为何标题取名“从业十年”,是因为我打算明年2016年刚满十年后就整理出书,所以提前把书名公布出来。由于本人技术水平有限,不足之处望各位网友指出来相互探讨。同时感谢电子发烧友论坛一直以来给予的支持,给我提供这么好的分享平台。
下一节预告:跟我学单片机到底是学什么?我的两个比喻和一个规则。
(未完待续)
第一节:跟我学单片机到底是学什么?我的两个比喻和一个规则。
第二节:我眼中学习单片机的四个阶段。
第三节:单片机一个最重要的特性。
第四节:平台软件和编译器软件的简介。
第五节:用keil软件新建,关闭,打开一个完整工程的操作流程。
第六节:把.c源代码编译成.hex机器码的操作流程。
第七节:重复利用现有工程模板进行程序开发的方法以及代码备份管理技巧。
第八节:把.hex机器码下载到单片机的操作流程。
第九节:程序从哪里开始,要到哪里去?
第十节:一个用来学习C语言的模板程序。
第十一节:变量的定义与赋值语句。
第十二节:两个变量的数据交换。
第十三节:二进制与字节单位,以及各种定义变量的取值范围。
第十四节:二进制与十六进制。
第十五节:十进制与十六进制。
第十六节:加法运算的5种常用格式。
第十七节:连加以及自加运算的简写。
第十八节:加法运算的溢出。
第十九节:加法运算中,神秘中间变量的类型以及解决“掺杂多种变量类型”的办法。
第二十节:减法运算的5种常见格式。
第二十一节:减法的连写和自减运算的简写。
第二十二节:减法运算的溢出。
第二十三节:建议把所有参与减法运算的变量都转换成unsigned long数据类型。
第二十四节:乘法运算的5种常见格式。
第二十五节:连乘以及自乘运算的简写。
第二十六节:乘法运算的溢出。
第二十七节:整除求商的运算。
第二十八节:整除求余的运算。
第二十九节:利用“整除求商求余”来拆分提取一个数的个十百千位。
第三十节:逻辑运算符的“与”运算。
第三十一节:逻辑运算符的“或”运算。
第三十二节:逻辑运算符的“异或”运算。
第三十三节:逻辑运算符的“按位取反”和“非”。
第三十四节:移位运算的左移。
第三十五节:移位运算的右移。
第三十六节:括号改变优先级。
第三十七节:if判断语句以及常量变量真假的判断。
第三十八节:等于关系符“==”和不等于关系符“!=”。
第三十九节:大于关系符“>”和大于等于关系符“>=”。
第四十节:小于关系符“<”和小于等于关系符“<=”。
第四十一节:与“&&”,或“||”的关系符。
第四十二节:小括号改变判断的优先级。
第四十三节:if,else if,else的5种组合判断语句。
第四十四节:一维数组能批量定义变量的特点。
第四十五节:二维数组。
第四十六节:while循环语句。
第四十七节:循环语句do while和for。
第四十八节:循环体内的continue和break语句。
第四十九节:for和while循环体的嵌套。
第五十节:switch语句。
第五十一节:函数的三要素和执行顺序。
第五十二节:从局部变量和全局变量中感悟“栈”为何物。
第五十三节:函数的作用和四种常见书写类型。
第五十四节:return语句在函数中的作用以及容易被忽略的四个功能。
第五十五节:static静态局部变量在函数中的重要作用。
第一节:跟我学单片机到底是学什么?我的两个比喻和一个规则。
开篇第一节,我问大家一个问题,跟我学单片机到底是学什么?我的回答是像驾驶汽车一样驾驭单片机。我教给大家的是驾驶汽车的技术而不是研发汽车的技术。因此每当别人问我学51单片机,PIC,AVR,stm32哪个更加有前途,应该先学哪个再学哪个时,我的回答是既然你是学驾驶技术,那么你用桑塔纳车来学还是用宝马车来学有差别吗?差别很小的,它们只是不同的厂家而已,只要会一种其它的就触类旁通了。把学单片机当作考驾照这是我所说的第一个比喻。
学单片机最核心的是程序,程序跟单片机芯片是什么关系?我的回答是像歌曲跟MP3播放器的关系。我们写的程序就像预先录制好的歌曲,单片机芯片就是一个MP3播放器。把不同的歌曲下载到同一个MP3里就可以播放出不同的美妙音乐,当前下载的歌曲决定了MP3可以播放的音乐。所以我们当前编写的程序下载进单片机之后,就决定了单片机能干哪些工作,“下载程序”也俗称“烧录程序”。把单片机芯片当作MP3播放器是我第二个比喻。
单片机芯片内部细节的工作原理是什么,为什么它能实现那么神奇的功能?我的回答是不用纠结这个问题,因为这不是我们学习的方向。考驾照的也只能告诉你汽车是由四个轮,发动机,制动系统,离合器,方向盘等部分构成,其它内部细节的原理恐怕也不会教你,不是不想教你,而确实是两个不同的学习方向。学单片机的也只能告诉你它内部是由运算器,寄存器,IO口,复位电路,晶振电路,程序存储器ROM,数据存储器RAM等部分组成,至于运算器的原理和构成也不是我们的学习方向。所以尽管我搞单片机有很多年,但是我并不是完全理解它最本质的原理。尽管我与人打交道有30多年,但是人为什么能通过大脑来灵活控制双手去活动对于我来说仍然是个迷,我只知道人是由脑袋,心脏,四肢等构成。每当有这样疑惑的时候该怎么办?我的回答是用“游戏规则”这个概念去应付它。因为游戏规则是不需要解释的,只要遵守就可以了。在应用的技术领域,把暂时不解的东西当作一种游戏规则来解读和遵守是我常用的思维方式,这个游戏规则的概念就是我所说的一个规则。
下一节预告,我眼中学习单片机的四个阶段。
(未完待续)
鸿哥新年快乐!新的一年期待鸿哥更多的精品教程
新年快乐!感谢你一直以来的支持。
说的很好,学习了
期待鸿哥的佳作。继续支持你。
不断地得到鸿哥真传!那些代码我己用到我的万年历中了!受益非浅!
难得鸿哥无私真传,更祝鸿哥新的一年心想事成!
感同身受,非常精闢
鸿哥 新年好 向鸿哥学习!
支持你,太感谢你了鸿哥!
期待鸿哥更多的精品教程,,,关注中。
菜鸟一个,希望能跟哥哥学会,多多指教
感谢你们的支持与鼓励。
期待鸿哥下方,继续支持!
果然是够精练的呀!
鸿锅 期待哈哈
wu老师,期待下节...
谢谢小编的帖子,学习了
谢谢小编的帖子,学习了