|
10黑币
本帖最后由 天上的一只猩 于 2018-12-31 09:08 编辑
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
uchar time;
double count=50; //定义占空比,并初始占空比为50%
sbit PWM=P3^0; //P2^0口输出PWM
void timer0_(); //定时器0初始化
/**************定时0中断处理******************/
void timer0() interrupt 1
{
TR0=0;
TH0=(65536-10)/256;
TL0=(65536-10)%256;
TR0=1;
time++;
if(time>100)
time=0;
if(time<=count)
PWM=1;
else
PWM=0;
}
/*********主函数********************/
void main()
{
TMOD=0x01; //定时器0工作于方式1
TH0=(65536-10)/256;
TL0=(65536-10)%256;
EA=1;
ET0=1;
TR0=1;
while(1)
{
}
}
程序中可以看出pwm周期为1ms 而仿真中根据示波器格数来看 周期却为22ms 不知大问题出在了哪里 有没有朋友指导一下 很急
|
|