📄 step.c
字号:
//步进电机驱动程序
//编写:王志炎
//日期:2007年5月5日
#include<reg51.h>
sbit PUL=P0^5;//PUL脉冲控制信号,上升沿有效.
sbit DIR=P0^6;//DIR方向控制,高低电平.
sbit ENA=P0^7;//ENA使能信号,高电平使能.
sbit KEY=P1^7;//KEY启动开关,按住运行.
/*******************************************************************************
函数:Delay()
功能:延时0.01s~2.56s
参数:t>0 时,延时(t*0.01)s
t=0 时,延时2.56s
说明:定时10ms 的定时器初值=65536-0.01/(1/(f/12)),其中f 为晶振频率
*******************************************************************************/
void Delay(unsigned char t)
{
do
{
TH0 = 0xFF; //设置定时器初值(定时10ms)
TL0 = 0xF0;
TR0 = 1; //启动定时器
while ( !TF0 ); //等待定时器溢出
TR0 = 0; //停止定时器
TF0 = 0; //清除溢出标志
}
while ( --t != 0 ); //循环t 次
}
//主函数
void main()
{
//unsigned char i;
KEY=0;
DIR=1;
ENA=0;
while (KEY)
{
unsigned long i;
TMOD &= 0xF0; //T0 设置在方式1,即16 位定时器(不影响T1 的模式)
TMOD |= 0x01;
ENA=1;
for(i=4000;i>0;i--)
//while(KEY)
{
PUL=1;
Delay(10);
PUL=0;
Delay(10);
}
DIR=0;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -