51单片机方波调频率、占空比

谁能把这个程序产生方波的频率改为10Khz?#include<reg51.h>//用定时器0控制PWMsbitP1_0=P1^0;//P1.0PWM输出sbitkey10... 谁能把这个程序产生方波的频率改为10K hz?

#include<reg51.h> // 用定时器0 控制 PWM
sbit P1_0 = P1^0; // P1.0 PWM 输出
sbit key10 = P3^2; // 调节 PWM0 占空比 按键
sbit key11 = P3^3;
unsigned char PWM0 = 2; // 占空比调整
unsigned char counter = 0; // 计数的
bit tt1; // 标志位
void main() // 主函数
{
TMOD=0x10;
TH1=(65536-50)/256; // 定时时间 可以修改
TL1=(65536-50)%256; // 12 MHz
EA=1; // 中断启动
ET1=1;
TR1=1;
while(1)
{ // 调节 PWM0 占空比
if(key10==0 && tt1==0) {tt1 = 1; PWM0++;} // K1、K2
if(key11==0 && tt1==0) {tt1 = 1; PWM0--;}
if(key10==1 && key11==1) tt1=0;
}
}
void Timer0(void) interrupt 3 // 定时器0 PWM 控制
{
TH1=(65536-50)/256; // 定时时间 可以修改
TL1=(65536-50)%256;
counter++;
if(counter >= 20) counter = 0; // PWM 20级 可以修改
if(counter >= PWM0) P1_0 = 0; else P1_0 = 1;
}
展开
 我来答
H00H00H00Hb0cdc8e
2013-09-05
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
原理是进一次“T0中断”看一看counter走到哪里。。周期是由counter=20*溢出周期控制的。还有。在T0中断里设置T1是不会幸福的。。。占空比是由PWM0的位置决定的。在counter走到PWM0之前高电平,走到之后低电平。
还有,这个程序提供的占空比发生方式很糟糕。。步数少、难控制、容易溢出,比如PWM0>20、稍微不耗资源。可以试着用两个中断分别控制周期和占空比。
光派通信
2024-09-03 广告
波分复用(WDM)技术是一种在光纤通信中广泛应用的技术,它允许在同一根光纤中同时传输多个不同波长的光信号。这些光信号在发送端通过复用器合并,然后在光纤中传输,最后在接收端通过解复用器分离并恢复成原始信号。WDM技术极大地提高了光纤的传输容量... 点击进入详情页
本回答由光派通信提供
huming1a
2013-09-07
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部
改counter即可,计算运行的指令周期
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
GUEL86
2013-09-05
知道答主
回答量:0
采纳率:0%
帮助的人:0
展开全部

试试这个很简单的仿真实例,频率 占空比 都可以调节。

更多追问追答
追问
这个是做的不错,可是我不太懂原理,我想知道在程序中调哪个地方可以改变初始频率,调哪里能改变初始占空比
追答
if(key12==0 && tt2==0) {tt2 = 1; TH1++;} // K2、K3  频率 +
if(key13==0 && tt2==0) {tt2 = 1; TH1--;} // 频率 -
if(key12==1 && key13==1) tt2=0;
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式