注释: 先CTRL+K,然后CTRL+C
取消注释: 先CTRL+K,然后CTRL+U
/ 定时器中断 /
低电平和下降沿触发
低电平触发:触发后一直处于中断状态,在低电平时间内中断一直有效,直到变为高电平。
下降沿触发:检测到信号由下降沿时就触发开关动作,只触发一次,只有在下次电平发生变化时才会重新触发中断。
中断
定时器/计数器:可以通过内部时钟或外部脉冲信号实现对寄存器数据加1的操作。
定时时间T = 12x(2的n次方-x)/单片机晶振频率
Tc为定时时间;n为定时器工作方式,即TMOD来决定。
举例:
选择T0为n=16位定时器方式,即TMOD=0x01。外部晶振为11.0592MHz且采用12分频
则单位时间(机器周期)Tu=12/11059200=1.09us;定时Tc=50ms。T0初值为:
X=2^n-Tc/Tu=2^16-(50*10^3)/(1.09)=65536-45872=19664=4CD0H,即TH0=4C,TL0=D0;
其他公式
定时器中断,生成时基0.1MS一次,计算公式t=(0xffff-0xffa3)*12/(11.05926*10^6)
/*
16位定时器可计数0xffff次,计满溢出,TF位会置,如若开启了中断,TF为1将触发中断,执行下面的中断服务函数,然后TF位会被硬件自动清为0
放入初值0xffa3,即计满定时器总共要计数(0xffff-0xffa3)
晶振震荡12次为一个机器周期,即定时器计数器每加1,用时12/(11.05926*10^6)s
*/
12M的晶振 也可以直接这样算TH和TL:
TH = (65536 – time)/256;
TL = (65536 - time)%256;
Time是定时时长,单位是微秒。
特殊功能寄存器
TMOD(Timer Mod Control Regester)
TMOD用于设置计数器/计时器的工作方式
D0~D3是T0的设置,D4~D7是T1的设置
GATE:门控位。
GATE= 0时,只要在编写程序是的TR0或TR1为1,就可以启动定时器/计数器工作
GATE= 1时不仅要使TR0或TR1为1,且需要外部引脚也为高电平,才能工作
C/T:定时/计数模式切换,C/T= 0时为定时模式,C/T = 1时为计数模式
M1,M0:用来选择定时器/计数器的工作方式,一般采用16位计时计数器。
TCON(Timer Control)控制寄存器
TCON用于控制定时器/计数器的启动和中断申请
TF1(Timer Flag定时器器标志位):=1时表示T1有中断产生
TR1:=1时表示T1开始运行。(对应T0引脚,需高低电平驱动
TF0:=1时表示T0有中断产生
TR0:= 1时表示T0开始运行
IE1:=1表示INT1有中断产生。
IT1:=1时INT1为下降沿触发,=0时为低电平触发
IE0= 1表示INT0有中断产生。
IT0:=1时INT0为下降沿触发,=0时为低电平触发
IE(Interrupt Enable)中断允许寄存器
EA:整体中断允许位;EA = 1 允许中断
ET2:T2中断允许位;ET2=1允许中断(c52不一定有)
ES:串行中断允许位;ES= 1允许中断
ET1:T1中断允许位;ET1 = 1允许中断
EX1:INT1中断允许位;EX0= 1允许中断
ET0:T0中断允许位;ET0=1允许中断
EX0:INT0中断允许位;EX0=1允许中断
/ 稳压模块 /
用来给红外传感器和单片机供电的是5V稳压芯片LM2940
/ 电机驱动模块 /
L298N芯片
L298N芯片可以驱动两个二项电机,也可以驱动一个四相电机,可由单片机的IO口直接控制,Vs电压要比Vss的电压高,否则会失控。
引脚4,VS接电源,电压范围是2.5~46V,输出电流可达2.5A,可驱动电感性负载。
引脚1、15下是输出电流反馈引脚,通常使用是两引脚直接接地。
OUT1、2和OUT3、4可分别接电机。
引脚5,7,10,12接输入控制电平,控制电机正反转。
EnA、EnB是使能控制引脚,控制电机的转停。
L298N控制两个二相直流电机
EnA | In1 | In2 | 状态 | EnB | In3 | In4 | 状态 |
0 | X | X | 停止 | 0 | X | X | 停止 |
1 | 1 | 0 | 正转 | 1 | 1 | 0 | 正转 |
1 | 0 | 1 | 反转 | 1 | 0 | 1 | 反转 |
1 | 1 | 1 | 刹停 | 1 | 1 | 1 | 刹停 |
1 | 0 | 0 | 停止 | 1 | 0 | 0 | 停止 |
/ 检测模块 /
LM324N
比较器,内部有四个工作在饱和区的运算放大器,属于运算放大器在信号处理方面的应用。
当“+”输入端电压高于“-”输入端电压,电压比较器输出高电平。
当“+”输入端电压低于“-”输入端电压,电压比较器输出低电平。
TCRT5000红外传感器
当发射的红外线没有被反射回来或者反射强度不够时,光敏三极管不工作。
当红外线的反射强度足够且被光敏三极管接收到时,光敏三极管处于工作状态。
调试时可通过调整红外发光管负极和GND之间的电阻值(范围我100~500欧)以及光敏三极管发射极与GND之间的电阻值(范围为5~20K),使测试性能达到理想值。
一般200欧姆和10K的电阻与之配合效果较好。
LM324与TCRT5000配合检测黑线
有黑线输出高电平:有黑线时,反射到光敏三极管的光照强度不够,三极管不工作,比较器的“+”输入端电压高于“-”输入端的参考电压,比较器输出高电平。
无黑线输出低电平:无黑线时,反射到光敏三极管的光照强度足够,三极管处于工作状态,比较器的“+”输入端电压被拉低,低于“-”输入端电压,比较器输出低电平。
/ 舵机MG995 /
舵机的控制一般需要一个20ms的时基脉冲,该脉冲的高电平部分一般为0.5ms~2.5ms范围内的角度控制脉冲部分。
(软件调试查看电平状态)
https://jingyan.baidu.com/article/19192ad803101ce53f570776.html
/ stm32 /
芯片资源
GPIO:通用输入输出引脚
可在选型手册中看stm32 的资源,STM32F103ZET6有144个引脚,112个IO(一般是高电平时3.3,低电平是0,大部分IO口都耐5V,模拟通道除外),512K FLASH, 64k SRAM。
3个12位AD(analog转digital),有21个外部测量通道,转换范围0~3.6V,一般是0~3.3V。
2个12为DA(digital转analog)。
12个DMA(直接存储器访问)通道(7通道DMA1,5通道DMA2)
定时器有11个,13个通信接口
芯片引脚和功能对应
当需要相关知识时,去资料包中找对应stm32的芯片手册,用ctrl+f搜索相应文件中的相应信息。在I/O lever一栏中有FT的就是代表该引脚可以容忍5v。
STM32最小系统
包含:供电、复位、时钟(两个外部晶振)、Boot启动模式选择、下载电路,后备电池