学习51单片机之前需要的基础学科
我对于单片机的认识
首先,来跟大家聊聊,我对于单片机是怎么接触到的。
我是从大二开始学习的单片机,因为所学的专业开设了这门课程。在此之前,我也只是听说有这么个东西叫做单片机,至于这个传说中的东西究竟长什么样,我也是从来没有见过滴!!!
下面,来看看它究竟长什么样吧~
这个黑黑的长方形的东西 ,就是我之前最常用的一款单片机,是STC(宏晶科技)出产的一款增强型51单片机。这里大家可能会有疑问,既然是增强型的,到底是怎么个增强法呢?(这个问题,我在这里不做解释,随着后面的“剧情发展”,我会逐步列举)。
那么,这个单片机究竟是个什么呢?这个在网上有许多说法,例如微控制器,单片式微控制器等。
但是根据我的个人理解,在最开始的时候,我就将它“粗糙”的理解成是一个开关,0打开1关闭,或者1打开0关闭。不管它内部到底有多么复杂的东西,总之呢,我暂且就将它当作一个开关 ( 注意以上纯属是个人最开始的理解)。
学习单片机的预备知识
在学习单片机之前呢,我觉得先得需要掌握以下几门课程。不然的话,我个人认为,直接上手学习单片机会有很多困难无法解决,从而导致学习效果不太理想。
1、C语言
在行业内,写单片机的底层驱动代码,大多用的都是C语言。当然,也不缺乏有一部分的技术大拿,用汇编语言去写。虽然用汇编语言编写起来,在基于底层的硬件控制来讲,会比C语言写出来的代码执行效果好。但是,代码的可移植性比起C语言是远远不如的,在代码的可阅读性上也是不如读C语言方便的。同时,代码的书写复杂度也会比起C语言来难上很多很多很多!!!
这样说的话,可能同学们会认为,汇编已经被淘汰了,没有人用了。这样想的话,大错特错。在编写51单片机的代码时,咱们大多时候,会直接加载一个头文件"reg51.h"或者"reg52.h"也可能是其它的。但是同学们有没有想过这么一个问题,比如,在做一个工程的时候,代码是如何找到 void main(void){ } 的?是keil软件自动找到的吗?如果是keil软件找到的,那keil又是通过什么找到的?在这里,就涉及到一个特殊的东西,就是51单片机的启动文件。可能在这里同学们会问,这个启动文件,和我刚刚所说学习汇编有什么关系?在下面做出解答!!!!!
51单片机的启动文件就是用汇编语言编写的!!!
同时!!!
STM32的启动文件也是用会汇编语言写的!!!
那这个启动文件有什么用呢?
就是因为有这个东西,所以keil才会找到并跳转到 void main(void){ } 里面。当然,启动文件不只是干了这一个活,它里面还有许多的工作,有兴趣的同学可以自己去网上了解一下。
C语言既然如此重要的话,那究竟达到什么程度才能去学习单片机呢?
有的学弟问我:“我C语言现在就会用三大结构:顺序、选择、循环。学到这个程度,我可不可以学习单片机呀?”
答:“如果只是这个程度的话,同学,我劝你再去学一学C语言吧~”
还有人问我:“学长,我现在的C语言的水平已经会用函数,指针,并且都用非常熟练,并且,我数据结构也学的非常好,很多算法我也是理解的非常透彻。”
达到这个水平去学单片机的话,学习些基础性的知识,是完全没有问题的,但是我建议,多去网上找一些资料,看看人家的代码是怎么写的,向前辈们汲取一下经验。
如果有人这样问我的话:“哥,我现在感觉我的C语言编程能力遇到瓶颈了,我现在能看到操作系统的源码,我能用C语言写出来一个系统!!!”
那我会觉得你Good,Very good, Supper very good!!!
总结:我认为,C语言起码要把函数和指针这两面理解透彻了再去学习单片机,能掌握一些经典算法更好,同时也是掌握的越多越好。
2、电路知识(模拟/数字电路)
想要单片机“跑起来”,没有硬件平台是不能够的。为什么非要学习电路知识呢?
在实际的项目开发中,得需要设计电源电路吧?也得设计驱动电路吧?
不同的单片机,它的IO驱动能力也是不同的,这个时候,就需要非常扎实的电路知识来灵活的去设计它的相关电路。
当然,学会电路知识的好处不止于此,这里我就不一一列举,相信大家后来会慢慢发现的。
3、微机原理
学习了《微机原理》这门课程之后,我感觉只要是认真学了,那么电路知识也会达到一定的水平。学完这门课之后,学起来单片机会相对轻松一些。为什么要这么说呢?
《微机原理》学完之后,只要是做过实验的,可以将《数字电路》上的内容多多少少用到一些,这样就为后面学习的51单片机做了一个很好的铺垫。去看51单片机数据手册的手册的时候,它的最小系统电路,内部框图,引脚定义,你多多少少都能看明白一部分。
注意:
我上面说的可不是仅仅学会了那三门课程,在今后学起来单片机就可以高枕无忧了。嵌入式这方面要想搞的深入,《操作系统》,《网络基础》这些基础类学科一样也不可以少。
前面的三门课程掌握了,只是可以初步的去学习单片机!!!
但是随着大家的技术不断进步,学习能力不断提高,我相信,再艰难的课程也是小问题啦~
在这里,希望大家可以学习快乐,早日将技术达到自己理想的水平。并且,大家在今后的学习中遇到什么问题,也可以私信或者留言问我,我会尽量给大家一一解答!!!
学习51单片机之前需要的基础学科相关推荐
- 51单片机c语言学习感想,学习51单片机心得体会
在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...
- 如何自己学习51单片机
第1章 如何学习单片机 在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是最重要的.一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇.但是,今天在这里作者可以很负责 ...
- 用 C学习51单片机——记录 4、中断系统 (1)外部中断
用 C学习51单片机--记录 4.中断系统 用 C 学习51单片机过程与自我拓展--记录(STC89C52芯片) 前言--其实51并不太难,多看 多写代码,多调试,就一定会有所感悟. 所以我在此留下一 ...
- 【手把手教你学习51单片机】74HC138 三八译码器的应用
注:本文章转载自<手把手教你学习51单片机>!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小 ...
- 【STC89C52】学习51单片机的必备电子电路知识基础
电子电路是学习51单片机的基础, 如果能把以下几个模块弄清楚学习51单片机就不成问题啦. 目录 1.电平 2.单片机IO口 3.电阻 4.电容 5.电路原理图 编辑 6.单片机最小系统结构 7.单片 ...
- 零基础学习51单片机
零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...
- 【深入学习51单片机】二、一个极简RTOS源码分析
目录 一.书接上回 二.初始化过程 三.任务的创建 四.任务的切换 五.任务的等待(系统延时) 一.书接上回 上回写了一个测试程序,可以直观的体会PC指针和堆栈指针的变化和影响.这章写下参考程序的过程 ...
- 采用开源工具学习51单片机
想学习单片机的同学可以关注.私信我或者在评论区回复我要入门.传统上,51单片机一般用keil c集成环境来进行编译开发,然后直接烧录到芯片上去运行,这有几个缺点: ·keil C是商业软件,很多人都想 ...
- 笔记 学习51单片机串口中断
单片机的串口通信功能是比较常用的功能. 80C51的串行口 我在学习的过程中,觉得SBUF的使用方法是最难的,于是对着这个图和资料一步步理解,才搞明白一点"A=SBUF"和&quo ...
- 用Proteus学习51单片机之I2C(IIC)总线
最近刚做好一个站,基于rails 3,教程为主,大家捧场看看,谢谢!www.yo945.com 在学习单片机的过程中,我常有这样的烦恼:随随便便一个芯片,少则占用三五个IO口,一般的就占用8个,稍微想 ...
最新文章
- 周立功-成功心法(2):通过讲故事营销自己
- 人生之精华,胜读十年书
- hadoop完全分布式集群群起
- 网站大访问量优化整体思路
- 子数整数(luogu 1151)
- 为什么要在JavaScript中使用静态类型? 我们是否应该使用它们?
- 波形包络提取与峰值提取_一个简单的波形包络提取算法
- 计算机九针孔什么接口,db9接口-USBCAN-I设备的DB9针串口头中的针脚是如何定义的-电气资讯 - 电工屋...
- 《21天学通C语言》
- 软件测试项目案例.pdf,最经典软件测试案例.pdf
- 微软word 2019取消交叉引用
- 云原生中间件RocketMQ-消费者消费模式之广播模式、偏移量offset解析
- 乐优商城:笔记(六):上传微服务:LyUpload
- 人效提高350%,基于KICP搭建的营销套电客服机器人,让欧派家居赢在起点
- 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波
- 运维工程师的职责和前景 1
- Android电视kodi安装失败,电视提示“解析包出现错误” ?四种方法教你轻松解决...
- 你看好我国网约车生态吗?
- 23届计算机保研经验帖(北邮)
- 2019我干了什么!2020我该干些什么?