1. 程式人生 > >51單片機——My-Clock項目

51單片機——My-Clock項目

環境監測 common 光敏傳感器 pla 連接 all 界面 ram .html

技術:51單片機、光敏傳感器、PCF8591、DHT11、DS1302、OLED顯示屏

概述

項目My-Clock是一個環境監測時鐘,接入光敏傳感器和溫濕度傳感器監測環境信息,加入DS1302模塊用於獲取時間,並用OLED顯示屏進行實時顯示。

詳細

代碼下載:http://www.demodashi.com/demo/14761.html

一、My-Clock簡介

項目My-Clock是一個環境監測時鐘,接入光敏傳感器和溫濕度傳感器監測環境信息,加入DS1302模塊用於獲取時間,並用OLED顯示屏進行實時顯示。由於51單片機內部沒有AD/DA轉換器,所以我們使用PCF8591模塊的AD轉換功能,來轉換光敏傳感器返回的模擬值。

My-Clock的硬件材料有:51單片機、光敏傳感器、PCF8591 AD/DA轉換模塊、DHT11溫濕度傳感器和0.96寸OLED顯示屏(7針)。


二、My-Clock實現

1. 硬件連接:

技術分享圖片

2. OLED如何顯示中文參考上篇文章:http://www.demodashi.com/demo/14753.html

  • 初始化OLED和DS1302:

OLED_Init(); 
Ds1302Init();
  • 獲取:光照強度、溫濕度和時間:

value = (int)ADC(0);    //通道0,獲取光照強度值,數據在value中,int():強制轉換類型
DHT11_receive();        //獲取溫濕度值,數據在my_date數組中
datapros();             //獲取時間,數據在time_data數組中
  • OLED實時顯示:

OLED_ShowCHinese(0,0,7);   //時
OLED_ShowCHinese(16,0,8);  //間
OLED_ShowChar(32,0,‘:‘);   //‘:‘
 
OLED_ShowString(50,0,time_data);   //打印時間
OLED_ShowCHinese(100,0,week-1);    //星期幾
 
OLED_ShowString(0,3,"Temp:");      //打印字符串"Temp"
OLED_ShowChar(40,3,my_date[3]);    //打印溫度值
OLED_ShowChar(48,3,my_date[4]);
OLED_ShowChar(56,3,my_date[5]);
 
OLED_ShowString(72,3,"Hum:");      //打印字符串"Hum"
OLED_ShowChar(104,3,my_date[0]);   //打印濕度值
OLED_ShowChar(112,3,my_date[1]);
OLED_ShowChar(120,3,my_date[2]);
 
OLED_ShowCHinese(0,6,9);   //光
OLED_ShowCHinese(16,6,10); //強
OLED_ShowChar(32,6,‘:‘);   //‘:‘
OLED_ShowNum(40,6,value,2,16);      //打印value值
OLED_ShowString(64,6,"My-Clock");   //打印字符串"My_Clock"

My-Clock效果如圖:

技術分享圖片

My-Clock效果演示視頻:


三、總結

前面教大家如何開發傳感器和使用顯示屏,都是為本文做鋪墊的,做個小項目將所學的知識整合起來是很有必要的。這裏我將獲取到的時間、溫濕度和光照強度值在OLED顯示屏上簡單的顯示出來,後面我也會發表界面更加好看的文章,還有藍牙HC-05的使用等等,希望你的繼續支持!!!


四、項目結構圖

技術分享圖片

代碼下載:http://www.demodashi.com/demo/14761.html

註:本文著作權歸作者,由demo大師發表,拒絕轉載,轉載需要作者授權

51單片機——My-Clock項目