目录
对于学习的人单片机大部分我想先接触的应该就是C51,如果你没有任何头绪但是还想有条不紊的学习它的话,我可以给一个我个人的学习路线。
对于学习的人单片机大部分我想先接触的应该就是C51,如果你没有任何头绪但是还想有条不紊的学习它的话,我可以给一个我个人的学习路线。
1.基本IO口:
单片机的控制核心本质上就是在控制IO口进行不同方式的电平输出,从而控制对应的设备。所以你要做的第一件事就是学怎么控制IO口,也就是所谓的“点灯”。
这里的前提是,你已经学会了:
配置环境--代码编写--串口连接--代码烧录
而这些看起来简单的东西其实对于初学者而言,可以说你要踩无数的雷,比如:
keil配置错误找不到芯片对应的基本头文件,串口TX和RX接反,烧录程序配置芯片错误导致程序下载失败等等...
2.基本定时器:
对于定时器的解读可以很深,解读的方法也很多。我认为对于初学者而言,你只需要知道定时器在在你学习中的作用就是:时序电路的调整 串口的波特率一致化 定时器的溢出中断的利用
这里我给出一些基本的知识:
晶振:晶振(晶体震荡器),又称数字电路的“心脏”,是各种电子产品里面必不可少的频率元器件。数字电 路的所有工作都离不开时钟,晶振的好坏、晶振电路设计的好坏,会影响到整个系统的稳定性。
时钟周期: 时钟周期定义为时钟频率的倒数。时钟周期是计算机中最基本的、最小的时间单位。时钟周期是一个时间的量。更小的时钟周 期就意味着更高的工作频率。
机器周期 :主板做完一个基本的操作所需要的时间称为机器周期。所以基本是一个机器周期里又很多个时钟周期。
如果你上面的看不懂,那你就记一句话:
晶振/1 = 时钟周期,时钟周期*6或者*12 = 机器周期,机器周期=定时器+1所耗的时间
然后学习相关寄存器:TCON TMOD,TCON用来打开或者关闭定时器,并储存定时器初始值(这可以决定多久溢出一次),TMOD用于调整定时器模式。
3.中断
中断的学习是非常重要的,可以说学会了中断才算基本入了单片机的门。
常见中断有:定时器中断 串口中断 外部中断
单片机里的中断是非常具有实践价值的,我做比赛小车项目的时候,用中断解决了大部分我想解决的问题。
在这里我给你一些基本的中断常识吧:
中断的使用:中断是指在程序中达成某种条件后CPU强制停止当前正在执行的代码,转而处理中断处理函数中的内容,然后再继续处理原本代码的位置。
中断相关配置:中断寄存器IE,其中EA位是中断允许位,任何中断想被处理都要打开。剩下还有相关寄存器SCON,TCON等,这些寄存器内包含中断标志位,中断模式配置,某个中断允许位等等需要你自己使用后才能熟悉。
另外,外部中断是一种固定中断,我的意思是它的触发条件一般是由某个IO口的电平变化触发的,而这个IO口一般是固定的,所以在配置的时候要注意研读芯片对应的手册。
4.串口:
作为初学者,你知道串口的基本作用就是和上位机通信就行。也就是和你的电脑通信。其实本质上,你烧录程序也是通关串口进行的。
串口的基本特征是一位一位发数据,通过向sbuff寄存器里放东西,拿东西就可以发送和接收数据
而想要玩的好一点,就要懂得配置定时器保证波特率一致,然后配置串口中断来对数据进行不同程度的处理,这一点能够配合蓝牙模块来玩。
5.IIC协议
PHILIPS公司在80年代开发的两线式串行总线,用于连接微控制器及其外围设备。IIC属于半双 工同步通信方式。
IIC串行总线一般有两根信号线,一根是双向的数据线SDA,另一根是时钟线SCL,其时钟信号是由主控 器件产生。所有接到IIC总线设备上的串行数据SDA都接到总线的SDA上,各设备的时钟线SCL接到总线 的SCL上。
而你只需要知道,这种协议是很多设备的标准协议之一,也就是说很多模块都通用。所以你学它的意义在于,你可以使用封装好的标准信号来控制很多模块。
其中包括 起始信号 停止信号 应答信号
总之都是一些时序电路,难度并不大,但实用性很强,比如OLED灯,LCD1602等等。
6.各种模块推荐:
这个放在最后并不是说让你最后做,而是让你在学习前面的中间配合着来,做东西比干学记的深多了,我分三个阶段给点小建议吧:
阶段一:红外传感模块 震动模块 蜂鸣器 继电器
这些模块基本用单纯的时序电路就都能玩转,时候刚入门的时候配合小灯玩一玩,上上手。
阶段二:HC-SRO4超声波模块 SG90舵机 ESP网络模块 WIFI模块等等
这些模块基本都涉及定时器 串口 中断的基本使用,还涉及了AT指令,适合稍微进阶一点的玩法,如果搭配的好的话甚至可以做出一个小项目来。
阶段三:OLED灯 LCD1602 DHT11 LD3320或类似的语音模块
这些模块有使用IIC协议的,也有需要搭配外部中断玩的,也有是时序很复杂的,最后拿出来玩其实难度不大,就是要熟悉各种物件。