|
![](static/image/common/ico_lz.png)
楼主 |
发表于 2013-3-12 17:54:28
|
显示全部楼层
chensheng00 发表于 2013-3-12 17:53 ![](static/image/common/back.gif)
我设置定时器0控制周期的,定时器1是控制占空比,所以定时器一定比定时器0的时间少啊 ...
/*定时器赋初值----------------*/
unsigned char pwm_on;
sbit pwm_out=P2^4;//pwm输出端口
void TimerInit(void)
{
TMOD=0x11;//定时器0和定时器1工作于模式一
TH0=(65536-pwm_on)/256;//设置占空比为pwm_on,
TL0=(65536-pwm_on)%256;
ET0=1;//打开定时器中断
TR0=1;//启动定时器0
TR1=0;
ET1=1;
EA=1;//开总中断
}
void main()
{
pwm_on=20;//占空比设置
pwm_out=1;
Lcd_Init();//LCD初始化
TimerInit();
while(1)
{
DataProcessing ();//数据处理
Display();
}
}
//中断控制pwm
void Timer0irp (void) interrupt 1
{
TR0=0;
pwm_out=1;
TH1=(65536-50+pwm_on)/256;
TL1=(65536-50+pwm_on)%256;//由定时器0设置占空比,周期为50us
TR1=1;
}
void Timer1irp (void) interrupt 3
{
TR1=0;
pwm_out=1;
TH0=(65536-pwm_on)/256;//
TL0=(65536-pwm_on)%256;
TR0=1;
} |
|