找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3159|回复: 0
打印 上一主题 下一主题
收起左侧

STC15F2K60S2控制esp8266进行通信的源码

[复制链接]
跳转到指定楼层
楼主
ID:320331 发表于 2018-5-15 18:39 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
两块8266的通信  服务器端程序

单片机源程序如下:
  1. //#include<reg52.h>
  2. #include "STC15Fxxxx.H"
  3. #include<string.h>
  4. #include "intrins.h"
  5. #include "oled.h"
  6. #include "ADC.H"
  7. #include "bmp.h"

  8. #define BAUD             2400  //波特率
  9. #define SYSTEMCLOCK  11059200L  //系统时钟频率
  10. #define uint unsigned int
  11. #define uchar unsigned char
  12. #define uint16 unsigned short         

  13. uint x,y;
  14. uint j=0;
  15. uint sendflag=0;
  16. uint serialport0flag=0;
  17. uchar yaogan_left_y;
  18. uchar yaogan_right_x;
  19. uchar yaogan_right_y;
  20. char  serial[6];
  21. char code step0[]="AT+CWMODE=2\r\n";
  22. char code step1[]="AT+RST\r\n";
  23. char code step2[]="AT+CIPMUX=1\r\n";
  24. char code step3[]="AT+CIPSERVER=1,5000\r\n";
  25. char code step4[]="AT+CIPSEND=0,7\r\n";

  26. extern bit interval;

  27. void uart_sendstring(unsigned char *str)
  28. {
  29.     unsigned char *p;
  30.    
  31.     p = str;
  32.     while(*p != '\0')
  33.     {
  34.         SBUF = *p;
  35.                 while(TI == 0);  //等待发送标志位置位
  36.                 TI = 0;
  37.         p++;
  38.     }
  39. }
  40. void init(void)
  41. {
  42.                 SCON = 0x50;               
  43.             AUXR = 0x40;                //1T
  44.             TMOD = 0x00;                //
  45.             TL1 = (65536 - (SYSTEMCLOCK/4/BAUD));   //
  46.             TH1 = (65536 - (SYSTEMCLOCK/4/BAUD))>>8;
  47.             TR1 = 1;   

  48.                 TMOD|=0x01;
  49.                 TL0 =55535%256;   
  50.             TH0 =55535/256;
  51.             TR0 = 1;   
  52.                 ET0=1;
  53.                 EA=1;

  54.                 OLED_Init();                        //初始化OLED  
  55.                 OLED_Clear();
  56.                 OLED_ShowString(0,0,"CrazyAde");
  57.                 OLED_ShowString(0,1,"Designer:WuHao");
  58.                 OLED_ShowString(0,2,"Date:2018.5.6");
  59.                 OLED_ShowCHinese(0,5,0);//小
  60.                 OLED_ShowCHinese(18,5,1);//壮
  61.                 OLED_ShowCHinese(36,5,2);//真
  62.                 OLED_ShowCHinese(54,5,3);//可
  63.                 OLED_ShowCHinese(72,5,4);//爱
  64.                 OLED_ShowCHinese(90,5,5);//!
  65.                                
  66.                 ADC_Inilize(ADC_P11);
  67.                 ADC_Inilize(ADC_P12);
  68.                 ADC_Inilize(ADC_P13);
  69.                 ADC_PowerControl(ENABLE);
  70.                                        
  71.                 uart_sendstring(step0);
  72.                 delay_ms(10);
  73.                 uart_sendstring(step1);
  74.                 delay_ms(2000);               
  75.                 uart_sendstring(step2);
  76.                 delay_ms(10);               
  77.                 uart_sendstring(step3);
  78.                 delay_ms(10);

  79.                 OLED_Clear()  ;
  80.                 OLED_DrawBMP(0,0,127,7,WUHAO);
  81.                 delay_ms(1000);
  82.                 OLED_Clear();
  83. }

  84. void data_collect()
  85. {
  86.         yaogan_right_x=Get_ADC10bitResult(0)*1.0*256/1024;
  87.         yaogan_right_y=(256-Get_ADC10bitResult(1)*1.0*256/1024);
  88.         yaogan_left_y=(256-Get_ADC10bitResult(2)*1.0*256/1024);               

  89.         serial[0]=0x57;
  90.         serial[1]=yaogan_left_y;
  91.         serial[2]=yaogan_right_x;
  92.         serial[3]=yaogan_right_y;
  93.         serial[4]=0x48;       
  94. }

  95. void sendto_8266()
  96. {
  97.         uart_sendstring(step4);
  98.         uart_sendstring(serial);
  99.         memset(serial,0,sizeof(serial));
  100. }

  101. void dat_disply()
  102. {
  103.         OLED_ShowString(0,0,"PITCH:");
  104.         OLED_ShowString(0,1,"YAW:");
  105.         OLED_ShowString(0,2,"ROLL:");

  106.         OLED_ShowString(0,4,"left_y:");
  107.         OLED_ShowNum(70,4,yaogan_left_y/100,1,2);
  108.         OLED_ShowNum(80,4,yaogan_left_y%100/10,1,2);
  109.         OLED_ShowNum(90,4,yaogan_left_y%10,1,2);
  110.         OLED_ShowString(0,5,"right_x:");
  111.         OLED_ShowNum(70,5,yaogan_right_x/100,1,2);
  112.         OLED_ShowNum(80,5,yaogan_right_x%100/10,1,2);
  113.         OLED_ShowNum(90,5,yaogan_right_x%10,1,2);       
  114.         OLED_ShowString(0,6,"right_y:");               
  115.         OLED_ShowNum(70,6,yaogan_right_y/100,1,2);
  116. ……………………

  117. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
程序.rar (111.22 KB, 下载次数: 62)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏5 分享淘帖 顶1 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表