AT89C51+ULN2003A+中断=控制(跑马灯+步进电机)

本文通过AT89C51单片机结合ULN2003A驱动,实现了跑马灯和步进电机的控制。电路中,P1口控制LED灯,P2口控制步进电机,两个开关触发中断0和中断1。然而,由于ULN2003A的输出特性,需要外接上拉电阻。在编程时,LED的顺序需要根据端口特性调整。步进电机使用两相四线八拍方式运行。目前电路存在局限,如LED和电机无法连续循环工作,中断也无法在运行中触发新的中断。欢迎提供改进意见。
摘要由CSDN通过智能技术生成

本次学习应用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
  • 4
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值