标题:
单片机步进电机精确控制程序(防抖动)C语言编写
[打印本页]
作者:
zqy181818
时间:
2017-5-27 16:56
标题:
单片机步进电机精确控制程序(防抖动)C语言编写
C语言编的步进电机精确控制程序包括防抖动等
0.png
(70.78 KB, 下载次数: 129)
下载附件
2017-5-29 03:18 上传
单片机源程序如下:
#include <reg52.h>
#include <absacc.h>
#define uchar unsigned char
#define uint unsigned int
sbit P0_1=P0^1;
sbit P0_0=P0^0;
sbit P3_2=P3^2;
sbit P3_3=P3^3;
sbit P3_4=P3^4;
sbit P3_5=P3^5;
void delays(uint);
void delay(uint, uint);
void mc(uint);
void mc1(uint);
fangdoudong() ;
int p;
void main(void)
{
TCON = 0x05; //外部中断0、1均设置为下降沿触发
TMOD = 0x66; //定时/计数器0设置为计数器模式,计数脉冲由引脚T0(即P3.4)输入,模式2(8位自动再加载型计数器)
EA=1; //开中断
EX1 = 1; //外部中断1使能
EX0 = 1; //外部中断0使能
ET0 = 1; //计数器中断0使能
ET1 = 1; //计数器中断1使能
TH0 = 0xff; //计数器装载初值(高位)
TL0 = 0xff; //计数器装载初值(低位)
TH1 = 0xff; //计数器装载初值(高位)
TL1 = 0xff;
TR0 = 1; //计数器0开
TR1 = 1; //计数器1开
P0_1 =1;
p=50;
while(1)
{
mc(500);
}
}
void mc(uint n)
{
uint i;
for(i=n;i>0;i--)
{
P0_0=0;
delays(13);
P0_0=1;
delay(25,p);
}
}
void mc1(uint m)
{
uint j;
for(j=m;j>0;j--)
{
P0_0=0;
delays(13);
P0_0=1;
delay(25,50);
}
}
void delay(uint a, uint b)
{ uint i,j;
for(i=a;i>0;i--)
{
for(j=b;j>0;j--);
}
}
fangdoudong() //防抖动
{
delays(60);
if(P3_2&&P3_3&&P3_4&&P3_5==0)
{
return 1;
}
else
{
return 0;
}
}
void delays(uint m)
{
uint i;
for(i=m; i>0; i--);
}
void Intsvr0(void) interrupt 0 using 1 //外部中断0
{
if(fangdoudong())
p=p+10;
return;
}
void Intsvr1(void) interrupt 2 using 1 //外部中断1
{
if(fangdoudong())
p=p-10;
return;
}
……………………
…………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
所有资料51hei提供下载:
C语言编的步进电机控制程序(防抖动).zip
(24.8 KB, 下载次数: 33)
2017-5-27 16:56 上传
点击文件名下载附件
下载积分: 黑币 -5
作者:
admin
时间:
2017-5-29 03:21
好资料,51黑有你更精彩!!!
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1