我对于单片机的认识

首先,来跟大家聊聊,我对于单片机是怎么接触到的。
我是从大二开始学习的单片机,因为所学的专业开设了这门课程。在此之前,我也只是听说有这么个东西叫做单片机,至于这个传说中的东西究竟长什么样,我也是从来没有见过滴!!!
下面,来看看它究竟长什么样吧~


这个黑黑的长方形的东西 ,就是我之前最常用的一款单片机,是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单片机之前需要的基础学科相关推荐

  1. 51单片机c语言学习感想,学习51单片机心得体会

    在这里给大家分享一下学习51单片机心得体会: 1.我从不说51是基础,如果我这么说,也请把这句话理解为微机原理是基础. 2.对51单片机的操作本质上就是对寄存器的操作,对其他单片机也是如此.库只是一个 ...

  2. 如何自己学习51单片机

    第1章 如何学习单片机 在错误的道路上日夜兼程,最终也无法成功,方法和思路绝对是最重要的.一些学技术的同学,往往看到这类章节会直接跳过去,因为大多数类似章节都是废话连篇.但是,今天在这里作者可以很负责 ...

  3. 用 C学习51单片机——记录 4、中断系统 (1)外部中断

    用 C学习51单片机--记录 4.中断系统 用 C 学习51单片机过程与自我拓展--记录(STC89C52芯片) 前言--其实51并不太难,多看 多写代码,多调试,就一定会有所感悟. 所以我在此留下一 ...

  4. 【手把手教你学习51单片机】74HC138 三八译码器的应用

    注:本文章转载自<手把手教你学习51单片机>!因转载需要原文链接,故无法选择转载! 如若侵权,请联系我进行删除!上传至网络博客目的为了记录自己学习的过程的同时,同时能够帮助其他一同学习的小 ...

  5. 【STC89C52】学习51单片机的必备电子电路知识基础

    电子电路是学习51单片机的基础, 如果能把以下几个模块弄清楚学习51单片机就不成问题啦. 目录 1.电平 2.单片机IO口 3.电阻 4.电容 5.电路原理图 ​编辑 6.单片机最小系统结构 7.单片 ...

  6. 零基础学习51单片机

    零基础学习51单片机 前言 51单片机是一款非常经典的8位单片机,广泛应用于各种嵌入式系统和电子产品中.本文将从零开始,以简明易懂的方式介绍51单片机的基本原理.基本语法和应用. 什么是单片机 单片机 ...

  7. 【深入学习51单片机】二、一个极简RTOS源码分析

    目录 一.书接上回 二.初始化过程 三.任务的创建 四.任务的切换 五.任务的等待(系统延时) 一.书接上回 上回写了一个测试程序,可以直观的体会PC指针和堆栈指针的变化和影响.这章写下参考程序的过程 ...

  8. 采用开源工具学习51单片机

    想学习单片机的同学可以关注.私信我或者在评论区回复我要入门.传统上,51单片机一般用keil c集成环境来进行编译开发,然后直接烧录到芯片上去运行,这有几个缺点: ·keil C是商业软件,很多人都想 ...

  9. 笔记 学习51单片机串口中断

    单片机的串口通信功能是比较常用的功能. 80C51的串行口 我在学习的过程中,觉得SBUF的使用方法是最难的,于是对着这个图和资料一步步理解,才搞明白一点"A=SBUF"和&quo ...

  10. 用Proteus学习51单片机之I2C(IIC)总线

    最近刚做好一个站,基于rails 3,教程为主,大家捧场看看,谢谢!www.yo945.com 在学习单片机的过程中,我常有这样的烦恼:随随便便一个芯片,少则占用三五个IO口,一般的就占用8个,稍微想 ...

最新文章

  1. 周立功-成功心法(2):通过讲故事营销自己
  2. 人生之精华,胜读十年书
  3. hadoop完全分布式集群群起
  4. 网站大访问量优化整体思路
  5. 子数整数(luogu 1151)
  6. 为什么要在JavaScript中使用静态类型? 我们是否应该使用它们?
  7. 波形包络提取与峰值提取_一个简单的波形包络提取算法
  8. 计算机九针孔什么接口,db9接口-USBCAN-I设备的DB9针串口头中的针脚是如何定义的-电气资讯 - 电工屋...
  9. 《21天学通C语言》
  10. 软件测试项目案例.pdf,最经典软件测试案例.pdf
  11. 微软word 2019取消交叉引用
  12. 云原生中间件RocketMQ-消费者消费模式之广播模式、偏移量offset解析
  13. 乐优商城:笔记(六):上传微服务:LyUpload
  14. 人效提高350%,基于KICP搭建的营销套电客服机器人,让欧派家居赢在起点
  15. 基于Matlab App Designer的语音信号分析与处理(二):IIR和FIR滤波器的设计,语音信号的滤波
  16. 运维工程师的职责和前景 1
  17. Android电视kodi安装失败,电视提示“解析包出现错误” ?四种方法教你轻松解决...
  18. 你看好我国网约车生态吗?
  19. 23届计算机保研经验帖(北邮)
  20. 2019我干了什么!2020我该干些什么?

热门文章

  1. Keil uVision5开发一个基于LPC17XX系列芯片的工程文件
  2. 主流跨境电商平台有哪些-扬帆牧哲
  3. Unity 键盘控制摄像机镜头旋转,并限制旋转角度
  4. 博客园的 “随笔、文章、日记”有什么区别?
  5. 朱晔的互联网架构实践心得S1E5:不断耕耘的基础中间件
  6. QT小项目练手——用QTimer做一个倒计时程序
  7. 计算机桌面右键点击 网络,电脑桌面右键单击鼠标一直转圈如何解决
  8. 诗经 - 小雅 -采薇
  9. 迅雷离线下载怎么使用?迅雷离线下载使用方法
  10. p3110 二叉堆练习3--排序