实验科目:设定外部信号发生器每2s钟,产生一个下降沿,作为外部中断源,中断处理完成led灯的闪烁一次,以及控制步进电机旋转一圈。
一,所需元器件
二,电路图/原理图
三,代码
#include<reg51.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
#define out2 P2 //步进电机控制口
void step();
void LED();
void delayms(uint j);
uchar code turn[]={0x02,0x06,0x04,0x0c,0x08,0x09,0x01,0x03};//步进电机旋转码
void main()
{
while(1)
{
EA=1;
EX0=1;
IT0=1;// 外部中断0工作方式(下降沿有效)
TR0=1;//开启中断
}
}
void LED()
{
P0=0xfe;
delayms(300);
P0=0xff;
}
void step()//步进电机
{
uchar i=0;
for(i;i<8;i++)
{
out2=turn[i];
delayms(50);
}
}
void time0() interrupt 0
{
LED();
step();
}
void delayms(uint j)
{
uchar i;
for(;j>0;j--)
{
i=250;
while(--i);
i=249;
while(--i);
}
}