智能窗帘设计程序(51单片机控制步进电机)

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
case 2:reserve(1);break;
case 3:reserve(2);break;
}state=1;break;
case 2: switch(state)
{
case 0:move(2);break;
case 1:move(1);break;
case 2:break;
case 3:reserve(1);break;
}
void Init()
{
TMOD=0x01;
TH0=65530/256;
TL0=65530%256;
EA=1;
ET0=1;
TR0=1;
P1=0x0f;
}
void move(unsigned char step)
{
unsigned char i;
P1=0x0f;
for(i=0;i<step;i++)
{
P1=~0x03;
delay(200);
P1=~0x06;
delay(200);
P1=~0x0c;
delay(200);
P1=~0x09;
delay(200);
}
}
void reserve(unsigned char step)
{
unsigned char i;
P1=0x0f;
for(i=0;i<step;i++)
}state=2;break;
case 3: switch(state)
{
case 0:move(3);break;
case 1:move(2);break;
case 2:move(1);break;
case 3:break;
}state=3;break;
}
}
main()
{
Init();
while(1)
{
P1=~0x09;
delay(2ቤተ መጻሕፍቲ ባይዱ0);
P1=~0x0c;
delay(200);
P1=~0x06;
delay(200);
P1=~0x03;
delay(200);
}
}
void movesetp(unsigned char level)
{
switch(level)
{
case 0: switch(state)
{
case 0:break;
case 1:reserve(1);break;
case 2:reserve(2);break;
case 3:reserve(3);break;
}state=0;break;
case 1: switch(state)
{
case 0:move(1);break;
case 1:break;
for(i=0;i<j;i++);
}
timer0() interrupt 1
{
TH0=65530/256;
TL0=65530%256;
CLK=~CLK;
}
void transfer()
{
START=0;
OE=0;
delay(1);
while(!EOC);
OE=1;
light=P0;
OE=0;
START=1;
}
}
#include<reg51.h>
unsigned int light;
unsigned char state=0;
sbit CLK=P3^2;
sbit START=P3^3;
sbit EOC=P3^0;
sbit OE=P3^1;
void delay(unsigned int j)
{
unsigned int i;
{
//delay(10000);
transfer();
//P2=~light;
if(light>=0&&light<40)movesetp(0);
if(light>=45&&light<125)movesetp(1);
if(light>=130&&light<210)movesetp(2);
if(light>=215&&light<=255)movesetp(3);
相关文档
最新文档