#include<reg52.h>
#include <intrins.h>
#define uint unsigned int
#define uchar unsigned char
sbit pwm =P2^1;
uint count=0,timer1=0,value=0;
bit DIR=1;
void main()
{
TMOD=1;
TH0=(65536-1)/256;
TL0=(65536-1)%256;
EA=1;//开总中断
ET0=1;//开定时器0中断
TR0=1;//TR0置位,启动定时器
while(1)
{
if(timer1>value)
{
pwm=0;
}
else
{
pwm=1;
}
}
}
void time0() interrupt 1 using 1
{
TH0=(65536-1)/256;
TL0=(65536-1)%256;
timer1++;
count++;
if(timer1>500)
{
timer1=0;
}
if(count>100)
{
count=0;
if(DIR==1)
{
value++;
}
if(DIR==0)
{
value--;
}
}
if(value==500)
{
DIR=0;
}
if(value==0)
{
DIR=1;
}
}
到底哪个是周期?哪一个是调节占空比的参数?这个程序不懂==求教了
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
TL0=(65536-1)%256;
这是设置周期的
所以100为周期,value和timer1值决定占空比的大小。
一周热门 更多>