sbit DIR = P3^7; //方向
sbit PW = P3^6; //脉冲
sbit EN = P1^0; //使能
sbit OUT = P1^1; //抱闸
uchar dat;
uchar sudu;
uint sdz=0;
bit sjbz1=0;
uint sj1=0;
bit sjbz2=0;
uint sj2=0;
bit write=0;
bit sdbz=0;
uchar sendBuf[10]; //发送缓冲区
bit xsdbz=0;
bit bz1=0;
bit bz2=0;
bit bz3=0;
bit bz4=0;
bit bz5=0;
bit zzjsbz=0;//正转按下计数标志
bit fzjsbz=0;//反转按下计数标志
bit CLK_EN=0;//脉冲使能
/********************************************************************
初始定义
*********************************************************************/
uint sec; //定义计数值,每过1/10 秒,sec 加一
uchar keycnt=0;//按下次数值
uint tcnt; //键值判断
{
if(sdbz==0){if(sudu<45){sudu++;write=1;}}
if(sdbz==1){if(sudu>=2){sudu--;write=1;}}
switch(sudu)
{
//case 0: sdz=10;dat=0x01;senduart1();break;
case 1: sdz=1;dat=0x01;senduart1();break;
case 2: sdz=2;dat=0x02;senduart1();break;
case 3: sdz=3;dat=0x03;senduart1();break;
case 4: sdz=4;dat=0x04;senduart1();break;
case 5: sdz=5;dat=0x05;senduart1();break;
case 6: sdz=6;dat=0x06;senduart1();break;
case 7: sdz=7;dat=0x07;senduart1();break;
case 8: sdz=8;dat=0x08;senduart1();break;
case 9: sdz=9;dat=0x09;senduart1();break;
case 10:sdz=10;dat=0x10;senduart1();break;
case 11:sdz=11;dat=0x10;senduart1();break;
case 12:sdz=12;dat=0x12;senduart1();break;
case 13:sdz=13;dat=0x13;senduart1();break;
case 14:sdz=14;dat=0x14;senduart1();break;
case 15:sdz=15;dat=0x15;senduart1();break;
case 16:sdz=16;dat=0x16;senduart1();break;
case 17:sdz=17;dat=0x17;senduart1();break;
case 18:sdz=18;dat=0x18;senduart1();break;
case 19:sdz=19;dat=0x19;senduart1();break;
case 20:sdz=20;dat=0x20;senduart1();break;
case 21:sdz=23;dat=0x21;senduart1();break;
case 22:sdz=26;dat=0x22;senduart1();break;
case 23:sdz=30;dat=0x23;senduart1();break;
case 24:sdz=34;dat=0x24;senduart1();break;
case 25:sdz=38;dat=0x25;senduart1();break;
case 26:sdz=42;dat=0x26;senduart1();break;
case 27:sdz=46;dat=0x27;senduart1();break;
case 28:sdz=50;dat=0x28;senduart1();break;
case 29:sdz=55;dat=0x29;senduart1();break;
case 30:sdz=60;dat=0x30;senduart1();break;
case 31:sdz=65;dat=0x31;senduart1();break;
case 32:sdz=70;dat=0x32;senduart1();break;
case 33:sdz=75;dat=0x33;senduart1();break;
case 34:sdz=80;dat=0x34;senduart1();break;
case 35:sdz=90;dat=0x35;senduart1();break;
case 36:sdz=100;dat=0x36;senduart1();break;
case 37:sdz=110;dat=0x37;senduart1();break;
case 38:sdz=120;dat=0x38;senduart1();break;
case 39:sdz=130;dat=0x39;senduart1();break;
case 40:sdz=145;dat=0x40;senduart1();break;
case 41:sdz=165;dat=0x41;senduart1();break;
case 42:sdz=180;dat=0x42;senduart1();break;
case 43:sdz=200;dat=0x43;senduart1();break;
case 44:sdz=220;dat=0x44;senduart1();break;
case 45:sdz=250;dat=0x45;senduart1();break;
default:break;
}
sjbz2=0;
sj2=0;
}
}
}
/****************发送函数*********************/
void senduart1()
{
SBUF=0xAA;while(!TI);TI=0;
SBUF=0x00;while(!TI);TI=0;
SBUF=0x02;while(!TI);TI=0;
SBUF=dat;while(!TI);TI=0;
SBUF=0xBB;while(!TI);TI=0;
}
/****************发送函数*********************/
void senduart2()
{
SBUF=0xAA;while(!TI);TI=0;
SBUF=0x00;while(!TI);TI=0;
SBUF=0x05;while(!TI);TI=0;
SBUF=0x00;while(!TI);TI=0;
SBUF=0xBB;while(!TI);TI=0;
}
/**************************************************
主函数
***************************************************/
void main()
{
Init_Com();
sec=0;
sudu=IapReadByte(0x01);//读取存储的值
if(sudu>=45){sudu=10;}
KZ1 = 1;
KZ2 = 1;
EN =0;
switch(sudu)
{
//case 0: sdz=10;dat=0x01;senduart1();break;
case 1: sdz=1;dat=0x01;senduart1();break;
case 2: sdz=2;dat=0x02;senduart1();break;
case 3: sdz=3;dat=0x03;senduart1();break;
case 4: sdz=4;dat=0x04;senduart1();break;
case 5: sdz=5;dat=0x05;senduart1();break;
case 6: sdz=6;dat=0x06;senduart1();break;
case 7: sdz=7;dat=0x07;senduart1();break;
case 8: sdz=8;dat=0x08;senduart1();break;
case 9: sdz=9;dat=0x09;senduart1();break;
case 10:sdz=10;dat=0x10;senduart1();break;
case 11:sdz=11;dat=0x10;senduart1();break;
case 12:sdz=12;dat=0x12;senduart1();break;
case 13:sdz=13;dat=0x13;senduart1();break;
case 14:sdz=14;dat=0x14;senduart1();break;
case 15:sdz=15;dat=0x15;senduart1();break;
case 16:sdz=16;dat=0x16;senduart1();break;
case 17:sdz=17;dat=0x17;senduart1();break;
case 18:sdz=18;dat=0x18;senduart1();break;
case 19:sdz=19;dat=0x19;senduart1();break;
case 20:sdz=20;dat=0x20;senduart1();break;
case 21:sdz=23;dat=0x21;senduart1();break;
case 22:sdz=26;dat=0x22;senduart1();break;
case 23:sdz=30;dat=0x23;senduart1();break;
case 24:sdz=34;dat=0x24;senduart1();break;
case 25:sdz=38;dat=0x25;senduart1();break;
case 26:sdz=42;dat=0x26;senduart1();break;
case 27:sdz=46;dat=0x27;senduart1();break;
case 28:sdz=50;dat=0x28;senduart1();break;
case 29:sdz=55;dat=0x29;senduart1();break;
case 30:sdz=60;dat=0x30;senduart1();break;
case 31:sdz=65;dat=0x31;senduart1();break;
case 32:sdz=70;dat=0x32;senduart1();break;
case 33:sdz=75;dat=0x33;senduart1();break;
case 34:sdz=80;dat=0x34;senduart1();break;
case 35:sdz=90;dat=0x35;senduart1();break;
case 36:sdz=100;dat=0x36;senduart1();break;
case 37:sdz=110;dat=0x37;senduart1();break;
case 38:sdz=120;dat=0x38;senduart1();break;
case 39:sdz=130;dat=0x39;senduart1();break;
case 40:sdz=145;dat=0x40;senduart1();break;
case 41:sdz=165;dat=0x41;senduart1();break;
case 42:sdz=180;dat=0x42;senduart1();break;
case 43:sdz=200;dat=0x43;senduart1();break;
case 44:sdz=220;dat=0x44;senduart1();break;
case 45:sdz=250;dat=0x45;senduart1();break;
default:break;
}
delay(200);
senduart2();
delay(100);
while(1)
{
key();
tssz();