資源簡介
021 酒精濃度檢測 仿真 顯示 51單片機

代碼片段和文件信息
#include?
#include?
#include?“lcd1602.h“
/************端口定義********************/
sbit?CS=P1^0;??????//ADC0832片選
sbit?CLK=P1^1;?????//ADC0832時鐘
sbit?DIO=P1^2;?????//ADC0832輸入輸出
/*****************************************/
/********ADC0832的A/D轉換程序************************/
unsigned?char?Get_AD_Result(unsigned?char?ch)
{
? unsigned?char?idat1=0dat2=0;
CS??=?0;?_nop_();?_nop_();????????? //片選使能,低電平有效
CLK?=?0;?_nop_();?_nop_();?????????? //芯片時鐘輸入
DIO?=?1;?_nop_();?_nop_();
CLK?=?1;?_nop_();?_nop_();
//第1個下降沿之前,設DI=1/0
//選擇單端/差分(SGL/DIF)模式中的單端輸入模式
CLK?=?0;DIO?=?1;?_nop_();?_nop_();
CLK?=?1;?????????_nop_();?_nop_();
//第2個下降沿之前設置DI=0/1選擇CHO/CH1
CLK?=?0;
if(ch==0)
DIO?=?0;? //通道0?內部電壓測試
else?DIO?=?1; //通道1?
_nop_();?_nop_();?
CLK?=?1; ?_nop_();?_nop_();
//第3個下降沿之前設置DI=1
CLK?=?0;DIO?=?1;?_nop_();?_nop_();
???//第4-11個下降沿讀數據(MSB->LSB)
for(i=0;i<8;i++)
{
? CLK?=?1;?_nop_();?_nop_();
CLK?=?0;?_nop_();?_nop_();
dat1?=?dat1?<1?|?DIO;
}
//第11-18個下降沿讀數據(LSB->MSB)
for(i=0;i<8;i++)
{
CLK?=?1;?_nop_();?_nop_();
CLK?=?0;?_nop_();?_nop_();
? dat2?=?dat2?<((unsigned?char)(DIO)< }
CS?=?1;//取消片選一個周期結束
//如果MSB->LSB和LSB->MSB讀取的結果相同則返回讀取的結果否則返回0
return?dat1;
// return?(dat1?==?dat2)???dat1:0;//取消校驗
}
sbit?ADDkey=P3^4;
sbit?SECkey=P3^5;
sbit?beep=P3^7;
//酒精檢測相關定義
#define?K_MG_MV?160/128??//傳感器靈敏度系數,可自行校準 60??62??68 128
#define?K_ZERO??30 //傳感器零點漂移
int?alcohol_alarm_value;??//酒精濃度報警值?一般為80mg/L為酒駕檢準
int?alcohol_temp=0;
int?alcohol_value=0;
void?main()
{
??LCD_init();
??alcohol_alarm_value=80;
??
??LCD_write_str(00“alcohol:????mg/L“);
??LCD_write_str(01“Alarm??:????mg/L“);
??LCD_write_num(80alcohol_value);
??LCD_write_num(71alcohol_alarm_value);
? while(1)
{
//酒精檢測? 50mg/L=62.5ppm,傳感器靈敏度應事先校準
// alcohol_temp=500.0*Get_AD_Result(0)/256;//獲取AD轉換值??計算電壓值,單位10毫伏?
// alcohol_temp=alcohol_temp-K_ZERO;??//減去0點漂移??130mV
// if(alcohol_temp<0)?alcohol_temp=0;
// else
// alcohol_temp=alcohol_temp*K_MG_MV;//將mV轉成mg/LK_MG_MV系數需校準?
// alcohol_value=alcohol_temp;?//得到酒精值
??alcohol_value=500.0*Get_AD_Result(0)/256;?//得到酒精值
LCD_write_num(80alcohol_value);??//刷新顯示
??LCD_write_num(71alcohol_alarm_value);?//刷新顯示
??if(ADDkey==0)?//加
{
?while(ADDkey==0);
?alcohol_alarm_value++;
}
if(SECkey==0)//減
{
?while(SECkey==0);
?alcohol_alarm_value--;
}
if(alcohol_value>alcohol_alarm_value)?//判斷報警
{
?beep=0;
}else
{
?beep=1;
}
}
}
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2019-04-24?16:01??021?酒精濃度檢測\
?????目錄???????????0??2019-04-24?16:01??021?酒精濃度檢測\proteus仿真\
?????文件??????121274??2018-03-31?19:05??021?酒精濃度檢測\proteus仿真\alcohol.DSN
?????文件???????22095??2019-04-24?16:01??021?酒精濃度檢測\proteus仿真\alcohol.pdsprj
?????文件?????????872??2019-04-24?16:01??021?酒精濃度檢測\proteus仿真\alcohol.pdsprj.ANOOP.PC1.workspace
?????文件????????1102??2018-03-31?19:05??021?酒精濃度檢測\proteus仿真\alcohol.PWI
?????文件??????121274??2018-03-31?19:05??021?酒精濃度檢測\proteus仿真\Last?Loaded?alcohol.DBK
?????文件???????21535??2018-12-30?16:44??021?酒精濃度檢測\proteus仿真\Last?Loaded?alcohol.pdsbak
?????文件???????21471??2018-12-30?16:45??021?酒精濃度檢測\proteus仿真\仿真圖.pdsprj
?????文件????????2198??2018-12-30?16:53??021?酒精濃度檢測\proteus仿真\仿真圖.pdsprj.ANOOP.PC1.workspace
?????目錄???????????0??2019-04-24?16:01??021?酒精濃度檢測\proteus仿真\源程序\
?????文件???????17808??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol
?????文件????????1288??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.build_log.htm
?????文件????????2937??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.c
?????文件????????9813??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.hex
?????文件??????????46??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.lnp
?????文件????????5806??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.LST
?????文件???????17510??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.M51
?????文件???????15852??2018-12-30?16:46??021?酒精濃度檢測\proteus仿真\源程序\alcohol.OBJ
?????文件?????????402??2018-03-31?19:05??021?酒精濃度檢測\proteus仿真\源程序\alcohol.plg
?????文件???????71646??2018-12-30?16:54??021?酒精濃度檢測\proteus仿真\源程序\alcohol.uvgui.PC1
?????文件????????5443??2018-12-30?16:24??021?酒精濃度檢測\proteus仿真\源程序\alcohol.uvopt
?????文件???????13791??2018-12-30?16:24??021?酒精濃度檢測\proteus仿真\源程序\alcohol.uvproj
?????文件?????????996??2018-03-31?19:04??021?酒精濃度檢測\proteus仿真\源程序\alcohol_Opt.Bak
?????文件???????????0??2016-11-21?17:33??021?酒精濃度檢測\proteus仿真\源程序\alcohol_Uv2.Bak
?????文件????????4031??2018-12-30?16:39??021?酒精濃度檢測\proteus仿真\源程序\lcd1602.h
?????文件??????274617??2018-11-21?20:51??如何運行仿真.docx
?????文件?????????691??2019-04-24?15:13??說明書.txt
評論
共有 條評論