分享学习51单片机的一点感悟
扫描二维码
随时随地手机看文章
首先总体上谈一谈看法:
1、我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础。
2、对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此。库只是一个接口,方便使用者使用而已。
3、汇编语言在工作中很少用到,了解就好。
4、51的P0口很特别。
5、C语言就是C语言,51单片机就是51单片机,算法就是算法,外围电路就是外围电路,传感器就是传感器,通信器件就是通信器件,电路图就是电路图,PCB图就是PCB图,仿真就是仿真。
当你以后再也不使用51了,C语言的知识还在,算法的知识还在,搭建单片机的最小系统的技能还在,传感器和通信器件的使用方法还在,还会画电路图和PCB图,当然也会仿真。
6、51单片机是这个:
而不是这个:
7、当程序调试不如人意的时候,静下心来好好查资料,51单片机最大的好处就是网上资料非常多,你遇到的问题别人肯定也遇到过。作为学习者,问人可能更方便点,但一直这样是培养不出解决问题的能力的。
接下来上点干货:
首先要放清51的定位,跟我一起再念一遍:51只是个工具51只是个工具51只是个工具。当然51还有一个地位就是大学生单片机启蒙教程。换句话说:单片机只是个工具单片机只是个工具单片机只是个工具。
然后什么是基础:模电数电微机原理,然后熟练翻阅数据手册,可以试着做一些模块或者最小系统练练手,C语言其实也可以算工具吧,就单片机来说,作为必要条件也算作基础吧。
再然后是要尽早搞明白自己的专业方向或者自己准备发展的方向,然后不同方向又有不同的专业基础,你学测控,就需要各种传感器、控制原理、理论、算法//买测量模块用不叫测控啊喂;你学信号处理,就需要信号与系统、数字信号处理基础,然后慢慢接触DSP、FPGA//信号处理真的不是result=(AD+0.5)/4096*3.3啊喂;你想做嵌入式开发,就慢慢研究ARM的架构,跑一些实时系统甚至高端ARM跑Linux开发驱动或应用;你要是想做通信,每天晚上拜一拜香农好了,这茬貌似挺苦的,什么通信原理编码论电磁场blablabla……
总之51/单片机可以实现很多事情,但这不是一定说51重要,而是你如何利用51。哦对了,当你使用更高级的芯片的时候,很多底层的东西慢慢可以忽略了,甚至很多芯片厂商都会提供库给你,你可以安心的专注于自己的算法而不是如何去控制单片机。当然你最好还是要有一个芯片怎么通过寄存器及各种逻辑电路工作的概念。
还有说一下你大学课余生活的选择、首先那种机器人实验室或者学生领导的实验室,适合打比赛刷奖状、长期下来你的模数电技能能有很大的锻炼,甚至你可以收货一些专利,而且学生之间气氛也还不错。另外一种就是找个导师跟着学习、帮忙、做项目,尽管最开始可能感觉导师分配给你的任务怎么都和单片机无关啊好无聊,但是你能在某个领域收获不一样的技术。当然前提是你要喜欢导师的研究方向了,一般院网站都有或者去知网看这个老师发表的论文。
谈谈我的经历吧。
1、一个没有C基础的的我,从师兄老师那打听到学51从郭天祥的视频开始,所以我就下载了全套来看。刚开始看真是头都晕了,点亮一个LED灯还可以,到了第二课的延时函数就吃不消了,可以说我耐力差吧,没有坚持,可以说我没恒心吧,不是真正想学东西的人,当时的我没有把它放心上,只是看了4课而已,其实对里面的程序不太理解的,于是就停下来不学了。到了大二下学期,我发现要学点技术,所以重抄旧业,学期单片机,然后再重第1课开始看起,结果发现以前不明白的东西现在豁然开朗。我写这经历是想说,如果当时我坚持下去,不懂的地方看多几遍,不懂再看再看,就不会浪费大半年的时间了。有些知识理论靠时间的积累,第一遍看不懂,第二遍看不懂,第三遍可能就懂一点了,刚开始上手一件事是会遇到类似的情况的。
2、当我学了1个月后,学校里有个比赛,团队需要一个人搞硬件,于是我自己提出搞硬件,为什么?因为在学单片机的过程中发现,自己只会跑程序,连原理图都不怎么会看,单片机的接线我都是看开发板提供的资料来接的,很狗血吧。。。于是我就开始接触Altium Designer了,这是我这学期学的第二个软件。是看视频入门的,刚开始看的是郭天祥的视频,结果发现看不下去啊,太长太累了,看完一集好痛苦啊,于是我搜搜,结果发现一个很好的教学视频,用的也是比较新的版本,叫《边学边玩Altium Designer》 四人行工作室开的。我真的提感谢作者这种开源的精神的,对我们初学者帮助很大。跟着他的视频学习1个月,会画出51最小系统,基本布线,不过我觉得还是不够(当然不够啦,你才学了一个月……)
3、在学Altium Designer的过程中涉及到电路分析,也就是我们现在学的《电子电路基础》,于是爱折腾的我开始捣鼓起Multisim 12.0,这是一款电路模拟仿真的软件。跟着老师学挺慢的,但是教材又高深了一点,比如说分析放大电路,稳压电源,教材上的东西大多列出公式,对于零基础学习的朋友是挺苦逼的,而且老师也是赶鸭子式,讲考试内容。这里建议大家买一本书《电子设计零基础》第二版,这本书是我在图书馆偶然发现的,但从此就迷恋上了他。刚开始他不会介绍一大堆公式,以一个例子开始教学,一步一步教你认识元器件(这里对学PCB是有帮助的),然后从电路图的一步分开始分析,接着分析怎么系统,书本结合Multisim 仿真,教你一步一步使用里面的控件。
写到这里自己总结下:
对于1:学单片机最重要的是
1.先认识单片机,了解单片机的主要组成和各个管脚的定义及功;推荐书《单片机原理及其接口技术》胡汉才(很熟悉吧。。呵呵这就是我们大学的单片机教材啊!!经典中的经典啊!基础中的基础啊!!人家几十年的教材没有变是有道理的,原理这种东西不会变到哪里去的。不用专门去看,当作了解,对你理解编程是很有帮助的。)
2.了解一些单片机汇编知识,方便后续调试;这本书《单片机原理及其接口技术》里面就是讲汇编的,一举两得。
3.掌握单片机中断机制;
4.掌握单片机定时和计数器;(3和4是对单片机内部寄存器的控制,要熟练掌握。那些外部拓展功能大多都基于这些内部控制)
5.掌握单片机的串口通信。
以上是对想从事单片机学习的人必须掌握的基本内容。
对于2、3:2、3可以在一起讲,这是硬件部分的。Altium Designer主要学原理图库设计,PCB库设计,布线。没入门的朋友看下视频,不要求什么都会画,起码要会用人家的库,把人家的库移植过来自己用,这样可以快速上手这个软件。到后来再慢慢完善自己不熟悉的地方,这在里一直头疼我的就是封装的问题,当时我连封装是什么都不懂,自己看视频查了资料,才慢慢有点认识。