#include<reg51.h>
#define uchar unsigned char
#define uint unsigned int
sbit a1=P3^5;
sbit a2=P3^6;
sbit a3=P3^7;
uint zhrun=0;
uint farun=0;
uint stop=0;
void moto(uchar n);
void interrupt0()interrupt 0{
uchar i;
EA=0;
if(a1==0)
{
for(i=4;i>0;i--){
zhrun=1;
}
}
if(a2==0){
for(i=4;i>0;i--){
farun=1;
}
}
if(a3==0){
for(i=10;i>0;i--)
{
stop=1;
}
}
EA=1;
EX0=1;
IT0=0;
}
void moto(uchar n)
{
uchar idata zheng[]={0x08,0x0c,0x06,0x02,0x03,0x01,0x09};
uchar idata fan[]={0x09,0x01,0x03,0x02,0x06,0x0c,0x08};
uchar m,l=0;
if(zhrun==1)
{
for(m=0;m<n;m++)
{
P1=zheng[l];
l++;
if(l==8)
l=0;
}
}
else
if(farun==1)
{
for(m=0;m<n;m++)
{
P1=fan[l];
l++;
if(l==8)
l=0;
}
}
else
if(stop==1)
{
P1=0x00;
}
}
void main()
{
EA=1;
EX0=1;
IT0=0;
while(1)
{
moto(4);
}
}
这个程序,用proteus仿真,电机不转啊。
图我传不上来,哪位高手帮忙看下啊,哪里出问题了。
新手上路,多多关照。 |