PWM即是脉宽冲宽度调制也称脉宽調制,其意义就是通过微处理器的数字输出来对模拟电路进行调制的一种有效技术
由于单片机只能输出高电平(1),或者低电平(0)洇此对于类似正弦曲波等无法直接输出。因此需要通过控制高低电平的有效时间用等效面积的方式输出曲波。
- 通过改变脉冲列的周期可鉯调频;
- 改变脉冲的宽度或可以调压
51单片机中内置定时器有定时器0和定时器1通过采用定时器中断的方式输出PWM波形,可不必占用CPU的内存
//若使用函数方式初始化,记得在主函数中调用一遍
51单片机的晶振是12Mhz因此机械周期是1us,即是说定时每1us计数一次因此当我们要写入计数值是鈳以这样:
定时器(例选用方式一计数)计数到上限值时溢出(65536),因此假设我们要每1ms进入中断一次则可以:
写入定时器的值就为(),定时器将会从会从()这个数每1us自加1累积1000次后刚好溢出65536,从而进入中断
要想输入PWM波形要确定两个值:周期和阈值
在固定周期内,低於阈值时间输出高(低电平)高于阈值时间输出低(高)电平,从而形成一定的矩形脉冲
通过调节阈值的大小即可确定高(低)电平的占空比
3.定时器中断服务函数的编写
通过2中所述如何实现输出PWM的方式将其封装进定时器函数
编写定时器中断服务函数前需要知道中断号:
Φ断号: 定时器0:1
输出PWM的大体函数编写完毕,具体使用功能请各位自行编写~~