找回密码
 立即注册

QQ登录

只需一步,快速开始

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

基于单片机自动窗帘

[复制链接]
跳转到指定楼层
楼主
ID:111444 发表于 2016-3-30 16:30 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include<reg52.h>
#define uchar unsigned char
#define uint unsigned int
uchar code zheng[]={0xfc,0xf6,0xf3,0xf9 }; //2相励磁正转表
uchar code fan[]={0xf9,0xf3,0xf6,0xfc }; //2相励磁反转表
uchar code ting[]={0x00};
sbit k1=P3^0;    //定义K1开关

sbit zheng_LED=P2^1        ;
sbit fan_LED=P2^2;
uint m=1;
void delay(uint x)   //延时函数
{   
uchar i;
  while(x--)              //i=x即延时约x毫秒   
  for(i=0;i<60;i++);
   }
/********以下是步进电机正转函数********/
void  setp_motor_zheng(uchar n)
{  uchar i,j;
for(i=0;i<5*n;i++)  //转n圈
{
  for(j=0;j<4;j++)
  {  
  P1=zheng[j];     //取正转数据
delay(250);       //转一个角度停留的时间,可调节转速
  }
}
}
/********以下是步进电机反转函数********/
void  setp_motor_fan(uchar n)
{  uchar i,j;
for(i=0;i<5*n;i++)             //转n圈
{
  for(j=0;j<4;j++)   
  {
P1=fan[j];       //取反转数据

delay(250); //转一个角度停留的时间,可调节转速
  }
}
}
/********以下是行程开关中断子程序********/
sbit k2=P3^1;

/********以下是主程序********/
void main(void)
{
while(m--) //电机转m圈
   {   if(k1==1) //K1送入高电平  
{ delay(10);
   if(k1==1)  
  { zheng_LED=1;
   fan_LED=0;

setp_motor_zheng(3); //调用电机正转函数   
  }  
}  
  else //K1送入低电平
  {
delay(10);
zheng_LED=0;
   fan_LED=1;

setp_motor_fan(3);        //调用电机反转函数  
  }  
  }
}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

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

使用道具 举报

沙发
ID:293462 发表于 2018-6-8 15:40 | 只看该作者
正在做,学习,谢谢分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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