找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9718|回復(fù): 12
打印 上一主題 下一主題
收起左側(cè)

STC15單片機(jī)+DS3231+DS18B20+DHT11+OLED12864+ESP8266_01S組成網(wǎng)絡(luò)時(shí)間 有待改善

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
#
每個(gè)文件分開   可以少點(diǎn)彎路   


制作出來的實(shí)物圖如下:


單片機(jī)源程序如下:
  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. /*********************定時(shí)器函數(shù)************************************/

  16. void Timer0Init()                //100微秒@22.1184MHz
  17. {
  18.         AUXR |= 0x80;                //定時(shí)器時(shí)鐘1T模式
  19.         TMOD &= 0xF0;                //設(shè)置定時(shí)器模式
  20.         TL0 = 0x5C;                //設(shè)置定時(shí)初始值
  21.         TH0 = 0xF7;                //設(shè)置定時(shí)初始值
  22.         TF0 = 0;                //清除TF0標(biāo)志
  23.         TR0 = 1;                //定時(shí)器0開始計(jì)時(shí)
  24. }
  25. void Timer1Init()                //1000微秒@22.1184MHz
  26. {
  27.         AUXR |= 0x40;                //定時(shí)器時(shí)鐘1T模式
  28.         TMOD &= 0x0F;                //設(shè)置定時(shí)器模式
  29.         TL1 = 0x9A;                //設(shè)置定時(shí)初始值
  30.         TH1 = 0xA9;                //設(shè)置定時(shí)初始值
  31.         TF1 = 0;                //清除TF1標(biāo)志
  32.         TR1 = 1;                //定時(shí)器1開始計(jì)時(shí)
  33. }
  34. void timer0() interrupt 1
  35. {
  36.         TL0 = 0x5C;                //設(shè)置定時(shí)初始值
  37.         TH0 = 0xF7;                //設(shè)置定時(shí)初始值
  38.         TF0 = 0;
  39.         b++;
  40.         if(b>1000)
  41.         {
  42.         b=0;
  43.         led1=~led1;
  44.         }
  45. }
  46. void timer1() interrupt 3 //定時(shí)器1的中斷
  47. {
  48.         TL1 = 0x9A;                //設(shè)置定時(shí)初始值
  49.         TH1 = 0xA9;                //設(shè)置定時(shí)初始值
  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();//初始化定時(shí)器0
  76.         Timer1Init();//初始化定時(shí)器1
  77.        
  78.         EA=1;//開啟總中斷
  79.         ET0=1;//開啟定時(shí)器0中斷
  80.         ET1=1;//開啟定時(shí)器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. }
復(fù)制代碼

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


評分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏34 分享淘帖 頂5 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

來自 12#
ID:834389 發(fā)表于 2021-5-8 07:49 | 只看該作者
備注下:mcu頻率為22.1184     esp8266 115200     DHT11對時(shí)鐘要求較高,個(gè)人修改要注意,  定時(shí)器為附帶,可以刪除
回復(fù)

使用道具 舉報(bào)

11#
ID:140489 發(fā)表于 2023-2-7 13:48 | 只看該作者
原來WiFi模塊插上OLED 屏幕就閃,是我的51開發(fā)板的3.3V有問題,換單獨(dú)的3.3V電源就好了
在串口助手里面設(shè)置WiFi模塊方法如下:
esp8266獲取網(wǎng)絡(luò)時(shí)間
1.使用串口發(fā)送指令A(yù)T+CWMODE=1設(shè)置模塊Wi-Fi應(yīng)用模式為Station模式;

2.發(fā)送指令A(yù)T+RST重啟模塊使應(yīng)用模式更改生效;

3.發(fā)送指令A(yù)T+CWJAP ="ssid","pwd"連接AP;

4.發(fā)送指令A(yù)T+CIPMUX=0設(shè)置模塊為單路連接模式,模塊默認(rèn)為單路連接模式;

5.發(fā)送指令A(yù)T+CIPSTART="TCP","api.k780.com",80 與服務(wù)器建立TCP連接 ;

6.發(fā)送指令A(yù)T+CIPMODE=1設(shè)置模塊傳輸模式為透傳模式;

7.發(fā)送指令A(yù)T+CIPSEND開啟透傳模式向服務(wù)器發(fā)送數(shù)據(jù),模塊收到此指令后先換行后返回“>”

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

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

51hei截圖20230207134554.png
回復(fù)

使用道具 舉報(bào)

10#
ID:140489 發(fā)表于 2023-2-1 15:18 | 只看該作者
按照樓主的程序,單片機(jī)用的STC15F2K60S2,接上WiFi模塊(接在單片機(jī)的串口2),OLED 屏幕閃爍,不顯示字符,不接WiFi模塊OLED能正常顯示,請教這是什么原因呢?

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

51hei圖片_20230201145845.jpg

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

51hei圖片編輯_20230201145817.jpg
回復(fù)

使用道具 舉報(bào)

9#
ID:140489 發(fā)表于 2023-2-1 14:42 | 只看該作者
我單片機(jī)用的15F2K60S2,不接WiFi模塊OLED能正常顯示,接上WiFi模塊OLED 屏幕就不停的閃,是什么原因呢?     WiFi模塊用串口助手調(diào)試能獲取到網(wǎng)絡(luò)時(shí)間

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

51hei圖片編輯_20230201145817.jpg

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

51hei圖片_20230201145845.jpg
回復(fù)

使用道具 舉報(bào)

8#
ID:507540 發(fā)表于 2022-5-9 16:24 | 只看該作者
稍稍修改一下,ESP8266.c中的串口2中斷函數(shù)里面,變量a,b應(yīng)該為static
回復(fù)

使用道具 舉報(bào)

7#
ID:507540 發(fā)表于 2022-4-24 14:49 | 只看該作者
非常不錯(cuò),實(shí)測可用
回復(fù)

使用道具 舉報(bào)

6#
ID:644764 發(fā)表于 2022-3-3 12:12 | 只看該作者
我正在進(jìn)行中,學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

5#
ID:466595 發(fā)表于 2022-2-10 17:55 | 只看該作者

謝謝,正在學(xué)習(xí)。十分感謝。
回復(fù)

使用道具 舉報(bào)

地板
ID:1004419 發(fā)表于 2022-2-8 17:12 | 只看該作者
謝謝啦,可以學(xué)習(xí)一下,可以使用stm32單片機(jī)開發(fā)
回復(fù)

使用道具 舉報(bào)

板凳
ID:507540 發(fā)表于 2021-12-14 16:16 | 只看該作者
相當(dāng)不錯(cuò)的資源,下載來研究研究
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:270740 發(fā)表于 2021-6-3 10:27 | 只看該作者
謝謝啦,可以學(xué)習(xí)一下,可以使用stm32單片機(jī)開發(fā)
回復(fù)

使用道具 舉報(bào)

樓主
ID:161785 發(fā)表于 2021-5-14 21:25 來自手機(jī) | 只看該作者
謝謝,正在學(xué)習(xí)。十分感謝。
回復(fù)

使用道具 舉報(bào)

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

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表