久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: STC15單片機+DS3231+DS18B20+DHT11+OLED12864+ESP8266_01S組成網絡時間 有待改善 [打印本頁]

作者: 735251    時間: 2021-5-8 07:40
標題: STC15單片機+DS3231+DS18B20+DHT11+OLED12864+ESP8266_01S組成網絡時間 有待改善
每個文件分開   可以少點彎路   


制作出來的實物圖如下:


單片機源程序如下:
  1. #include "delay.h"
  2. #include "oled12864.h"
  3. #include "uart.h"
  4. #include "esp8266.h"
  5. #include "ds18b20.h"
  6. #include "DHT11.h"
  7. #include "DS3231.h"

  8. sbit led1=P0^6;
  9. sbit led2=P0^7;
  10. uint8 a,wendu;
  11. uint16 b,c;

  12. void riqi(void);
  13. void shijian(void);
  14. void Uart2_Init(void);

  15. /*********************定時器函數************************************/

  16. void Timer0Init()                //100微秒@22.1184MHz
  17. {
  18.         AUXR |= 0x80;                //定時器時鐘1T模式
  19.         TMOD &= 0xF0;                //設置定時器模式
  20.         TL0 = 0x5C;                //設置定時初始值
  21.         TH0 = 0xF7;                //設置定時初始值
  22.         TF0 = 0;                //清除TF0標志
  23.         TR0 = 1;                //定時器0開始計時
  24. }
  25. void Timer1Init()                //1000微秒@22.1184MHz
  26. {
  27.         AUXR |= 0x40;                //定時器時鐘1T模式
  28.         TMOD &= 0x0F;                //設置定時器模式
  29.         TL1 = 0x9A;                //設置定時初始值
  30.         TH1 = 0xA9;                //設置定時初始值
  31.         TF1 = 0;                //清除TF1標志
  32.         TR1 = 1;                //定時器1開始計時
  33. }
  34. void timer0() interrupt 1
  35. {
  36.         TL0 = 0x5C;                //設置定時初始值
  37.         TH0 = 0xF7;                //設置定時初始值
  38.         TF0 = 0;
  39.         b++;
  40.         if(b>1000)
  41.         {
  42.         b=0;
  43.         led1=~led1;
  44.         }
  45. }
  46. void timer1() interrupt 3 //定時器1的中斷
  47. {
  48.         TL1 = 0x9A;                //設置定時初始值
  49.         TH1 = 0xA9;                //設置定時初始值
  50.         c++;
  51.         if(c>1000)
  52.         {
  53.         c=0;
  54.         led2=~led2;
  55.         }
  56. }

  57. void duishi()
  58. {
  59.        
  60.         delayms(1000);
  61.         UART2_SendStr("GET http://api.k780.com:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json\r\n\r\n");
  62.         nian=(Data[6]-48)*10+(Data[7]-48);
  63.         yue=(Data[9]-48)*10+(Data[10]-48);
  64.         ri=(Data[12]-48)*10+(Data[13]-48);
  65.         zhou=Data2[4]-48;
  66.         shi=(Data[15]-48)*10+(Data[16]-48);
  67.         fen=(Data[18]-48)*10+(Data[19]-48);
  68.         miao=(Data[21]-48)*10+(Data[22]-48)+4;
  69.         if(miao>60)  {miao=60;fen+=1;}
  70.         Ds3231Init();
  71.         //SendString("+++");

  72. }

  73. void main()
  74. {
  75.         Timer0Init();//初始化定時器0
  76.         Timer1Init();//初始化定時器1
  77.        
  78.         EA=1;//開啟總中斷
  79.         ET0=1;//開啟定時器0中斷
  80.         ET1=1;//開啟定時器1中斷
  81.        
  82.         Delayus(6000);
  83.         P0M0=0X00;P0M1=0X00;
  84.         P1M0=0X00;P1M1=0X00;
  85.         P2M0=0X00;P2M1=0X00;
  86.         P3M0=0X00;P3M1=0X00;
  87.         P4M0=0X00;P4M1=0X00;
  88.         P5M0=0X00;P5M1=0X00;
  89.         P6M0=0X00;P6M1=0X00;

  90.         OLED_Init();
  91.         OLED_Fill(0xff);
  92.         delayms(200);
  93.         OLED_Fill(0x00);
  94.         delayms(200);
  95.         OLED_CLS();
  96.        
  97.         Uart2_Init();
  98.        
  99.         zhoucqh();

  100.         ESP8266_Init();
  101.         duishi();

  102.        

  103.        
  104.         while(1)
  105.         {
  106.                 temget();
  107.                 wendu=temget();
  108.                
  109.                 DHT11_receive();
  110.                
  111.                 Ds3231ReadTime();
  112.                 shijian();
  113.                 riqi();
  114.         }       
  115. }

  116. void riqi(void)
  117. {
  118.         OLED_P8x16Ch(0,0,yue/10);
  119.         OLED_P8x16Ch(8,0,yue%10);  
  120.         OLED_P8x16Ch(16,0,13);
  121.         OLED_P8x16Ch(24,0,ri/10);
  122.         OLED_P8x16Ch(32,0,ri%10);
  123.         OLED_P8x16Ch(80,0,12);
  124.         OLED_P8x16Ch(88,0,wendu%100/10);
  125.         OLED_P8x16Ch(96,0,wendu%10);
  126.         OLED_P8x16Ch(104,0,11);
  127.         OLED_P8x16Ch(112,0,RH/10);
  128.         OLED_P8x16Ch(120,0,RH%10);
  129. }
  130. void shijian(void)
  131. {
  132.         OLED_P16x32Ch(0,2,shi/10);
  133.         OLED_P16x32Ch(16,2,shi%10);
  134.         OLED_P16x32Ch(32,2,10);
  135.         OLED_P16x32Ch(48,2,fen/10);
  136.         OLED_P16x32Ch(64,2,fen%10);
  137.         OLED_P16x32Ch(80,2,10);
  138.         OLED_P16x32Ch(96,2,miao/10);
  139.         OLED_P16x32Ch(112,2,miao%10);
  140.        
  141.         OLED_P16x16Ch(0,6,24);
  142.         OLED_P16x16Ch(16,6,25);
  143.         if(zhou==0)OLED_P16x16Ch(32,6,26);
  144.         else OLED_P16x16Ch(32,6,zhou);
  145. }
復制代碼

程序還有待改善,大家一起完善下:
oled學習.rar (85.02 KB, 下載次數: 521)



作者: 735251    時間: 2021-5-8 07:49
備注下:mcu頻率為22.1184     esp8266 115200     DHT11對時鐘要求較高,個人修改要注意,  定時器為附帶,可以刪除
作者: 民盛    時間: 2021-5-14 21:25
謝謝,正在學習。十分感謝。
作者: liufeng180840    時間: 2021-6-3 10:27
謝謝啦,可以學習一下,可以使用stm32單片機開發
作者: longqishi57777    時間: 2021-12-14 16:16
相當不錯的資源,下載來研究研究
作者: 1067097173    時間: 2022-2-8 17:12
謝謝啦,可以學習一下,可以使用stm32單片機開發
作者: 天使的眼淚    時間: 2022-2-10 17:55

謝謝,正在學習。十分感謝。
作者: feitian88888    時間: 2022-3-3 12:12
我正在進行中,學習一下
作者: longqishi57777    時間: 2022-4-24 14:49
非常不錯,實測可用
作者: longqishi57777    時間: 2022-5-9 16:24
稍稍修改一下,ESP8266.c中的串口2中斷函數里面,變量a,b應該為static
作者: lids    時間: 2023-2-1 14:42
我單片機用的15F2K60S2,不接WiFi模塊OLED能正常顯示,接上WiFi模塊OLED 屏幕就不停的閃,是什么原因呢?     WiFi模塊用串口助手調試能獲取到網絡時間

51hei圖片編輯_20230201145817.jpg (41.3 KB, 下載次數: 109)

51hei圖片編輯_20230201145817.jpg

51hei圖片_20230201145845.jpg (72.31 KB, 下載次數: 98)

51hei圖片_20230201145845.jpg

作者: lids    時間: 2023-2-1 15:18
按照樓主的程序,單片機用的STC15F2K60S2,接上WiFi模塊(接在單片機的串口2),OLED 屏幕閃爍,不顯示字符,不接WiFi模塊OLED能正常顯示,請教這是什么原因呢?

51hei圖片_20230201145845.jpg (72.31 KB, 下載次數: 114)

51hei圖片_20230201145845.jpg

51hei圖片編輯_20230201145817.jpg (41.3 KB, 下載次數: 109)

51hei圖片編輯_20230201145817.jpg

作者: lids    時間: 2023-2-7 13:48
原來WiFi模塊插上OLED 屏幕就閃,是我的51開發板的3.3V有問題,換單獨的3.3V電源就好了
在串口助手里面設置WiFi模塊方法如下:
esp8266獲取網絡時間
1.使用串口發送指令AT+CWMODE=1設置模塊Wi-Fi應用模式為Station模式;

2.發送指令AT+RST重啟模塊使應用模式更改生效;

3.發送指令AT+CWJAP ="ssid","pwd"連接AP;

4.發送指令AT+CIPMUX=0設置模塊為單路連接模式,模塊默認為單路連接模式;

5.發送指令AT+CIPSTART="TCP","api.k780.com",80 與服務器建立TCP連接 ;

6.發送指令AT+CIPMODE=1設置模塊傳輸模式為透傳模式;

7.發送指令AT+CIPSEND開啟透傳模式向服務器發送數據,模塊收到此指令后先換行后返回“>”

8.剩下只需要發送 GET api.k780:88/?app=life.time&appkey=10003&sign=b59bc3ef6191eb9f747dd4e83c99f2a4&format=json&HTTP/1.1 \r\n,就能獲取到年月時間。

51hei截圖20230207134554.png (100.44 KB, 下載次數: 96)

51hei截圖20230207134554.png

作者: 102244069    時間: 2025-5-9 10:39
稍稍修改一下,ESP8266.c中的串口2中斷函數里面,變量a,b應該為static




歡迎光臨 (http://m.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 羞羞视频免费在线 | 免费的av | 毛片黄片免费看 | 欧美精品一区二区蜜桃 | 天堂久久天堂综合色 | 成人在线中文 | 久久久夜 | 精品久久久久久久久久久久久久 | 精彩视频一区二区三区 | 日本精品一区二区三区视频 | 国产亚洲精品久久久优势 | 国产69精品久久久久777 | 成人在线视频免费观看 | 国产精品日产欧美久久久久 | 久久国产婷婷国产香蕉 | 成人国产在线观看 | 久久男女视频 | 二区在线观看 | 一区二区三 | 午夜视频在线播放 | 亚洲成人免费在线 | 久在线精品视频 | 亚洲一区二区三区免费在线观看 | 91精品国产一区二区三区 | 午夜免费| 国产99久久| 国产一区二区三区四 | www.伊人.com| 亚洲精品一区二区 | 最新中文字幕在线 | 中文字幕一区二区三区四区五区 | 久草网免费 | 超碰在线免费av | 亚洲国产精品视频一区 | 午夜影院中文字幕 | 国产特级毛片 | 欧美一区二区三区大片 | 不卡的av在线 | 三级成人片 | 91综合网| 五月婷婷导航 |