当前位置:首页 > 物联网 > 大鱼机器人
[导读]大家好,我是张巧龙,本次分享一篇单片机自学教程。文章较长,建议先收藏后再慢慢品尝,肯定会有收货的!0.写在最前 嵌入式学习路径是一个漫长而又有趣的过程,有趣是随着知识的积累感受的成就感,漫长是相对于软件来说,入门还是有一定门槛的。 但一定不要一个人学习,因为上述学习路径长,难度渐...

大家好,我是张巧龙,本次分享一篇单片机自学教程。


文章较长,建议先收藏后再慢慢品尝,肯定会有收货的!


0. 写在最前 


嵌入式学习路径是一个漫长而又有趣的过程,有趣是随着知识的积累感受的成就感,漫长是相对于 软件来说,入门还是有一定门槛的。 


但一定不要一个人学习,因为上述学习路径长,难度渐渐加深,一个人总有不理解,晦涩难懂的地 方,你需要有人来探讨。注意是探讨,不是一味的请教别人,遇到问题自己先通过网络查询资料, 先学习和思考,再请教他人。因此强烈建议现实生活中找一两个同样方向的人一起学习,在学校就 比较方便了,加个单片机社团就有学习氛围了。 


不要一个人学习,学习需要探讨,一个人学习容易放弃,一伙人则会相互激励。 

不要一个人学习,学习需要探讨,一个人学习容易放弃,一伙人则会相互激励。 

不要一个人学习,学习需要探讨,一个人学习容易放弃,一伙人则会相互激励。 


大部分人的主要疑问:哪里可以找到一伙人?


学生党:问问学校电气, 机电学院里面有没有类似的工作室. 可以利用实验室资源最大化学习。 


工程师:通过自己买开发板或者打样。交流的途径有:各类技术论坛,stm32这块,可以去正点原 子论坛, 野火论坛,也有对应微信公众号,可以找找有没有衍生出的微信群或者QQ群。

linux这块, 100ask论坛,ZLG开发交流群. 各种交流群, 论坛, 只要用心去找, 一定能找到。 


1. 基础课程 


1.1 C语言 


具体细节的知识点我这里就不详细的展开描述了,毕竟C语言的书和视频教程网上一大堆,学习资 源充分。但这里建议,C语言的基础还是要打扎实的,最简单的方法就是高中对付高考的方法:题海战术。

 

其实就是将C语言书籍后面的C习题,每一题的做一遍,自己动手敲一遍,想一遍,调试一遍。这样 将会极大的锻炼到你的基础编码能力。觉得C语言课本后面的习题太简单没有难度的,可以转战LeetCode。


1.2 数字电路 


具体的细节说实话我也不记得了,但是最基本你要知道与或非门如何实现组合逻辑;组合逻辑的输 出反馈到输入作为下一次逻辑的输入就构成了时序电路,掌握时序逻辑的分析方法;


另外还需掌握 数据锁存器类的掉电数据不丢失的电路是什么样的原理。掌握这些概念,或许最开始仅仅是一知半 解,没有能将知识串起来,但是等到某一天你的知识体系成熟的时刻,你就豁然开朗了。


(1) 人类文明的进步,探索发现了PN结这种东西具有单向导电性,由此制作做了二极管。(理解PN结 单向导电原理) 


(2) 由于二极管的单向导电性,由此又制作出了与或非门电路。(理解二极管如何构成与或非逻辑门) 人们做出了与或非逻辑后,发现世界上逻辑就是在此基础上复杂化而已。可用通过与或非门实现 加法器,移位器,编码器,译码器等各种想要实现的组合逻辑(掌握通过门电路设计组合逻辑的方法) 


(3) 但现实生活中的逻辑往往不像组合逻辑这么单纯,输入转化为输出就结束了。往往上一次的输出 会影响到下一次处理。时序逻辑的出现就这么引入了,同时也带来了时钟的概念。(掌握组合逻辑 输出反馈为下一个时钟的输入得到时序电路的分析方法) 


(4) 上面这些都是实时输出的,即输入的同时才能得到对应的输出,一旦输入没有,输出也就丢了。数据没有办法保存。于是人们又通过门电路制作出了可以锁存数据的RS触发器,PROM存储器。(掌握存储器的电路原理,如何通过总线时序访问) 


准确理解了上述内容后,在后续学习微机原理的课程中,你会发现CPU的核心单元就是一个复杂点 的时序逻辑,而外设资源的话,都是些组合逻辑或时序逻辑包起来的黑盒子。


2. 入门课程 


2.1 51单片机 


讲道理,目前Proteus仿真软件确实很强大,使用它学习51的书籍,教程,示例十分的多,非常适 合学习。


但我还是建议真心学习的的话,去淘宝上淘个实物开发板和模块,学生党经济能力一般的 就上闲鱼,买个二手板子,包邮不超过50。


为什么建议买实物呢?


因为Proteus仿真毕竟是仿真, 对于很多硬件上的电压、信号时序等要求不像实际电路严谨,或者说不够严苛。就好比i2c时序不是 很符合从机的要求也能正常通信,但同样的程序放到实物单片机上就很有可能i2c通信不上。 


这里再顺带手的介绍下51主要学习些什么?以及简单的学习步骤:


创建工程,学会如何编译,如何下载,理解sbit,sfr等51单片机特有的寄存器数据结构 


假设使用的STC系列的单片,要学会去STC官网(stcmcu.com)下载官网资料,数据手册文档。官方下载工具、电路参考设计等资料。(从芯片厂商官网上获取学习的资源也是一项很重要的能 力),或许51这样的单片机资料太多,基本你想要做的东西,别人早就做过了,官网的资料早就变成千万的人的博客文章,但以后学习一些不是热门的处理器,官网的资料就显得很权威也很重要了。


学习51单片机的IO模块,使用IO点灯(流水灯)、控制数码管、控制8*8点阵模块、按键输入。


学习51单片机的中断模块,先从最简单的外部中断,使用中断的方式识别按键事件。


学习51单片机的定时器模块,实现1s定时,实现简单的数字秒表,实现IO口输出PWM波。


学习51单片机的串口模块,掌握串口电平标准,TTL、RS232、USB电平标准,掌握串口波形组成,掌握波特率,多主机通信等概念。


51基础模块学习完了后,就可以学习扩展模块了。可以使用IO口模拟各种各样的低速总线协议, 如i2c协议、spi协议还有一些特定模块自定义的协议,如DS18B20温度传感器的单总线协议,加深对协议的理解。


学习的过程可以通过买该协议对应的模块进行学习,尽量挑网上教程多的模块 买,如i2c就买eeprom和mpu6050,spi就买flash。


学到这里,就可以做点小东西了,比如说旋转LED,循迹小车,遥控小车。最开始就跟着网上的 教程学习,学习的第一步总是从模仿开始的。先模仿,再理解,再改进,最后吸收转化为自己的能力。


建议上述过程多花点时间,做到绝大部分地方都能搞懂,都能够理解。毕竟是基础,后面的学习是 在其上进行扩展,基础学的好,后面有着触类旁通的功效。


2.2 微机原理(可选)


一般的小伙伴这个时候就会开始上手STM32了,但是我建议在上手STM32之前,先看看8086处理 器的设计,即学习下《微机原理》这门课,我觉得还是很有必要的。


微机原理,可以大概的了解的,CPU如何执行指令,如何通过地址总线、数据总线、控制总线访问内部寄存器,外部存储器, 中断如何被响应,以及中断的具体内部处理过程。


2.3 STM32 


接下来可以安安心心的学习STM32了,这个就比51要复杂了。但是不慌,本质和51是一样的东 西,只是功能模块变复杂了,模块数量变多了。但是万变不离其宗,本质上模块无非就是组合逻辑 或者是时序逻辑电路,而模块寄存器就是该逻辑电路的输入。


我们只要看懂模块框图,将框图中的 配置和相应的寄存器对应上,学习就是一样的。


stm32单片机,推荐购买野火或者正点原子的开发板学习,并非打广告,而是教程确实讲的好。这个跟着视频一个一个模块学习就可以了。或者以作品为导向,做个平衡小车,OLED时钟等小玩意。


2.4 数据结构
本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读

SHT11是Sensirion公司推出的数字式温湿度传感器,采用CMOSens™技术将温湿度传感、信号放大、A/D转换、校准数据存储及I²C类串行接口集成于单芯片。与标准I²C协议不同,SHT11的接口为“类似I²C”的...

关键字: SHT11 单片机 I²C

很多嵌入式开发者天天写单片机代码、烧录程序调试功能,却很少真正把它的完整运行逻辑串起来。你可能知道单片机里有CPU、RAM、ROM,也知道写的C代码会被编译成机器指令,但你未必清楚从按下复位键的那一刻开始,芯片内部的每一...

关键字: 单片机 芯片

在2000年到2010年的单片机黄金时代,消费电子、工业控制设备里跑的几乎都是8位、16位的早期MCU芯片。那时候没有现在成熟的硬件加密核、OTA固件签名这类方案,开发者却要面对固件被轻易破解、山寨产品快速抄板的行业痛点...

关键字: 单片机 MCU

很多单片机开发者在调试通信功能时,都遇到过类似的“玄学”问题:同样的代码在实验室里跑完全正常,拿到量产设备里就随机丢包;I2C传感器偶尔返回乱码,用示波器抓波形却看不出明显异常;UART串口在高波特率下,只要设备靠近电机...

关键字: 单片机 传感器

在汽车电子、石油钻探和工业控制领域,单片机往往需要在-40℃至125℃的极端温差下持续工作。片内SRAM通常只有几十KB,难以满足数据采集和缓冲需求,而外部SRAM提供了容量扩展的可能,但高温环境对其稳定性构成了严峻挑战...

关键字: 工业高温场景 单片机

在物联网与工业控制设备的实际运行中,系统状态的可观测性直接决定了故障排查的效率。然而,许多低成本单片机受限于内部RAM资源,难以长期驻留大量运行日志,一旦遭遇异常重启或意外断电,内存中的调试信息便会瞬间丢失,导致售后团队...

关键字: 单片机 NOR Flash

在工业控制与物联网终端设备中,EEPROM存储的计数器数据(如设备开机次数、运行时长)常因突发断电导致数值丢失或错乱。传统方案采用页写入模式,单次修改需重写整页数据(通常64-128字节),不仅加速存储器磨损(EEPRO...

关键字: EEPROM 单片机

在资源极度受限的8位单片机场景中,64B RAM往往是整机系统最稀缺的硬件资源——除去堆栈、全局变量和寄存器映射占用的空间后,留给用户自定义数据的可用内存通常不足30B,想要同时实现3路传感器的实时缓存几乎是常规编程思路...

关键字: 8位 单片机 RAM

外部脉冲明明到了,计数却偶尔少一次,这类故障常被误判成传感器抖动。单片机中断链路如果把屏蔽窗口、标志位和优先级混在一起处理,真实边沿很容易在软件忙碌时消失。

关键字: 单片机 中断 屏蔽窗口

在嵌入式产品的全生命周期里,STM32的Flash就像设备内部的“数字保险柜”,既存放着工程师熬夜写出来的核心固件代码,也保存着设备运行过程中积累的关键校准参数、用户配置数据。

关键字: STM32单片机 单片机
关闭