欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3947|回復: 1
收起左側

51單片機結合ESP8266WiFi模塊控制步進電機正反轉三圈,但程序不知道有什么問題?

[復制鏈接]
ID:676885 發表于 2020-4-28 16:49 | 顯示全部樓層 |閱讀模式
10黑幣
利用51單片機和光敏模塊 、ESP8266WiFi模塊結合,制作的智能窗簾,控制步進電機正反轉三圈,但程序不知道有什么問題,可以正常編譯,但下載到單片機上,手機顯示無法連接,之前一直都是可以連接成功的。麻煩哪位大神可以幫忙看一下?

  1. #include "reg51.h"
  2. #define uint unsigned int
  3. #define uchar unsigned char

  4. //單片機的引腳定義
  5. sbit gm=P1^1;
  6. sbit wd1=P1^2;
  7. sbit wd2=P1^3;
  8. sbit zsd1=P0^0;
  9. sbit zsd2=P0^1;


  10. //步進電機的正反轉代碼
  11. unsigned char kongzhi=0;
  12. unsigned char code RUN1[8]={0xf1,0xf3,0xf2,0xf6,0xf4,0xfc,0xf8,0xf9};//正轉
  13. unsigned char code RUN2[8]={0xf9,0xf8,0xfc,0xf4,0xf6,0xf2,0xf3,0xf1};//反轉

  14. //初始化程序
  15. void chushihua()
  16. {
  17. IE=0x90;
  18. SCON=0x50;
  19. TMOD=0x20;   //
  20. TH1=0xfd;   //波特率設置為9600
  21. TL1=0xfd;
  22. TCON=0x40;
  23. TR1=1;
  24. ES = 1;          //開串行口中斷
  25. EA=1;          //開總中斷
  26. }



  27. //串行口連續發送char型數組,遇到終止號/0將停止
  28. void fasongshuju(uchar *str)
  29. {
  30.         while(*str!='\0')
  31.         {
  32.                 SBUF=*str;
  33.                 while(!TI);//等待發送完成信號(TI=1)出現
  34.                 TI=0;
  35.                 str++;
  36.         }
  37. }




  38. //延時函數
  39. void yanshi(uint ttt)
  40. {

  41.     while(ttt--);
  42. }


  43. //ESP8266上電初始化
  44. void wifichushihua()
  45. {
  46. fasongshuju("AT+CIPMUX=1\r\n");
  47.         yanshi(50000);
  48.         fasongshuju("AT+CIPSERVER=1,8080\r\n");
  49. }

  50.                                                                                   JC


  51. /***********延時函數***********/
  52. void delay(unsigned int t)
  53. {                           
  54.    unsigned int k;
  55.    while(t--)
  56.    {
  57.      for(k=0; k<60; k++)//用for的空循環延長程序的執行時間
  58.      { }
  59.    }
  60. }


  61. //步進電機驅動         正轉
  62. void  zz(uchar n)
  63. {
  64.    unsigned char i,j;
  65.             for(j=0;j<5*n;j++)
  66.       for (i=0; i<8; i++)      
  67.         {
  68.           P2 = RUN1[i]&0x1f;     //取數據
  69.           delay(2);             //調節轉速
  70.                 zsd1=0;
  71.                 zsd2=1;

  72.         }
  73.   }
  74.   //步進電機驅動  反轉
  75. void  fz()
  76. {
  77.    unsigned char i,j;
  78.              for(j=0;j<5*n;j++)
  79.       for (i=0; i<8; i++)      
  80.         {
  81.           P2 = RUN2[i]&0x1f;     //取數據
  82.           delay(2);             //調節轉速
  83.                   zsd1=1;
  84.                  zsd2=0;

  85.         }
  86.   }
  87.                           //傳感器自動控制的
  88.                    void zidong()
  89.          {

  90.                                     if(gm==0)//有光的時候電機正轉
  91. {
  92. zz(N);

  93. }

  94. if(gm==1)//無光的時候電機反轉
  95. {
  96. fz(N);

  97. }                                                                                                                                                                                                                                              
  98.         }                          




  99. void main()
  100. {
  101.                 yanshi(50000);
  102.         yanshi(5000);
  103. chushihua();
  104. wifichushihua();
  105.         uchar N=3
  106.     while(1)
  107.         {

  108.          if(kongzhi==1)
  109.          {
  110.           zz(N);
  111.          }

  112.           if(kongzhi==2)
  113.          {
  114.       fz(N);
  115.          }
  116.                    if(kongzhi==3)
  117.          {
  118.           P2=0xff;
  119.                            zsd1=1;
  120.                  zsd2=1;
  121.        
  122.          }                                                                                                                                                                                                                                
  123.                             if(kongzhi==4)
  124.          {
  125.       zidong();


  126.          }

  127.          if(wd1==0||wd2==0)
  128.          {
  129.       kongzhi=3;
  130.          }
  131.        
  132.         }
  133. }




  134. /*
  135.   串口服務子函數
  136. */
  137. void time() interrupt 4
  138. {
  139.                   if(RI)
  140. {
  141. RI=0;  //接收中斷信號清零,表示將繼續接收

  142. switch(SBUF)
  143. {
  144. case 'a':kongzhi=1;        break;//接收到安卓端的'a'字符



  145. case 'b':kongzhi=2;        break;//接收到安卓端的'b'字符

  146. case 'c':kongzhi=3;break;//接收到安卓端的'c'字符

  147. case 'd':kongzhi=4;break;//接收到安卓端的'd'字符
  148. }                                                                                                          
  149. }
  150. }

復制代碼


回復

使用道具 舉報

ID:553861 發表于 2021-3-15 20:05 來自觸屏版 | 顯示全部樓層
樓主,請問你這個問題解決了嗎 我也遇到這個問題
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表