📄 text_guandian.c
字号:
//2个光电传感器//2中断//
#include"reg51.h"
#define uchar unsigned char
#define uint unsigned int
sbit STK_CP1=P1^3;
sbit STK_DIR1=P1^2;
sbit STK_CP2=P1^1;
sbit STK_DIR2=P1^0;
bit youzhuan,zuozhuan;
uchar n1;
uint n2;
void time0() interrupt 1
{ TR0=0;
TH0=0xf8; TL0=0x30; //2ms
TR0=1;
if(youzhuan==0)
STK_CP1=~STK_CP1;
if(zuozhuan==0)
STK_CP2=~STK_CP2;
if(youzhuan==1)
{ n1++;
if(n1==3) //6ms
{ n1=0;
STK_CP1=~STK_CP1;
n2++;
if(n2==200)
{ youzhuan=0;
n2=0;
}
}
}
if(zuozhuan==1)
{ n1++;
if(n1==3) //6ms
{ n1=0;
STK_CP2=~STK_CP2;
n2++;
if(n2==200)
{ zuozhuan=0;
n2=0;
}
}
}
}
void int0() interrupt 0
{ youzhuan=1;
n1=0;
n2=0;
zuozhuan=0;
}
void int1() interrupt 2
{ youzhuan=0;
n1=0;
n2=0;
zuozhuan=1;
}
main()
{ EA=0;
TMOD=0x01;
TH0=0xf8; TL0=0x30; //2ms
TR0=1; ET0=1;
IT0=1; EX0=1; PX0=1;
IT1=1; EX1=1; PX1=1;
EA=1;
STK_DIR1=1; //电机方向
STK_DIR2=0;
while(1)
{ TR0=1; ET0=1;
TR1=1; ET1=1;}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -