社区
单片机/工控
帖子详情
STC12C5A60S2的PWM输出频率
yangjinCK
2010-10-18 09:09:59
让这个单片机4秒一次不停的输出一个频率f=0.125Hz
这个该怎么做呢
小弟刚刚才学
不懂啊
这个用其他型号的单片机来做是不是一样的啊
请大侠们指教啊
...全文
1713
11
打赏
收藏
STC12C5A60S2的PWM输出频率
让这个单片机4秒一次不停的输出一个频率f=0.125Hz 这个该怎么做呢 小弟刚刚才学 不懂啊 这个用其他型号的单片机来做是不是一样的啊 请大侠们指教啊
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
LabVIEW解题
2010-11-14
打赏
举报
回复
/*STC89C52RC 12M晶振。
让STC89C52的P1口8路输出多路的PWM脉冲输出
程序采集快速循环方式,频率200-300hz,占空比0-100%。把200到300分为10个等级步进,如210hz.占空比为1%步进。
要根据频率与占空比计算出P1某个引脚的高电平时间和低电平时间。
一秒300个脉冲,每个脉冲是用了3mS. 在单片机中整个程序是100uS转一圈
可是最终的仿真结果是330uS左右转一圈,PWM频率只有30多hz.失败。
*/
#include <reg52.h>
char code SST516[3] _at_ 0x003b; //仿真器使用
unsigned int clock,delay; //delay and counter
//定义一路PWM输出所须要的变量
unsigned int frequency1,dutycycle1,cycle100us1,remained1,dutyover1,starttime1;
bit cyclestart1; //开始标致位
sbit output1=P1^7; //输出引脚
//定义第二路PWM输出所须要的变量
unsigned int frequency2,dutycycle2,cycle100us2,remained2,dutyover2,starttime2;
bit cyclestart2; //开始标致位
sbit output2=P1^6; //输出引脚
void outputpwm1 (void)
{
///*
frequency1=200;
dutycycle1=10;
//*/
cycle100us1=10000/frequency1;
if (clock%cycle100us1==0) //一个脉冲的开始
{
output1=0; //0,开始输出
starttime1=clock; //开始初值
}
else
{
if (clock>(dutycycle1*cycle100us1/100+starttime1))
{
output1=1; //1,输出停止
}
}
}
void outputpwm2 (void)
{
///*
frequency2=300;
dutycycle2=70;
//*/
cycle100us2=10000/frequency2;
if (clock%cycle100us2==0) //一个脉冲的开始
{
output2=0; //0,开始输出
starttime2=clock; //开始初值
}
else
{
if (clock>(dutycycle2*cycle100us2/100+starttime2))
{
output2=1; //1,输出停止
}
}
}
void main()
{
//WDT_CONTR = 0x3c; //STC看门狗
while(1)
{
//for(delay=10;delay>0;delay--); //实现100us延时 delay的原始值为50,为了调试方便,加长到50000.
clock++; //实现计数
outputpwm1 ();
outputpwm2 ();
//WDT_CONTR = 0x3c; //STC看门狗
}
}
liuweixiaocainiao
2010-10-20
打赏
举报
回复
4s定时中断一下,执行中断操作咯
yangjinCK
2010-10-18
打赏
举报
回复
[Quote=引用 3 楼 a691662 的回复:]
看你用什么单片机了啊
51就用代码写
像那种高级一点例如飞思卡尔16位的都用脉宽调制系统的 操作一下寄存器即可 具体请看相应Datasheet
[/Quote]
我用的STC89C58RD+
请教哈怎么写这个程序啊
a691662
2010-10-18
打赏
举报
回复
看你用什么单片机了啊
51就用代码写
像那种高级一点例如飞思卡尔16位的都用脉宽调制系统的 操作一下寄存器即可 具体请看相应Datasheet
klplgh
2010-10-18
打赏
举报
回复
在程序中用个循环啊,计时效果
yangjinCK
2010-10-18
打赏
举报
回复
.....来个指定指点的啊
yangminghua6
2010-10-18
打赏
举报
回复
STC12C5A60S2这种单片机有专门脚输出频率,改变内部寄存器设置就行了。
a691662
2010-10-18
打赏
举报
回复
用定时器实现
a691662
2010-10-18
打赏
举报
回复
51单片机 pwm代码
自己搜一下吧
yangjinCK
2010-10-18
打赏
举报
回复
好清静啊
来两个人顶啊
STC12C5A60S2
STC12C5204AD单片机软件DEMO例程源码36例合集.zip
STC12C5A60S2
-两路
PWM
调制
输出
STC12C5A60S2
-串口1-串口2-测试程序
STC12C5A60S2
-串口1-串口2-测试程序asm
STC12C5A60S2
-串口1测试(BRT-500Kbps)
STC12C5A60S2
-串口1测试(Timer1波特率)
STC12C5A60S2
-串口1读ID STC...
STC12C5A60S2
内部
PWM
应用
通过对
STC12C5A60S2
内部PCA模块的理解和应用,我们可以灵活地生成不同
频率
和占空比的
PWM
信号,这对于实际项目中的电机控制、LED亮度调节等场景非常有用。以上实例展示了两种基本的
PWM
信号生成方法,即通过按键动态...
STC12C5A60S2
单片机
PWM
程序
在
STC12C5A60S2
单片机中,可以利用内部的定时器和比较寄存器来生成
PWM
信号。用户可以通过改变
PWM
周期内的高电平时间(占空比)来调整步进电机的速度。 PID控制是工业自动化领域常见的控制策略,它结合了比例(P)、...
STC12C5A60S2
单片机控制
PWM
输出
在
STC12C5A60S2
中,我们可以利用内部的定时器/计数器配置为
PWM
模式,比如使用T0或T1定时器,设置适当的预分频器和比较寄存器值,来生成不同
频率
和占空比的
PWM
波形。 在本项目中,P4口被用来
输出
PWM
信号。STC12C5A...
STC12C5A60S2
_
PWM
.zip_
PWM
_
STC12C5A60S2
_
stc12c5a60s2
_
stc12c5a60s2
在给定的压缩包"
STC12C5A60S2
_
PWM
.zip"中,包含了一个名为"
STC12C5A60S2
_
PWM
.c"的源代码文件,该文件是关于
STC12C5A60S2
的脉宽调制(
PWM
)程序。
PWM
(Pulse Width Modulation)是一种常见的数字信号处理技术,用于...
单片机/工控
27,511
社区成员
28,797
社区内容
发帖
与我相关
我的任务
单片机/工控
硬件/嵌入开发 单片机/工控
复制链接
扫一扫
分享
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章