|
楼主 |
发表于 2011-3-29 01:48:56
|
显示全部楼层
昨晚完成了 初运行试机。
内容:
卷线, 走线
控制器代码
#include <reg51.h>
#include <intrins.h> //内部包含延时函数 _nop_();
#define uchar unsigned char
#define uint unsigned int
sbit key1 = P3^2; //进入设置菜单
sbit key2 = P3^3; //确定设置
sbit key3 = P3^4;
sbit key4 = P3^5;
sbit key5 = P3^6; // a1 ++
sbit key6 = P3^7; // a ++
sbit key8 = P3^0; // a1 ++
sbit key9 = P3^1;
uchar code table[]={0x28,0xeb,0x32,0xa2,0xe1,0xa4,0x24,0xea,0x20,0xa0,0xff};
uchar code zj1[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //P10~3. P20-3
uchar code fj1[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //P10~3. P20-3
uchar code zj2[8]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90}; ////P14~7.
uchar code fj2[8]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10}; ////P14~7.
//uchar code FFW[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};
//uchar code REV[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};
/*
uchar code zj1[8]={0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09}; //P10~3. P20-3
uchar code fj1[8]={0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01}; //P10~3. P20-3
uchar code zj2[8]={0x10,0x30,0x20,0x60,0x40,0xc0,0x80,0x90}; ////P14~7.
uchar code fj2[8]={0x90,0x80,0xc0,0x40,0x60,0x20,0x30,0x10}; ////P14~7.
*/
void delay(uint z);
//uchar ;
uint rate,i,aaa,bbb,ccc,ccc2 ;
/********************************************************/
/*
/* 延时
/* 11.0592MHz时钟,
/*
/********************************************************/
void delay(uint z)
{
do{
_nop_();_nop_();_nop_();
}while(--z);
/*
uchar k,t;
k = 2;
t = 0x04;
do{
do{
// _nop_();_nop_();_nop_();_nop_();
//_nop_();_nop_();_nop_();_nop_();
//for(aaa=0;aaa<50;aaa++);
_nop_();_nop_();_nop_();
}while(--t);
}while(--k);
*/
}
/********************************************************/
/*
/*步进电机正转
/*
/********************************************************/
void motor_ffw()
{
// uchar i;
for (i=0; i<8; i++) //一个周期转30度
{
P1 = fj1; //取数据
delay(30);
// delay();
//调节转速
}
}
void motor_zj1()
{
// uchar i;
for (i=0; i<8; i++) //一个周期转30度
{
P1 = zj1; //取数据
delay(30);
// delay();
//调节转速
}
}
void motor_ffw2()
{
// uchar i;
for (i=0; i<8; i++) //一个周期转30度
{
P1 = fj2; //取数据
delay(30);
// delay();
//调节转速
}
}
void motor_zj12()
{
// uchar i;
for (i=0; i<8; i++) //一个周期转30度
{
P1 = zj2; //取数据
delay(30);
// delay();
//调节转速
}
}
/********************************************************
*
* 主程序
*
*********************************************************/
main()
{
bbb=1300;
ccc=1300;
ccc2=300;
//P2=0xff;//调试用
while(1)
{
if(key1==0)
{
aaa=1;
}
if(key2==0)
{
aaa=2;
}
if(key3==0)
{
aaa=3;
}
if(key4==0)
{
aaa=4;
}
if(aaa==1)
{
for (i=0; i<8; i++)
{
P1 = fj1; //取数据
delay(ccc);
P1 = zj2; //取数据
delay(bbb);
if(key8==0)
{
bbb=bbb+30;
}
if(key9==0)
{
bbb=bbb-30;
}
if(key3==0)
{
ccc++;
}
if(key4==0)
{
ccc--;
}
}
}
if(aaa==2)
{
for (i=0; i<8; i++)
{
P1 = zj1; //取数据
delay(ccc2);
P1 = fj2; //取数据
delay(bbb);
if(key8==0)
{
bbb=bbb+30;
}
if(key9==0)
{
bbb=bbb-30;
}
if(key3==0)
{
ccc2++;
}
if(key4==0)
{
ccc2--;
}
}
}
if(aaa==3)
{
//motor_ffw();
}
if(aaa==4)
{
//motor_ffw2();
}
/*
*/
}//w1
}//ma |
|