51单片机控制步进电机

学习 时间:2026-04-06 23:46:26 阅读:9574
51单片机控制步进电机用一块AD0832对光敏电阻进行数据采集,将数字信号给51单片机,单片机将此数据与自己设定的数据进行比较来控制步进电机转动,求电路图和程序

最佳回答

耍酷的小鸽子

踏实的日记本

2026-04-06 23:46:26

这个简单,让我来教楼主怎么玩
首先我说下思路:
我们采用P1口来采集ADC0832的8位数据,用P0。0口控制步进电机动作,利用T0的时间中断来采集P1口的ADC0832数据并做出比较后设置步进电机启动标志位start=1;并设置他的运行频率,当然,楼主没说怎么比较,我这就只是写了个简单的例子,一通百通,
下面是程序:
#include //选用晶振11。0592MHz
unsigned int m=0,n=0; //设置循环的周期
unsigned char start=0,t0temp=0;
sbit Y0=P0^0; //控制步进电机的管脚
delay()
{
unsigned char i,j;
for(i=m;i>0;i--)
for(j=n;i>0;j--);
}
main()
{
//自检测T0时间设置
ET0=1;
TMOD|=0x01;
TH0=0xFC; //1ms中断扫描
TL0=0x66;
IT0=1; //下降沿触发
TR0=0; //关闭扫描
/I/O口程序
while(1)
{
while(start)
{
delay();
Y0=~Y0;
}
}
}
void counter1(void) interrupt 1 //T0计时器中断
{
if(t0temp%4)t0temp++; //4ms时间才采集一次P0口的数据
else
{
\x09 t0temp++;
//这里就写你怎么做对比的程序,我举个例子
if(P1>150)
{start=1;n=1000;m=0;} //入错采用12M晶振,那这时候控制步进电机的输出周期就是1ms一次,也就是1000HZ
\x09 else {start=0;n=0;m=0;}
}
}
//PS:我在输出频率中用了两个全局变量m,n可以延迟很长时间,楼主可以根据需要选用,一般16位的,选用一个就可以了,另一个放弃
OK,至于电路图,我软件没有ADC0832的封装,不然就发给你了,但想来楼主完全就没必要担心,ADC0832的8位数据接到P1口,P0。0控制步进电机启动的三极管,电路图就那么简单!
再问: 能加Q教教我吗,毕业设计好蛋疼啊443714003
再答: 当然可以

最新回答共有2条回答

  • 和谐的黑裤
    回复
    2026-04-06 23:46:26

    这个简单,让我来教楼主怎么玩首先我说下思路:我们采用P1口来采集ADC0832的8位数据,用P0。0口控制步进电机动作,利用T0的时间中断来采集P1口的ADC0832数据并做出比较后设置步进电机启动标志位start=1;并设置他的运行频率,当然,楼主没说怎么比较,我这就只是写了个简单的例子,一通百通,下面是程序:#include //选用晶振11。0592MHzunsigned int m=0,n=0; //设置循环的周期unsigned char start=0,t0temp=0;sbit Y0=P0^0; //控制步进电机的管脚delay(){unsigned char i,j;for(i=m;i>0;i--)for(j=n;i>0;j--);}main(){//自检测T0时间设置ET0=1;TMOD|=0x01;TH0=0xFC; //1ms中断扫描TL0=0x66;IT0=1; //下降沿触发TR0=0; //关闭扫描/I/O口程序while(1){while(start){delay();Y0=~Y0;}}}void counter1(void) interrupt 1 //T0计时器中断{ if(t0temp%4)t0temp++; //4ms时间才采集一次P0口的数据else{\x09 t0temp++;//这里就写你怎么做对比的程序,我举个例子if(P1>150){start=1;n=1000;m=0;} //入错采用12M晶振,那这时候控制步进电机的输出周期就是1ms一次,也就是1000HZ\x09 else {start=0;n=0;m=0;} }}//PS:我在输出频率中用了两个全局变量m,n可以延迟很长时间,楼主可以根据需要选用,一般16位的,选用一个就可以了,另一个放弃OK,至于电路图,我软件没有ADC0832的封装,不然就发给你了,但想来楼主完全就没必要担心,ADC0832的8位数据接到P1口,P0。0控制步进电机启动的三极管,电路图就那么简单! 再问: 能加Q教教我吗,毕业设计好蛋疼啊443714003 再答: 当然可以

上一篇 I was surprised by her words,which made me recognize what/ho

下一篇 洗衣机如何清洗