498【畢設課設】基於STM32微控制器酒精檢測防酒駕系統酒精報警器設計
阿新 • • 發佈:2020-12-05
【資源下載】下載地址如下:
https://docs.qq.com/doc/DTlRSd01BZXNpRUxl
STM32微控制器酒精檢測防酒駕系統酒精報警器122
本系統由STM32F103C8T6微控制器核心板、酒精感測器、LCD1602液晶顯示、
蜂鳴器報警、按鍵控制及電源組成。
1、通過感測器檢測感測器實際值,並將感測器實際值顯示在LCD1602液晶上。
2、感器檢測採用的是AD資料轉換,然後經過運算獲得的。
3、三個按鍵設定閾值,分別為設定鍵、設定+、設定-,其中設定+、設定-只有在設定模式下才能進行操作。
4、在設定模式下,液晶有對應的顯示標誌,設定閾值儲存到微控制器Flash中,具有掉電不丟失,無需重新設定。
#include "led.h" #include "delay.h" #include "sys.h" #include "usart.h" #include <stdio.h> #include "timer.h" #include "key.h" #include <stdio.h> #include "lcd1602.h" #include "adc.h" #include "stmflash.h" //#define BASICS_VAL 36 //用於資料轉換的基礎值 #define DEFAULT_SET_VAL 100 //第一次下載預設設定值 char dis0[17]; //暫存陣列 char dis1[17]; //暫存陣列 unsigned int sensorVal = 0; //當前採集值 unsigned int adcx; long midData = 0;//中間變數 unsigned int setNum = DEFAULT_SET_VAL; //設定值 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); //讀取資料 }