今天写了一个小程序,用
单片机定时器产生一个PWM波,用定时器1产生一个波形,使P2^2口输出一个周期2秒的波,占空比是50%,可是为什么用
proteus仿真是周期不对啊?是程序不对啊还是仿真不对啊?求高手指点,菜鸟在此感谢。。。下面是程序和图片。
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit pwm=P2^2;
uint N;
void main()
{
TMOD=0X01;
TH1=(65636-50000)/256;
TL1=(65636-50000)%256;
EA=1;
ET1=1;
TR1=1;
while(1);
}
void T1_
time() interrupt 3
{
TH1=(65636-50000)/256;
TL1=(65636-50000)%256;
N++;
if(N>40)
N=0;
if(N<=20)
pwm=1;
else
pwm=0;
}
对啊,我用的定时器1,所以TMOD应该是TMOD=0x10;我只用了定时器1,所以应该改成0x01就可以吧?我仿真试过了,是对的,谢谢高手指点,谢谢。。。不过你看我下面的波形,为什么不是标准的方波呢?能指点一下吗?
一周热门 更多>