1. 程式人生 > 實用技巧 >498【畢設課設】基於STM32微控制器酒精檢測防酒駕系統酒精報警器設計

498【畢設課設】基於STM32微控制器酒精檢測防酒駕系統酒精報警器設計

【資源下載】下載地址如下:
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);		//讀取資料	
	
}