📄 setpping-driver.c
字号:
//功能:方向控制
//加速,匀速,减速,
//定位
//调速
#include<reg51.h>
#define AIMPOSITION 200
sbit DIR = P0^0; //Z位移电机方向控制,1-up,0-down
sbit PULSE = P0^1; //Z位移电机脉冲输入
unsigned char aimposition;//瞄准高度,隐含参数,不可见
sbit ACKNOWLEDGE=P3^7; //应答信号输入
sbit DETECT=P1^2; //针头到位检测,低电平有效
void Alarm(x);
void DelayChar(unsigned char x);
void StepingMotor(unsigned char maxv) //dir 方向;maxv 最高速度
{
unsigned char j,step;
unsigned int i;
unsigned char v_down,v_up;
v_down = maxv;
v_up = maxv;
//针头下降-----------------------------------
DIR = 0;//方向设置
//-------------------------------------------
for(i=6;i>0;i--) //加速
{
PULSE = 0; DelayChar(v_down+i*20);
PULSE = 1; DelayChar(v_down+i*20);
}
for(i=0;i<AIMPOSITION+aimposition-12;i++)
{
PULSE = 0;DelayChar(v_down);
PULSE = 1;DelayChar(v_down);
}
for(i=0;i<6;i++) //减速
{
PULSE = 0; DelayChar(v_down+i*20);
PULSE = 1; DelayChar(v_down+i*20);
}
//检查过片是否完成---------------------------
if(j<200) //如果没有超时
{
ACKNOWLEDGE = 1;
while(!ACKNOWLEDGE) //则等待过片完成
ACKNOWLEDGE = 1;
}
else
Alarm(1); //否则,报警
//检测支架-------------------------------------
step = 60; //默认检测步数(高度)
DETECT = 1;
while(DETECT&&step)
{
PULSE = 0; DelayChar(60);
PULSE = 1; DelayChar(60);
step--;
DETECT = 1;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -