我想问一下~那个~用STC89C52单片机产生一个PWM波的C语言程序怎么写啊?

具体的是用STC89C52单片机产生一个PWM波,经过一个功率放大电路作用于一个外接喇叭,使喇叭发声。不太会写程序,所以在产生PWM波得程序那个地方卡住了~希望您能帮帮我啊~~~谢谢~~~

首先89C52内部没有硬件PWM发生器,只能通过定时器模拟!你可以通过两个定时器,T0控制周期,T1控制占空比。
例如:实现周期为1000us,占空比为20%的PWM,用P1.0实现
首先你设置T0为65536-1000 (12M晶振)
T1为65536-200
首先初始化P1.0=1,两个定时器同时打开,在定时器T1中断时拉低P1.0,在定时器T0中断时在拉高P1.0,同时将两定时器初始值初始化T0为65536-1000 ,T1为65536-200
希望对你有用,呵呵!!!追问

用1个定时器的话不可以吗???

追答

可以的,但是这就要用一个变量count1 来控制周期和占空比了,比如说你设置1周期为10ms,占空比还是为20%的PWM,你可以设置定时器为每10us产生一次中断,没中断一次使count加1,一开始设置P1.0为高电平,当count1加到200的时候拉低P1.0,等count1到1000了在拉高P1.0,同时复位count1=0,不过这样做的缺点是精度不高,要是PWM所需周期段,精度高的话我还是建议用两个定时器来实现 ,我在这里没有给你具体的代码,我觉得把原理讲清楚猜是最重要的,什么都是才来就上代码,这个对你学习不利,希望对你有用,呵呵!!!!

温馨提示:内容为网友见解,仅供参考
第1个回答  2011-05-12
我记得上次我做这个的时候是用单片机产生两个正弦波,在用这两个正弦波合成第三个正弦波,这三个正弦波只有相位不同,最后将这三个正弦波合成一个PWM波形,都做了快2年了,所以基本上都忘了。
第2个回答  2011-05-12
具体程序我也没有了
我的思路当时是这样的:首先设定一个定时,比如说是5us,然后设置一个变量count,
设置好周期如果是500us,那么,用count控制占空比,如,占空比是50%时,可以将count设置成50,如果占空比是实时变化的,那么可以用一个变量代替count

用STC89C52单片机,想根据电脑给的信号,输出一个PWM来控制开关的闭合,有...
你利用电脑的串口给单片机发数据,0~255,单片机根据接收到的数据做出反应,就可以了

大神,我想用基于STC89C52单片机,用到定时器通过L298N调PWM控制一个电机...
void PWM_init (void){\/\/PWM初始化函数 CMOD=0x02; \/\/设置PCA定时器 CL=0x00;CH=0x00;CCAPM0=0x42; \/\/PWM0设置PCA工作方式为PWM方式(0100 0010)

STC89C52RC可以做几路PWM输出。如果可以,怎么实现?重点,几路_百度知 ...
STC89C52RC内部并没有PWM电路,需要PWM输出,就只能用定时器来控制输出脉冲的宽度和占空比。这样的话,就只好用I\/O引脚来模拟PWM波输出了,32个I\/O脚都可以输出,加上新增的P4.4、P4.5、P4.6三个I\/O脚,原则上可以用35路PWM输出。如果选用STC12C5A60S2系列单片机做输出PWM,就方便多了。内部增...

STC89c52通过单片机定时器产生的PWM波,多大电压??
STC89C52是5V,所以输出也就是 0-5V 89c52做pwm估计也就顶多能到二三十khz了 这个电路要是直接驱动P管的话,Vi必须小于5V才能勉强工作,驱动电压也仅有5V,,电流小还是勉强可以看看效果的。建议换个带PWM的片子(STC的很多很便宜)+mos驱动芯片,做好了 ...

问一下单片机输出PWM波的问题,谢谢
(1)stc89c52 单片机可以带 4个 TTL 负载,而 L9110N 输入端与 CMOS\/TTL 兼容,可见不是单片机带载能力问题。你有示波器应该很好查故障的,先不用输出 PWM波 。单片机电源电压选择 5V ,L9110N 电压与电机相同,单片机输出口的正转输出端子置 1,反转端子置 0 ,看电机是否转动。不转,用相应的...

stc89c52是stc的哪种型号?
STC单片机特性:1、下载烧录程序用串口方便好用,容易上手,拥有大量的学习资料及视频,最著名的要属于杜老师的那个视频了,好多对单片机有兴趣的朋友都是通过这个视频入门的,同时具有宽电压:5.5~3.8V,2.4~3.8V, 低功耗设计:空闲模式,掉电模式(可由外部中断唤醒)。2、STC单片机具有在应用...

stc单片机脉宽测试程序
38khz占空比50%的pwm波 其实也就是 38khz占空比50%的方波了。 通过程序中断实现38khz占空比50%的pwm波,单片机确实几乎忙得不用做其它事了。 但是现在大多单片机都有 pwm 或者 可编程时钟输出,前者可以调频率和占空比,后者只能调频率(占空比固定50%),只需向特殊寄存器输入参数就可以得到想要的...

89C52单片机的内存8K不够用了怎么办?
另外,要不直接扩一个足够大的外部程序芯片算了.3.如果改用大内存的单片机芯片,那程序又不一样了吧?答:只要单片机还是51系列的,程序基本不会大变动,甚至不用变动.价格方面不要贵啊,我只会52的C程序的(我是菜鸟),所以要完全兼容的,不需要太大,再有8K或4K就OK。那又怎么办?跪求,献上我...

STC89C52 单片机I\/O口能直接驱动MOS管吗?
可以,1、MOS是压空器件(G极输入电流忽略不计)2、MOS的导通电压需关注一下,只要单片机的IO输出高、低电平与MOS的导通、关断电压兼容,那就OK了

stc89c52单片机和51单片机的区别
1、种类不同:51系列单片机是指51内核,stc89c5X基本都是51内核的种类。2、大小不同:最后一个数字表示E2prom的大小,E2prom=X*4K,c51就是4K,c52就是8k。3、配件不同:52还多了一个定时器,所以可以说52是51(这个51是指stc89c51,不是51内核)的增强型。如下图,可以很清晰的看出两者之间的...

相似回答