437【畢設課設】基於STM32微控制器水質渾濁度光照強度閾值報警器設計

theroadon發表於2020-11-08

【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl

STM32微控制器水質渾濁度光照強度閾值報警器設計126
 本系統由STM32F103C8T6微控制器核心板、光敏感測器、LCD1602液晶顯示、蜂鳴器報警、按鍵控制及電源組成。
1、通過感測器檢測感測器實際值,並將感測器實際值顯示在LCD1602液晶上。
2、感器檢測採用的是AD資料轉換,然後經過運算獲得的,可以作為光照採集或者水質清澈度對比。
3、三個按鍵設定閾值,分別為設定鍵、設定+、設定-,其中設定+、設定-只有在設定模式下才能進行操作。
4、在設定模式下,液晶有對應的顯示標誌,設定閾值儲存到微控制器Flash中,具有掉電不丟失,無需重新設定。
5、設定值與採集值實時對比,如果出現異常情況,蜂鳴器報警提醒。

unsigned int sensorVal = 0; //當前採集值
unsigned int adcx;	 	
	 
unsigned int setNum = 50; //設定值
unsigned char setMode = 0;//預設手動模式
unsigned char disFlag = 0;//顯示標誌

#define FLASH_SAVE_ADDR  0X08010000 	// 注意不同晶片 扇區flash地址不一樣 設定FLASH 儲存地址(必須為偶數,且其值要大於本程式碼所佔用FLASH的大小+0X08000000)
//stm32f103R8T6 flash地址範圍 0x8010000-0x801FFFF
//stm32f103C8T6 flash地址範圍 0x8000000-0x807FFFF

#define SIZE 10	 	//陣列長度
unsigned char  setFlashBuf[10];//儲存資料'

unsigned char initFlagData;	//初始化資料存讀取
/******************把資料儲存到微控制器內部eepom中******************/
void write_FlashBuf(void)
{
	setFlashBuf[0] = initFlagData;
	setFlashBuf[1] =  setNum / 256;  //重新寫入值
	setFlashBuf[2] =  setNum % 256; 
	STMFLASH_Write(FLASH_SAVE_ADDR,(u16*)setFlashBuf,SIZE);		//讀取資料	
	
}

相關文章