您的位置 首页 ADAS

stc12c5a60s2单片机spwm产生程序带仿真文件

包含文件和仿真文件的下载地址:http:www51heicomfstc12c5a60s2_spwmzip下面是主程序部分:includestch>includesinh>defi

包括文件和仿真文件的下载地址:http://www.51hei.com/f/stc12c5a60s2_spwm.zip

下面是主程序部分:
#include
#include

#define uint unsigned int

uchar index;
uchar a;
void init_pca(void)//pca计数器初始化函数

{

CMOD=0x04;//计数器0的溢出为PCA计数器的时钟源

CCON=0x00;

CCAPM0=0x42;//8位PWM输出,无中止

CL=0x00;//清零pca计数器

CH=0x00;

CCAP0L=pwm[0]; //初始化spwm输出的占空比

CCAP0H=pwm[0];

CR=1;//运转adclass=0&app_id=0&c=news&cf=1001&ch=0&di=128&fv=17&is_app=0&jk=25357d4a26439b28&k=pca&k0=pca&kdi0=0&luki=3&n=10&p=baidu&q=98059059_cpr&rb=0&rs=1&seller_id=1&sid=289b43264a7d3525&ssp2=1&stid=0&t=tpclicked3_hc&tu=u1831118&u=http%3A%2F%2Fwww%2E51hei%2Ecom%2Fmcu%2F2118%2Ehtml&urlid=0″ id=”5_nwl” mpid=”5″ target=”_blank”>pca计数器

}

void init_timer(void)//计数器初始化函数

{

TMOD= 0x12; //计数器0作业在方法形式2,计数器1作业在方法1

TH0 = 0xFF;//T0的计数值为5,把时钟源5分频

TL0 = 0xFF;

TH1 = 0xF6;//T1的计数值为625,若是12M晶振,则中止频率为12M/625=1920HZ,正弦频率为1920/32=600HZ,即600/12=50HZ

TL1 = 0xA0; //T1的计数值低位

AUXR=0x80;//计数器均作业在8051速度

//ET0 = 1; //开中计数器0断

ET1 = 1; //开计数器1中止

TR0 = 1; //敞开计数器0

TR1 = 1; //开计数器1

}

void int_timer1(void) interrupt 3//计数器1中止函数

{

CR=0;
a=a+1;
index++; //查表索引

TH1=0xFD; //重装计数值

TL1=0x8F;

CCAP0H=pwm[index%32]*2;//改动pwm的占空比

CR=1;

}
void main()
{a=0;
EA=1;//开总中止
init_pca();
init_timer();
while(1);
//-.-//
}

声明:本文内容来自网络转载或用户投稿,文章版权归原作者和原出处所有。文中观点,不代表本站立场。若有侵权请联系本站删除(kf@86ic.com)https://www.86ic.net/qiche/adas/318330.html

为您推荐

联系我们

联系我们

在线咨询: QQ交谈

邮箱: kf@86ic.com

关注微信
微信扫一扫关注我们

微信扫一扫关注我们

返回顶部