我写了一段关于PWM的程序,可是在执行的时候却不是我想要的那个引脚,一会儿是P3^2一会儿是P1……等等,请问一下这是这么回事
说说具体的情况吧,把程序拿出来,只要你设置好了 是不会有问题的真的;
给你一个程序吧:
#include
#define uchar unsigned char
#define uint unsigned int
sbit ENA=P1^0; /* L298的Enable A */
sbit IN1=P1^1; /* L298的Input 1 */
sbit IN2=P1^2; /* L298的Input 2 */
uchar i,j;
void main()
{
TMOD=0x03; /* 设定T0的工作模式为3 */
TH0=0x06; //给TH0初值,控制方波周期
TL0=0xA0; //给TL0初值,控制低电平时间;(TH0
EA=1; /* 开中断 */
ET0=1; /* 定时器0允许中断 */
ET1=1;//定时器1允许中断 TF1
TR0=1; /* 启动定时器0 */
TR1=1;
IN1=0;
IN2=1;
ENA=1;
while(1);
}
void timer0() interrupt 1 //TL0加到255中断,执行该程序
{
i++;
TL0=0xA0;
if(i==10)
{
TR0=0;
IN1=1;
i=0;
}
}
void timer1() interrupt 3 //TH0加到255中断,执行该程序
{
j++;
TH0=0X06;
if(j==10)
{
IN1=0;
TR0=1;
j=0;
}
}
希望对你有用哈