找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4366|回复: 8
打印 上一主题 下一主题
收起左侧

请老师们帮我修改一下程序

[复制链接]
跳转到指定楼层
楼主
5黑币
我想把这个程序驱动步进电机的部分做修改,把程序改为使用ULN2003A驱动的请大家帮忙修改一下吧,谢谢了。
没有图纸程序是别的网站复制的。
程序如下:

  #include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
sbit fm=P2^2;//定义蜂鸣器
sbit eb=P2^3;//步进电机
sbit ez=P2^4;//钻孔电机
sbit led1=P2^7;//下降显示
sbit led2=P2^6;//工作显示
sbit led3=P2^5;//上升显示
sbit a=P2^0;//检测是否有板子的红外线传感器
sbit b=P2^1;//检测板子是否钻穿的红外线传感器
//
sbit fs=P3^7;//散热风扇
void delay(uint x);     
uchar code table[]={0x07,0x0b,0x0d,0x0e};//定义升
uchar code table0[]={0x0e,0x0d,0x0b,0x07};//定义降
uchar i,j,n,k,num;
uint m;
void jiang()//定义降子函数
{
eb=0; //步进电机转动
led3=1;
for(i=0;i<4;i++)
   {
    P1=table0;
delay(4);
   }
}
void sheng()//定义升子函数
{
eb=0;
m=180;//定义升的时间
while(m--)
{
  for(i=0;i<4;i++)   
   {
    P1=table;
delay(6);
ez=0;
   }
   }
}

void delay(uint x)//延时子函数
{
uint k,j;
for(k=x;k>0;k--)
for(j=110;j>0;j--);
}

void main()
{
for(i=3;i>0;i--)
   {
    led2=0;
fm=0;
delay(500);
led2=1;
fm=1;
delay(500);
   }//开机提示
led2=0;
while(1)
{
if(a==0)//检测是否有板子
   {
    ez=0;//钻孔电机转动
   jiang();//并开始下降
led1=0;//下降指示灯亮
fs=0;//散热风扇开始转动
   }
else(eb=1,ez=1,led1=1);//否则步进电机,直流电机停止,下降指示熄灭。
   if(b==0)//检测板子是否钻穿
     {
  delay(20);
if(b==0)//如果确认板子钻穿
   {
   fm=0;
   delay(300);
   fm=1;//蜂鸣器响一下
   led3=0;//上升指示灯显示
      sheng();//开始上升
   }
  }
else(
led3=1,
fm=1,
ez=1);
    }  
}


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:111634 发表于 2016-6-18 19:52 | 只看该作者
本帖最后由 zl2168 于 2016-6-18 21:05 编辑

实例98  驱动四相步进电机



Proteus仿真一下,确认有效。



4.jpg (115.19 KB, 下载次数: 189)

4.jpg

41.jpg (105.87 KB, 下载次数: 190)

41.jpg

实例98 四相步进电机.rar

35.83 KB, 下载次数: 4

回复

使用道具 举报

板凳
ID:111634 发表于 2016-6-18 21:01 | 只看该作者
本帖最后由 zl2168 于 2016-6-18 21:03 编辑

实例99  驱动二相步进电机



Proteus仿真一下,确认有效。

实例99 二相步进电机.rar (36.2 KB, 下载次数: 4)




以上摘自张志良编著《单片机实验实训100例》 ISBN 978-7-5124-1603-1,北航社出版

书中电路和程序设计有详细说明,程序语句条条有注解。




回复

使用道具 举报

地板
ID:104183 发表于 2016-6-19 09:03 | 只看该作者
非常感谢
回复

使用道具 举报

5#
ID:123289 发表于 2016-6-19 10:05 | 只看该作者
步进电机是用P1口驱动的吧?
将ULN2003A的输入直接接P1口就是了.
回复

使用道具 举报

6#
ID:104183 发表于 2016-6-19 18:36 | 只看该作者
yzwzfyz 发表于 2016-6-19 10:05
步进电机是用P1口驱动的吧?
将ULN2003A的输入直接接P1口就是了.

非常感谢。
回复

使用道具 举报

7#
ID:7485 发表于 2016-6-20 22:11 | 只看该作者
使用ULN2003A和程序没关系。直接插入(电路中)即可。
回复

使用道具 举报

8#
ID:104183 发表于 2016-6-26 15:38 | 只看该作者
谢谢大家了。
回复

使用道具 举报

9#
ID:104183 发表于 2016-9-28 17:33 | 只看该作者
已经解决了谢谢大家了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表