用51单片机用PWM调速C语言程序怎么写·····

如题所述

给个我自己写的程序你,我试过了,通过!
#include
#define
uchar
unsigned
char
#define
uint
unsigned
int
sbit
P0_0=P0^0;
uchar
a;
/*********************************************
*
TH0和TL0是计数器0的高8位和低8位计数器,
*
计算办法:TL0=(65536-C)%256;
*
TH0=(65536-C)/256,
*
其中C为所要计数的次数即多长时间产生一次中断;
*
TMOD是计数器工作模式选择,0X01表示选用模式1,
*
它有16位计数器,最大计数脉冲为65536,最长时间
*
为1ms*65536=65.536ms
*
*********************************************/
void
init_sys(void);
/*系统初始化函数*/
void
main
(void)
{
init_sys();
while(1);
}
void
init_sys(void)
{
TMOD=0x01;
TH0=(65536-10000)/256;
TL0=(65536-10000)%256;
EA=1;
ET0=1;
TR0=1;
}
void
timer0(void)
interrupt
1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
a++;
if(a<=3)
{
P0_0=1;
if(a==3)
//改变低电平持续时间
{
//也即改变占空比
P0_0=~P0_0;
}
}
else
{
P0_0=0;
if(a==5)
//改变周期
{
a=0;
}
}
}
温馨提示:答案为网友推荐,仅供参考
第1个回答  2020-07-02
含糊其辞,不明不白。
其实,出题人也不想,要答案。本回答被提问者采纳