• 大小: 23KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-06-08
  • 语言: 其他
  • 标签: PWM控制  

资源简介

用STC12C5A60S2控制直流电机,PWM控制转速,按键s1、s2控制加速减速 因只控制一路电机所以只用到一路PWM,若用到两路则打开另一路即可

资源截图

代码片段和文件信息

/**************************************************************
用STC12C5A60S2控制直流电机,PWM控制转速,按键s1、s2控制加速减速
因只控制一路电机所以只用到一路PWM,若用到两路则打开另一路即可
***************************************************************/
#include //头文件
sbit s1 = P2^3;//加速控制
sbit s2 = P3^7;//减速控制
unsigned int z;
//*********************//延时程序
void delay_ms(unsigned int time)
{
int xy;
for(x=time;x>0;x--)
 for(y=115;y>0;y--);//229
}
//******************************
//******************PWM初始化程序
void PWM_init (void)
{
CMOD=0x02; //设置PCA定时器
  CL=0x00; 
  CH=0x00;
CCAPM0=0x42; //PWM0设置PCA工作方式为PWM方式(0100 0010)
  CCAP0L=0x00; //设置PWM0初始值与CCAP0H相同
  CCAP0H=0x00; // PWM0初始时为0

CCAPM1=0x42; //PWM1设置PCA工作方式为PWM方式(使用时删除//)
CCAP1L=0x00; //设置PWM1初始值与CCAP0H相同
  CCAP1H=0x00; // PWM1初始时为0
  CR=1; //启动PCA定时器
}
//******************************
/**********************************************************************************************/
/*********************************************************************************************
函数名:PWM0占空比设置函数
调  用:PWM0_set();
参  数:0x00~0xFF(亦可用0~255)
返回值:无
结  果:设置PWM模式占空比,为0时全部高电平,为1时全部低电平
备  注:如果需要PWM1的设置函数,只要把CCAP0L和CCAP0H中的0改为1即可
/**********************************************************************************************/
void PWM0_set (unsigned char a)//PWM0是IO口P1.3
{
CCAP0L= a; //设置值直接写入CCAP0L
  CCAP0H= a; //设置值直接写入CCAP0H
}
/*
void PWM1_set (unsigned char a)//PWM0是IO口P1.4
{
CCAP1L= a; //设置值直接写入CCAP1L
  CCAP1H= a; //设置值直接写入CCAP1H

}*/
/**********************************************************************************************/
void main ()
{
PWM_init(); //PWM初始化
PWM0_set (0);
PWM0_set (z);
z=250;
while(1)
{
PWM0_set (z);// PWM信号输出
  //delay_ms(500);
if(s2==0)
{
delay_ms(50);
if(s2==0)
{
while(s2==0);//等待按键松开 
if((z+5)<250)   
{  
  z+=5;
}
PWM0_set (z);
 }
 }    
if(s1==0)
{
delay_ms(50);
if(s1==0)
{
while(s1 == 0);//等待按键松开
if(z>=5)   
 {  
   z-=5;
 }
PWM0_set(z);
}
}
}
}

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件       2409  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\main.c

     文件       5586  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\main.LST

     文件       3913  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\main.OBJ

     文件       3458  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM

     文件        613  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.hex

     文件         39  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.lnp

     文件       5693  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.M51

     文件        971  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.opt.bak

     文件        379  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.plg

     文件       2100  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.Uv2.bak

     文件      73137  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM.uvopt

     文件      13226  2019-01-17 12:14  STC12C5A60S2内部PWM-DA程序\PWM.uvproj

     文件       1134  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM_Opt.Bak

     文件          0  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\PWM_Uv2.Bak

     文件      17800  2019-01-17 12:13  STC12C5A60S2内部PWM-DA程序\STC12C5A60S2.h

     目录          0  2019-01-17 12:14  STC12C5A60S2内部PWM-DA程序

----------- ---------  ---------- -----  ----

               130458                    16


评论

共有 条评论