要得到15k以内可调节pwm波形输出程序设计怎么做?

51单片机咋样产生占空比,频率可变的PWM波_百度知道
51单片机咋样产生占空比,频率可变的PWM波
void timer0() interrupt 1{ TH0=()/256; TL0=()%256; t++; if(t==a) {
pwm=~ }} 这是控制周期的,你帮我看看有什么问题吗void timer1() interrupt 1{
i++; if(i==5000) {
j=j%100; } if(j&b) {pwm=1;} else {pwm=0;}}这是控制占空比的,再帮我看看
提问者采纳
看了下你的控制周期的函数,pwm是周期还是占空比?只需要一个定时器就可以了 void timer0() interrupt 1{
TH0=()/256;
TL0=()%256;
if(ZQ)// 周期
if(ZKB)//占空比
IO = 1;//控制占空比的单片机输出口
ZQ=100;//如果你需要ZQ和ZKB可调可以定义一个变量a,b;ZQ=a;ZKB=b;
ZKB=30;//注意ZKB要小于ZQ
提问者评价
其他类似问题
为您推荐:
其他1条回答
就看你用的什么芯片了,看你也是新手,用的是51吧 ?
51的话 直接修改定时中断的定时时间就可以改变频率,修改高电平的定时时间,就能改变 占空比。-ARM的话--直接修改匹配0的值 就能改变PWM频率(MR0),修改其他匹配就能改变占空比,毕竟在ARM单边极性匹配中断时候,第一次复位时候,总是以高电平起始,会自动拉高!希望回答能给你点帮助,不过你问的问题不够仔细,都不知道你想做什么,所以也不知道如何回答的好!
按键控制。你能帮我看看我的程序有什么问题吗*** WARNING L16: UNCALLED SEGMENT, IGNORED FOR OVERLAY PROCESS
SEGMENT: ?PR?INIT0?TEXT1*** WARNING L5: CODE SPACE MEMORY OVERLAP
000DH总显示有两个警告,程序烧进去么有反应,总是高电平。。。
51单片机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁我想问一下~那个~用STC89C52单片机产生一个PWM波的C语言程序怎么写啊?_百度知道
我想问一下~那个~用STC89C52单片机产生一个PWM波的C语言程序怎么写啊?
具体的是用STC89C52单片机产生一个PWM波,经过一个功率放大电路作用于一个外接喇叭,使喇叭发声。不太会写程序,所以在产生PWM波得程序那个地方卡住了~希望您能帮帮我啊~~~谢谢~~~
提问者采纳
首先89C52内部没有硬件PWM发生器,只能通过定时器模拟!你可以通过两个定时器,T0控制周期,T1控制占空比。例如:实现周期为1000us,占空比为20%的PWM,用P1.0实现首先你设置T0为
(12M晶振)T1为首先初始化P1.0=1,两个定时器同时打开,在定时器T1中断时拉低P1.0,在定时器T0中断时在拉高P1.0,同时将两定时器初始值初始化T0为
,T1为希望对你有用,呵呵!!!
用1个定时器的话不可以吗???
可以的,但是这就要用一个变量count1 来控制周期和占空比了,比如说你设置1周期为10ms,占空比还是为20%的PWM,你可以设置定时器为每10us产生一次中断,没中断一次使count加1,一开始设置P1.0为高电平,当count1加到200的时候拉低P1.0,等count1到1000了在拉高P1.0,同时复位count1=0,不过这样做的缺点是精度不高,要是PWM所需周期段,精度高的话我还是建议用两个定时器来实现 ,我在这里没有给你具体的代码,我觉得把原理讲清楚猜是最重要的,什么都是才来就上代码,这个对你学习不利,希望对你有用,呵呵!!!!
提问者评价
其他类似问题
为您推荐:
其他3条回答
我记得上次我做这个的时候是用单片机产生两个正弦波,在用这两个正弦波合成第三个正弦波,这三个正弦波只有相位不同,最后将这三个正弦波合成一个PWM波形,都做了快2年了,所以基本上都忘了。
具体程序我也没有了我的思路当时是这样的:首先设定一个定时,比如说是5us,然后设置一个变量count,设置好周期如果是500us,那么,用count控制占空比,如,占空比是50%时,可以将count设置成50,如果占空比是实时变化的,那么可以用一个变量代替count
#include&reg52.h&
sbit led=P1^1;
#define uchar unsigned char
#define uint unsigned int
uchar pwm=0,aa=0;
void delay(uint);
void delays();
TMOD|=0x01; // 定时器初始化
TH0=()/256;// 给定时器赋值
TL0=()%256;//给定时器赋值
EA=1; // 开总中断
ET0=1; //开定时器0中断
TR0=1; //启动定时器
while(!flay)
//pwm表示占空比
delay(20);//延时大约20毫秒 保证pwm每增加一次都会进入中断
if(pwm==100)
//上面这段代码 占空比增加
来自:求助得到的回答
c语言程序的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁利用PWM波调节直流电机转速时为什么要设置频率?_百度知道
利用PWM波调节直流电机转速时为什么要设置频率?
调节占空可以改变输出的能量,但是转速和频率有何关系,难以理解,求助
提问者采纳
你说的频率,是指PWM的方波的频率,也称开关频率或载波频率。这个频率与电机转速无关,相对而言,频率越高,电流纹波越小,但是,电源的损耗越高,因此,调节频率的主要原则是电流纹波满足要求的情况下,开关频率适当低。直流电机通过调节电压改变转速,对于PWM电源而言,调节PWM的占空比就可改变输出电压的平均值,从而改变电机的电流很转速。
提问者评价
按照你说的,真的成功了,好开心,谢谢你!
来自团队:
其他类似问题
为您推荐:
其他1条回答
PWM调速原理
PWM调速方法通常采用功率场效应管作为主开关元件,通过改变开关元件的导通方式及通断比来改变输出电压的大小与极性
您可能关注的推广回答者:
直流电机的相关知识
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁求555产生PWM,频率15K,占空比可调的电路_百度知道
求555产生PWM,频率15K,占空比可调的电路
求用NE555做的
频率10K-15K
占空比用电位器调节的电路。用来给电调提供模拟的遥控信号,做测试用的,单片机的需要AD,太麻烦了,成本也太高。
为您推荐:
您可能关注的推广
占空比的相关知识
其他2条回答
搜网页,这个网上很多
单片机需要AD吗!!!!!!
看来你还不太懂单片机。给你个程序,之前没事写的,你来再完善一下,就是调一下频率,改变定时器的值即可。
*这段程序是通过P1_0口输出可调占空比的PWM信号,
它的占空比在不断的从0%到100%的循环
作者:郑水生
#include &at89x51.h&//晶体为12MHz,PWM信号周期为250Hz
#define Data P1_0
//PWM信号输出端
#define key_up P1_1 //+duty
#define key_down P1_2//-duty
unsigned char duty=1;//默认开机duty为1%
void main()
key_down=1;
TMOD=0x01;//定时器1
if(key_up==0)
while(key_up==0)
if(key_down==0)
等待您来回答
下载知道APP
随时随地咨询
出门在外也不愁21ic官方微信
后使用快捷导航没有帐号?
查看: 3058|回复: 17
89C52可不可以发生10路或以上的PWM波?
&&已结帖(20)
主题帖子积分
中级技术员, 积分 147, 距离下一级还需 153 积分
中级技术员, 积分 147, 距离下一级还需 153 积分
主题帖子积分
专家等级:结帖率:60%
主题帖子积分
中级技术员, 积分 147, 距离下一级还需 153 积分
中级技术员, 积分 147, 距离下一级还需 153 积分
我知道中断可以发生两路不同的PWM波,用来控制舵机的。
但我想做多路的PWM波控制多个多个舵机。
不知道分时产生PWM波可不可以呢?
最好说一下思路和大概的C程序。。。。
满意回复+10
如果是航模舵机,我记得好像周期是20MS,占空1MS--2MS,
不太确定。
周期是相同了,从最小到最大是1MS间隔,分成多少份呢, 假设分成100份就是每份10US, ...
89C52本身硬件没有这么多的PWM,如果10路PWM的频率一样,也许用软件模拟可以跑出来,这需要看具体项目的要求。
建议你使用PWM扩展芯片,直接扩展10路硬件PWM出 ...
要舍得买好片子
主题帖子积分
主题帖子积分
专家等级:结帖率:58%
主题帖子积分
89C52本身硬件没有这么多的PWM,如果10路PWM的频率一样,也许用软件模拟可以跑出来,这需要看具体项目的要求。
建议你使用PWM扩展芯片,直接扩展10路硬件PWM出来做。
一:我的回帖多数只是猜测/估计/想象,建立在我现有知识结构的理解和分析上,多数都没有动手实际检验过,请斟酌采纳.
二:若对我的技术类主帖或回帖有异议,欢迎讨论,拒绝过激攻击或辱骂,否则全站追杀屏蔽发帖,后果自负.
三:对本人的其它意见,请直接向站长投诉,勿使用站内短信骚扰/挑衅/辱骂,否则将全站追杀屏蔽发帖,后果自负.
主题帖子积分
技术总监, 积分 38426, 距离下一级还需 11574 积分
技术总监, 积分 38426, 距离下一级还需 11574 积分
主题帖子积分
专家等级:结帖率:3%
主题帖子积分
技术总监, 积分 38426, 距离下一级还需 11574 积分
技术总监, 积分 38426, 距离下一级还需 11574 积分
关键是频率,精度指标要求
主题帖子积分
中级技术员, 积分 147, 距离下一级还需 153 积分
中级技术员, 积分 147, 距离下一级还需 153 积分
主题帖子积分
专家等级:结帖率:60%
主题帖子积分
中级技术员, 积分 147, 距离下一级还需 153 积分
中级技术员, 积分 147, 距离下一级还需 153 积分
PWM扩展芯片可以用51单片机控制的么?
主题帖子积分
主题帖子积分
专家等级:结帖率:84%
主题帖子积分
这么多,速度,精度可能就。。。
& & 好久不嚼槟榔
主题帖子积分
主题帖子积分
专家等级:结帖率:84%
主题帖子积分
如果是航模舵机,我记得好像周期是20MS,占空1MS--2MS,&&不太确定。
周期是相同了,从最小到最大是1MS间隔,分成多少份呢, 假设分成100份就是每份10US,
& & 好久不嚼槟榔
主题帖子积分
中级工程师, 积分 4548, 距离下一级还需 452 积分
中级工程师, 积分 4548, 距离下一级还需 452 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级工程师, 积分 4548, 距离下一级还需 452 积分
中级工程师, 积分 4548, 距离下一级还需 452 积分
10us的脉宽用单片机需要bus频率最好在4M以上,否则单片机压力太大
主题帖子积分
主题帖子积分
专家等级:结帖率:44%打赏:0.20受赏:1.00
主题帖子积分
要舍得买好片子
qq群: 嵌入式系统arm初学者 ←← +→→←←+ →→微信订阅号:蚂蚁河技术←←←←
主题帖子积分
主题帖子积分
专家等级:结帖率:98%
主题帖子积分
主要是看你对频率和精度的要求了。
先思而后动~
生活迢迢几十秋,几处安乐;人生寥寥数十载,何不快活。!
主题帖子积分
初级技术员, 积分 57, 距离下一级还需 43 积分
初级技术员, 积分 57, 距离下一级还需 43 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 57, 距离下一级还需 43 积分
初级技术员, 积分 57, 距离下一级还需 43 积分
主要看要求。。和精确度啦。
主题帖子积分
初级技术员, 积分 81, 距离下一级还需 19 积分
初级技术员, 积分 81, 距离下一级还需 19 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
初级技术员, 积分 81, 距离下一级还需 19 积分
初级技术员, 积分 81, 距离下一级还需 19 积分
做个定时器,时间到就输出个电平就是
主题帖子积分
助理工程师, 积分 1485, 距离下一级还需 515 积分
助理工程师, 积分 1485, 距离下一级还需 515 积分
主题帖子积分
专家等级:结帖率:70%
主题帖子积分
助理工程师, 积分 1485, 距离下一级还需 515 积分
助理工程师, 积分 1485, 距离下一级还需 515 积分
那么推荐一些片子呢
充实灵魂,满足自己。做生活的强者,当时代的勇士!!!
主题帖子积分
资深工程师, 积分 12294, 距离下一级还需 7706 积分
资深工程师, 积分 12294, 距离下一级还需 7706 积分
主题帖子积分
专家等级:结帖率:90%
主题帖子积分
资深工程师, 积分 12294, 距离下一级还需 7706 积分
资深工程师, 积分 12294, 距离下一级还需 7706 积分
看看下面这个链接
主题帖子积分
中级技术员, 积分 217, 距离下一级还需 83 积分
中级技术员, 积分 217, 距离下一级还需 83 积分
主题帖子积分
专家等级:结帖率:71%
主题帖子积分
中级技术员, 积分 217, 距离下一级还需 83 积分
中级技术员, 积分 217, 距离下一级还需 83 积分
本帖最后由 potter 于
09:05 编辑
pwm扩展芯片有哪些?&&pwm要频率可调 占空比可调
主题帖子积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
主题帖子积分
专家等级:结帖率:0%
主题帖子积分
实习生, 积分 3, 距离下一级还需 47 积分
实习生, 积分 3, 距离下一级还需 47 积分
不用外接芯片,直接用拥有硬件PWM功能的单片机就行了,推荐SONIX的SN8P2523或者SN8P2735性价比很高,有8路以上硬件PWM功能。51单片机该退休了。高档点的上STM8S或者STM32。
主题帖子积分
中级工程师, 积分 4229, 距离下一级还需 771 积分
中级工程师, 积分 4229, 距离下一级还需 771 积分
主题帖子积分
专家等级:结帖率:60%
主题帖子积分
中级工程师, 积分 4229, 距离下一级还需 771 积分
中级工程师, 积分 4229, 距离下一级还需 771 积分
频率低的话,自己模拟吧,只要IO口数够,多少路都可以。
E精灵淘宝店&&
全系列STM32开发板 、电机评估套件 、实验箱
博客:.cn/u/
主题帖子积分
中级工程师, 积分 3082, 距离下一级还需 1918 积分
中级工程师, 积分 3082, 距离下一级还需 1918 积分
主题帖子积分
专家等级:结帖率:100%
主题帖子积分
中级工程师, 积分 3082, 距离下一级还需 1918 积分
中级工程师, 积分 3082, 距离下一级还需 1918 积分
在用PWM之前,需要先搞清楚一个问题,你是单纯需要PWM还是既要单片机做其它的事,还要PWM输出还不影响单片机运作。如果只是同频PWM输出,用单片机定时器做吧,只要IO口够,要多少组都没问题。
工作不养闲人,团队不养懒人。赚不到钱赚知识,赚不到知识赚经历,赚不到经历赚阅历,让人迷茫的原因只有一个,那就是本该拼搏的年纪,却想得太多,做的太少!
主题帖子积分
高级技术员, 积分 575, 距离下一级还需 425 积分
高级技术员, 积分 575, 距离下一级还需 425 积分
主题帖子积分
专家等级:结帖率:75%
主题帖子积分
高级技术员, 积分 575, 距离下一级还需 425 积分
高级技术员, 积分 575, 距离下一级还需 425 积分
终身成就奖章
等级类勋章
坚毅之洋流
发帖类勋章
时间类勋章
技术领袖奖章
人才类勋章
荣誉元老奖章
等级类勋章
突出贡献奖章
等级类勋章
沉静之湖泊
发帖类勋章
核心会员奖章
等级类勋章
社区建设奖章
等级类勋章
欢快之小溪
发帖类勋章
时间类勋章
技术高手奖章
人才类勋章
技术奇才奖章
人才类勋章
时间类勋章
技术导师奖章
人才类勋章
湍急之河流
发帖类勋章
精华达人奖章
等级类勋章
时间类勋章
技术新星奖章
人才类勋章
涓涓之细流
发帖类勋章
热门推荐 /2

我要回帖

更多关于 stm32产生pwm波 的文章

 

随机推荐