|
小白求助,中斷程序跳不出來(lái),不能往下執(zhí)行,大神幫忙看看怎么改
#include<reg52.h>
#define uint unsigned int
#define uchar unsigned char
sbit IN1=P3^1;//接IN1 控制正轉(zhuǎn)
sbit IN2=P3^2;//接IN2 控制反轉(zhuǎn)
sbit IN3=P3^3;
sbit IN4=P3^4;
sbit ENA=P3^5; //使能
sbit ENB=P3^6;
uchar time;
void delay(uint);
void head();
void stop();
void configpwm();
void main()
{
configpwm(); /*執(zhí)行完這兩個(gè)語(yǔ)句以后,
head(); 就不往下執(zhí)行stop這條語(yǔ)句了,是哪個(gè)地方不對(duì),大神幫
delay(300); 忙看看怎么改*/
stop();
}
void configpwm()
{
TMOD=0x01;//定時(shí)器0工作方式1
TH0=0xff;//(65536-200)/256;//賦初值定時(shí)
TL0=0xf7;//(65536-200)%256;//0.2ms
EA=1;//開總中斷
ET0=1;//開定時(shí)器0中斷
TR0=1;//啟動(dòng)定時(shí)器0
}
void timer0() interrupt 1
{
TR0=0;//賦初值時(shí),關(guān)閉定時(shí)器
TH0=0xff;//(65536-200)/256;//賦初值定時(shí) +
TL0=0xf7;//(65536-200)%256;//0.2ms
TR0=1;//打開定時(shí)器
time++;
if(time>=100) time=0;//50hz
if(time<=80)
{
ENA=0; //占空比20%
ENB=0;
}
else
{
ENA=1;
ENB=1;
}
}
void head(uint i)
{
IN1=1; //正轉(zhuǎn) 前
IN2=0;
IN3=0;
IN4=1;
}
void stop()
{
IN1=0;
IN2=0;
IN3=0;
IN4=0;
}
void delay(uint z)
{
uint x,y;
for(x=1000;x>0;x--)
{
for(y=z;y>0;y--);
}
}
|
|
|