一、PWM
Pulse Width Modulation脉冲宽度调制,简称PWM。
PWM(脉冲宽度调制)对模拟信号电平进行数字编码的方法,计算机只能输出0或5V的数字电压值而不能输出模拟电压,而我们如果想获得一个模拟电压值,则需通过使用高分辨率计数器,改变方波的占空比来对一个模拟信号的电平进行编码。
仍输出数字信号,因为满幅值的直流供电只有5V(1)和0V(0)两种。电压是以一种连接(1)或断开(0)的重复脉冲序列被夹到模拟负载上去的,连接即是直流供电输出,断开即是直流供电断开。通过对连接和断开时间的控制,只要带宽足够,可以输出任意不大于最大电压值的模拟电压。
输出电压=(接通时间/脉冲时间)*最大电压值
二、51单片机的Timer
作者用的单片机是STC89C52,其内部有3个16位Timer,分别为T/C0,T/C1,T/C2,通过配置相关寄存器即可实现Timer的功能控制。
控制PWM需要用到定时器来生成不同占空比的波形,采用定时器中断的方式。
相关寄存器:
1.IE寄存器
位 | 名称 | 功能 |
---|---|---|
0 | EX0 | 外部中断0的中断允许位 |
1 | ET0 | Timer0的溢出中断允许位 |
2 | EX1 | 外部中断1的中断允许位 |
3 | ET1 | Timer1的溢出中断允许位 |
4 | ES | 串行口中断允许位 |
5 | ET2 | Timer |
6 | - | - |
7 | EA | 中断允许总控制位 |
2. TCON寄存器
位 | 名称 | 功能 |
---|---|---|
0 | IT0 | 外部中断0的触发方式选择位。功能和IE1类似 |
1 |