找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

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

STC8G1K08A單片機(jī)硬IIC 1.3 OLED DS18B20光敏傳感器白天晚上圖片切換程序

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:921294 發(fā)表于 2022-11-17 13:25 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
     利用空閑時(shí)間自學(xué)單片機(jī) ,用1.3寸OLED DS18B20 光敏傳感器來(lái)顯示溫度,白天和晚上圖片切換。本人用的是1.3寸OLED,若用0.96寸OLED部分代碼要做修改(代碼中有注釋),光敏傳感器中的靈敏度可以調(diào)整。由于本人時(shí)間不是很足,又是自學(xué),有不足的地方還請(qǐng)大家能指正,能學(xué)習(xí)和進(jìn)步得更快一些。代碼在附件中。

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


單片機(jī)源程序如下:
  1. #include "oled.h"
  2. #include "DS18b20.h"
  3. #include "gmcg.h"
  4. #include "bmp.h"



  5. int main(void)
  6. {        
  7.         
  8.          P3M1 = 0;   
  9.      P3M0 = 0;                                //P3設(shè)置為準(zhǔn)雙向口
  10.          P5M1 = 0;   
  11.      P5M0 = 0;                                //P3設(shè)置為準(zhǔn)雙向口
  12.          
  13.          iicInit();                               //硬件iic初始化
  14.      P_SW2 = 0x80;        
  15.          OLED_Init();                             //初始化OLED  
  16.          OLED_Clear();                            //清屏
  17.         

  18.             OLED_ShowCHinese(78,6,0);          //顯示漢字好
  19.                 OLED_ShowCHinese(96,6,1);          //顯示漢字開
  20.             OLED_ShowCHinese(114,6,2);         //顯示漢字心
  21.                  OLED_ShowCHinese(0,6,3);          //顯示漢字溫
  22.                 OLED_ShowCHinese(18,6,4);         //顯示漢字度
  23.              OLED_ShowString(34,6,":",16);
  24.             OLED_DrawBMP(90,1,128,5,BMP1);    //顯示BMP1笑臉圖片
  25.          
  26.         while(1)
  27.         {        
  28.         gettemp();
  29.                 OLED_Showm(43,6,TH,16);
  30.             delay_ms(1000);
  31.          
  32.                 if(gmIN == 0)                     //光敏傳感器檢測(cè)光強(qiáng)度高于一定值,AO針腳輸出低電平
  33.      {      
  34.                 OLED_DrawBMP(0,0,88,5,BMP2) ;          //顯示BMP2 白天太陽(yáng)云朵
  35.          }
  36.          
  37.          else                                 //光敏傳感器檢測(cè)光強(qiáng)度低于一定值,AO針腳輸出高電平
  38.          {
  39.                 OLED_DrawBMP(0,0,88,5,BMP5);               //顯示BMP6 晚上月亮星星云朵
  40.          }

  41.         }         
  42.         
  43. }
  44.         
復(fù)制代碼

Keil代碼下載(附件內(nèi)只含代碼,不含其他任何文件):
(5)STC8G1K08A 硬IIC光敏傳感器白天晚上圖片切換.zip (181.26 KB, 下載次數(shù): 149)

評(píng)分

參與人數(shù) 2黑幣 +80 收起 理由
wpppmlah + 30 贊一個(gè)!
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏7 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:921294 發(fā)表于 2022-11-17 13:27 | 只看該作者
燒錄頻率要設(shè)為22.1184MHZ
回復(fù)

使用道具 舉報(bào)

板凳
ID:237354 發(fā)表于 2022-11-17 22:04 | 只看該作者
鎖緊座電路板起什么作用?
回復(fù)

使用道具 舉報(bào)

地板
ID:921294 發(fā)表于 2022-11-18 09:10 | 只看該作者
那是STC燒錄器,也可以燒錄插件IC
回復(fù)

使用道具 舉報(bào)

5#
ID:1047308 發(fā)表于 2022-11-18 12:06 | 只看該作者
我也在自學(xué),有不明白的地方還要請(qǐng)教
回復(fù)

使用道具 舉報(bào)

6#
ID:688905 發(fā)表于 2022-11-18 13:59 來(lái)自手機(jī) | 只看該作者
給樓主點(diǎn)贊!我也是初學(xué)者,請(qǐng)問(wèn)STC8G1K08A能否實(shí)現(xiàn)這個(gè)功能:同時(shí)輸出2路pwm信號(hào)。一路頻率固定占空比可調(diào),用于產(chǎn)生穩(wěn)定的直流可調(diào)電壓;一路輸出占空比50%頻率可在1-4mhz間調(diào)整,用作測(cè)試信號(hào)。
回復(fù)

使用道具 舉報(bào)

7#
ID:468878 發(fā)表于 2022-11-18 14:39 | 只看該作者
skyrusher 發(fā)表于 2022-11-18 13:59
給樓主點(diǎn)贊!我也是初學(xué)者,請(qǐng)問(wèn)STC8G1K08A能否實(shí)現(xiàn)這個(gè)功能:同時(shí)輸出2路pwm信號(hào)。一路頻率固定占空比可調(diào) ...

你這個(gè)功能是可以,但是以單片機(jī)的速率,輸出4MHZ應(yīng)該是不可能的,幾百PWMK都很勉強(qiáng)?梢暂敵龇诸l主時(shí)鐘信號(hào),頻率會(huì)高點(diǎn),但也到不了4M。
回復(fù)

使用道具 舉報(bào)

8#
ID:921294 發(fā)表于 2022-11-18 17:43 | 只看該作者
  用STC8G1K08A可以實(shí)現(xiàn)同時(shí)輸出2路PWM,用PCA    T0    T1  都可以實(shí)現(xiàn)PWM,可以參考一下STC—ISP下載軟件上的范例程序。和樓上的意見(jiàn)相同,用系統(tǒng)時(shí)鐘分頻,最后輸出頻率到不了那么高。
回復(fù)

使用道具 舉報(bào)

9#
ID:688905 發(fā)表于 2022-11-18 19:02 | 只看該作者
:handshake 謝謝上面兩位耐心解答!
回復(fù)

使用道具 舉報(bào)

10#
ID:1042619 發(fā)表于 2022-11-30 14:38 | 只看該作者

回復(fù)

使用道具 舉報(bào)

11#
ID:28625 發(fā)表于 2022-12-2 08:03 | 只看該作者
0.96的4針可以通用嗎
回復(fù)

使用道具 舉報(bào)

12#
ID:433219 發(fā)表于 2022-12-2 11:34 | 只看該作者

要看oled上的驅(qū)動(dòng)ic是什么型號(hào)
回復(fù)

使用道具 舉報(bào)

13#
ID:28625 發(fā)表于 2022-12-2 20:26 | 只看該作者
wkman 發(fā)表于 2022-12-2 11:34
要看oled上的驅(qū)動(dòng)ic是什么型號(hào)

1306的
回復(fù)

使用道具 舉報(bào)

14#
ID:921294 發(fā)表于 2022-12-3 11:11 | 只看該作者
    我用的是1.3寸的OLED,有2塊分別從2個(gè)不同的地方買的,都是IIC的,驅(qū)動(dòng)全是1116的,雖然背面元件排列有點(diǎn)不同,但2個(gè)屏完全通用。
回復(fù)

使用道具 舉報(bào)

15#
ID:1042702 發(fā)表于 2022-12-5 09:30 | 只看該作者

寫的太好了,可以好好學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

16#
ID:28625 發(fā)表于 2022-12-11 14:09 | 只看該作者
我用STC8H8K64U上午芯片點(diǎn)不亮呢?
回復(fù)

使用道具 舉報(bào)

17#
ID:28625 發(fā)表于 2022-12-11 15:19 | 只看該作者
為什么我用STC8H8K64U寫不成功呢
回復(fù)

使用道具 舉報(bào)

18#
ID:654797 發(fā)表于 2022-12-11 18:46 | 只看該作者
STC8的芯片好像不能用STC89的燒錄座燒程序了呀!用什么燒錄座才行呀
回復(fù)

使用道具 舉報(bào)

19#
ID:921294 發(fā)表于 2022-12-13 19:08 | 只看該作者
    今天下午剛收到了一塊大科電子的STC8H8K64U的最小系統(tǒng)板,測(cè)試了一下,燒錄到里面OLED是不亮的。對(duì)比了一下8G和8H的手冊(cè)硬IIC內(nèi)容,沒(méi)看出來(lái)有什么明顯的區(qū)別,參照了STC—ISP上的硬IIC例程修改了一下部分代碼,還是不行,但是用軟IIC 8G和8H就都沒(méi)有問(wèn)題。感到一頭霧水,為啥硬IIC 8G行,8H就不行。
     看了一些資料,硬IIC和軟IIC各有優(yōu)點(diǎn):
     1. 硬件IIC用法稍復(fù)雜,模擬IIC的流程更清楚一些。
     2. 硬件IIC速度比模擬快,并且可以用DMA
     3. 模擬IIC可以在任何管腳上,而硬件只能在固定管腳上。
     想到了前陣子用硬IIC同一個(gè)SDA和SCL接2個(gè)器件時(shí),就出現(xiàn)問(wèn)題,用軟IIC也是沒(méi)有問(wèn)題。想到這里,我就把 iicInit(); 從MAIN主函數(shù)里直接放到void OLED_Init(void)里就好了。
   現(xiàn)在測(cè)試好了,顯示正常。

   
回復(fù)

使用道具 舉報(bào)

20#
ID:1034178 發(fā)表于 2023-10-17 11:07 來(lái)自手機(jī) | 只看該作者
1306oled屏i2c地址是0x3c還是ox78?我在arduino用3c點(diǎn)亮,怎么keil例程全是0x78?
回復(fù)

使用道具 舉報(bào)

21#
ID:1110792 發(fā)表于 2024-9-13 21:49 | 只看該作者
正在學(xué)習(xí),有參考價(jià)值。
回復(fù)

使用道具 舉報(bào)

22#
ID:1131387 發(fā)表于 2024-9-14 13:51 | 只看該作者
學(xué)習(xí)單片機(jī)是不是要先把C語(yǔ)言學(xué)好呢?
回復(fù)

使用道具 舉報(bào)

23#
ID:1067504 發(fā)表于 2024-9-17 08:55 來(lái)自手機(jī) | 只看該作者
有原理圖嗎?
回復(fù)

使用道具 舉報(bào)

24#
ID:921294 發(fā)表于 2024-9-18 08:50 | 只看該作者
這個(gè)芯片相對(duì)簡(jiǎn)單,只有8個(gè)腳,沒(méi)有畫原理圖,程序中可以找到接線引腳,光敏傳感器: sbit  gmIN=P5^4   1腳;    OLED :  P_SW2 = 0xb0;   // SCL(3.2   7腳) SDA(3.3     8腳)  ;  RX 3.0  5腳 ;  TX  3.1   6腳; VCC  2腳;GND   4腳。
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

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