AT89C51单片机P1.0口产生PWM波的C语言程序怎么编写?求大神(不要太复杂啊)

如题所述

第1个回答  2013-05-23
根据你自己的需要,PWM分级,PWM周期10ms,分100级,那么定时器中断100us,另外一个寄存器中断里计数,和你要的占空比寄存器比较,如果当前占空比50%,那么计数器比较是否大于5ms,大于则PWMP1.0输出高,小于则PWMP1.0输出低,最后判断计数是否到10ms,然后清零,从新开始!就可以了啊,很简单,如需改变占空比那么在一个PWM周期完成后改变即可,如果是调速,那么直接增加或者减少占空比,不需要等下个周期追问

谢谢,你说的我也理解。但能不能烦劳给试着编个程序呀,我对单片机和C语言的实现不太了解。麻烦啦!!!

追答

自己硬着头皮写,不然你怎么进步!原理懂了,你慢慢写总会写出来,比给你源代码好的不知多少倍!真的,逼下自己!

本回答被网友采纳
第2个回答  2013-05-23

三路可调 PWM 仿真实例,供参考