利用空閑時間自學單片機 ,用1.3寸OLED DS18B20 光敏傳感器來顯示溫度,白天和晚上圖片切換。本人用的是1.3寸OLED,若用0.96寸OLED部分代碼要做修改(代碼中有注釋),光敏傳感器中的靈敏度可以調整。由于本人時間不是很足,又是自學,有不足的地方還請大家能指正,能學習和進步得更快一些。代碼在附件中。
制作出來的實物圖如下:
單片機源程序如下:
- #include "oled.h"
- #include "DS18b20.h"
- #include "gmcg.h"
- #include "bmp.h"
- int main(void)
- {
-
- P3M1 = 0;
- P3M0 = 0; //P3設置為準雙向口
- P5M1 = 0;
- P5M0 = 0; //P3設置為準雙向口
-
- iicInit(); //硬件iic初始化
- P_SW2 = 0x80;
- OLED_Init(); //初始化OLED
- OLED_Clear(); //清屏
-
- OLED_ShowCHinese(78,6,0); //顯示漢字好
- OLED_ShowCHinese(96,6,1); //顯示漢字開
- OLED_ShowCHinese(114,6,2); //顯示漢字心
- OLED_ShowCHinese(0,6,3); //顯示漢字溫
- OLED_ShowCHinese(18,6,4); //顯示漢字度
- OLED_ShowString(34,6,":",16);
- OLED_DrawBMP(90,1,128,5,BMP1); //顯示BMP1笑臉圖片
-
- while(1)
- {
- gettemp();
- OLED_Showm(43,6,TH,16);
- delay_ms(1000);
-
- if(gmIN == 0) //光敏傳感器檢測光強度高于一定值,AO針腳輸出低電平
- {
- OLED_DrawBMP(0,0,88,5,BMP2) ; //顯示BMP2 白天太陽云朵
- }
-
- else //光敏傳感器檢測光強度低于一定值,AO針腳輸出高電平
- {
- OLED_DrawBMP(0,0,88,5,BMP5); //顯示BMP6 晚上月亮星星云朵
- }
- }
-
- }
-
復制代碼
Keil代碼下載(附件內只含代碼,不含其他任何文件):
(5)STC8G1K08A 硬IIC光敏傳感器白天晚上圖片切換.zip
(181.26 KB, 下載次數: 149)
2022-11-17 13:24 上傳
點擊文件名下載附件
|