本次学习应用AT89C51的中断和ULN2003A来分别控制跑马灯和步进电机,我们暂时称这个电路为——旋转木马!!!哈哈哈哈哈!!!(其实没半毛钱关系)
电路:
P1中的五个IO口用来控制LED灯,P2控制步进电机,两个开关分别控制中断0和中断1。值得一提的是,(tmlgbd)ULN2003A的输出开漏,输出端必须接上拉电阻,这毛病老子找了半天…只能说自己学艺不精…害…
程序:
#include"reg52.h"
typedef unsigned char u8;
typedef unsigned int u16;
sbit K1=P3^2;
sbit K2=P3^3;
sbit A1=P2^0;
sbit B1=P2^1;
sbit C1=P2^2;
sbit D1=P2^3;
u16 x=0;
u16 y=0;
void delay(i)//延时函数
{
while(i--);
}
void Int0Init()//外部中断0函数
{
EA=1;
EX0=1;
IT0=1;
}
void Int1Init()//外部中断1函数
{
EA=1;
EX1=1;
IT1=1;
}
void LED1()//跑马灯跑法1
{
u16 i=0;
u16 led=0x01;
for(i;i<5