使用定时器输出方波,但方波不是标准的占空比为50%,第一,二个高电平时间为100us,第三个变成170us,如此反复
程序如下
#include <reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit EN = P2^1; //test
sbit DIR = P2^2; //test
sbit STEP = P2^3; //test
void InitTimer0(void);
//void zhengzhuan(void);
void InitTimer0(void)
{
TMOD = 0x02; //定时器0方式2,8位计数,自动重载
TH0 = 0xa4 ; //定时100us,脉冲频率10khz,占空比50%
TL0 = 0xa4 ;
ET0 = 1;
EA = 1;
TR0 = 1;
}
void Timer0Interrupt(void) interrupt 1
{
STEP = ~STEP; //翻转
}
/*void zhengzhuan(void)
{
InitTimer0();
} */
void main()
{
EN = 0;
DIR = 0;
STEP = 1;
//zhengzhuan();
InitTimer0();
}
请问程序有问题吗?谢谢
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
一周热门 更多>