标题:
51单片机结合ESP8266WiFi模块控制步进电机正反转三圈,但程序不知道有什么问题?
[打印本页]
作者:
范潇冰
时间:
2020-4-28 16:49
标题:
51单片机结合ESP8266WiFi模块控制步进电机正反转三圈,但程序不知道有什么问题?
利用51单片机和光敏模块 、ESP8266WiFi模块结合,制作的智能窗帘,控制步进电机正反转三圈,但程序不知道有什么问题,可以正常编译,但下载到单片机上,手机显示无法连接,之前一直都是可以连接成功的。麻烦哪位大神可以帮忙看一下?
#include "reg51.h"
#define uint unsigned int
#define uchar unsigned char
//单片机的引脚定义
sbit gm=P1^1;
sbit wd1=P1^2;
sbit wd2=P1^3;
sbit zsd1=P0^0;
sbit zsd2=P0^1;
//步进电机的正反转代码
unsigned char kongzhi=0;
unsigned char code RUN1[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//正转
unsigned char code RUN2[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//反转
//初始化程序
void chushihua()
{
IE=0x90;
SCON=0x50;
TMOD=0x20; //
TH1=0xfd; //波特率设置为9600
TL1=0xfd;
TCON=0x40;
TR1=1;
ES = 1; //开串行口中断
EA=1; //开总中断
}
//串行口连续发送char型数组,遇到终止号/0将停止
void fasongshuju(uchar *str)
{
while(*str!='\0')
{
SBUF=*str;
while(!TI);//等待发送完成信号(TI=1)出现
TI=0;
str++;
}
}
//延时函数
void yanshi(uint ttt)
{
while(ttt--);
}
//ESP8266上电初始化
void wifichushihua()
{
fasongshuju("AT+CIPMUX=1\r\n");
yanshi(50000);
fasongshuju("AT+CIPSERVER=1,8080\r\n");
}
JC
/***********延时函数***********/
void delay(unsigned int t)
{
unsigned int k;
while(t--)
{
for(k=0; k<60; k++)//用for的空循环延长程序的执行时间
{ }
}
}
//步进电机驱动 正转
void zz(uchar n)
{
unsigned char i,j;
for(j=0;j<5*n;j++)
for (i=0; i<8; i++)
{
P2 = RUN1[i]&0x1f; //取数据
delay(2); //调节转速
zsd1=0;
zsd2=1;
}
}
//步进电机驱动 反转
void fz()
{
unsigned char i,j;
for(j=0;j<5*n;j++)
for (i=0; i<8; i++)
{
P2 = RUN2[i]&0x1f; //取数据
delay(2); //调节转速
zsd1=1;
zsd2=0;
}
}
//传感器自动控制的
void zidong()
{
if(gm==0)//有光的时候电机正转
{
zz(N);
}
if(gm==1)//无光的时候电机反转
{
fz(N);
}
}
void main()
{
yanshi(50000);
yanshi(5000);
chushihua();
wifichushihua();
uchar N=3
while(1)
{
if(kongzhi==1)
{
zz(N);
}
if(kongzhi==2)
{
fz(N);
}
if(kongzhi==3)
{
P2=0xff;
zsd1=1;
zsd2=1;
}
if(kongzhi==4)
{
zidong();
}
if(wd1==0||wd2==0)
{
kongzhi=3;
}
}
}
/*
串口服务子函数
*/
void time() interrupt 4
{
if(RI)
{
RI=0; //接收中断信号清零,表示将继续接收
switch(SBUF)
{
case 'a':kongzhi=1; break;//接收到安卓端的'a'字符
case 'b':kongzhi=2; break;//接收到安卓端的'b'字符
case 'c':kongzhi=3;break;//接收到安卓端的'c'字符
case 'd':kongzhi=4;break;//接收到安卓端的'd'字符
}
}
}
复制代码
作者:
kkkbq
时间:
2021-3-15 20:05
楼主,请问你这个问题解决了吗 我也遇到这个问题
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1