• 方案介紹
    • 1.? 簡介
    • 2.? 主要功能
    • 3.? 源程序(Keil5)
    • 4.? 仿真proteus8.6
    • 5.? 設(shè)計報告
    • 6.? 資料清單
    • 7.? 資料獲取鏈接
  • 附件下載
  • 相關(guān)推薦
申請入駐 產(chǎn)業(yè)圖譜

基于51單片機(jī)的酒精檢測系統(tǒng)設(shè)計!!!

04/25 09:31
417
加入交流群
掃碼加入
獲取工程師必備禮包
參與熱點資訊討論

單片機(jī)仿真設(shè)計合集資料獲取.pdf

共1個文件

資料清單:C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻

仿真版本:Proteus8.6及以上版本

程序編譯:Keil5 C51

編程語言:C語言

設(shè)計編號:【U05】

1.? 簡介

? 本文提出了一種基于51單片機(jī)的酒精檢測系統(tǒng)。單片機(jī)實時通過ADC0832轉(zhuǎn)換芯片采集酒精傳感器的酒精的濃度,通過單片機(jī)的數(shù)據(jù)轉(zhuǎn)換處理后在液晶屏上顯示,當(dāng)測量酒精濃度大于設(shè)置值時,蜂鳴器發(fā)出報警,酒精濃度報警值可以通過按鍵進(jìn)行設(shè)置。

2.? 主要功能

a.通過LCD1602顯示當(dāng)前酒精濃度、報警閾值。

b.通過按鍵設(shè)置酒精濃度報警閾值。

3.? 源程序(Keil5)

本設(shè)計采用keil5 C51軟件(內(nèi)附安裝包)實現(xiàn)程序設(shè)計。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。

#include <reg51.h>//包含51單片機(jī)寄存器的頭文件
#include <1602.h>//調(diào)用1602.h文件
#include <intrins.h>//包含_nop_函數(shù)定義的頭文件
#define uchar unsigned char
#define uint unsigned int
	
//ADC0832引腳定義
sbit CS = P1^0;//片選使能位,定義為P1^0引腳
sbit CLK = P1^1;//時鐘脈沖輸入位,定義為P1^1引腳
sbit DIO = P1^2;//數(shù)據(jù)信號輸入/輸出,并聯(lián)使用。定義為P1^2引腳

//有害氣體含量變量
uchar temp;			     //用于讀取ADC數(shù)據(jù)
uchar yushe_yanwu= 100;	 //酒精預(yù)設(shè)值

//按鈕模式 
uchar mode=0;	

//管腳聲明
sbit led_yanwu= P2^3;		 //酒精報警燈
sbit baojing= P2^4;			 //蜂鳴器接口

//按鍵
sbit key1=P2^0;				 //設(shè)置鍵
sbit key2=P2^1;				 //加按鍵
sbit key3=P2^2;				 //減按鍵


//1毫秒延時程序(不精確)
void delayms(uint ms)
{
	uchar t;
	while(ms--)
	{
		for(t=0;t<120;t++);
	}
}

//ADC0832函數(shù)
uchar AD()
{
	uchar i,dat1 = 0,dat2 = 0;
	//第一個周期:轉(zhuǎn)換開始
	CS = 0;
	CLK = 0;
	DIO = 1; 
	_nop_(); _nop_();//短暫定時2us——也可以寫成delay2us();,那么程序就要有delay2us();的定義了。
	CLK = 1; _nop_(); _nop_();
	
	
	//第二個周期:選擇選擇單通道還是雙通道  DIO=0雙通道差分 或 DIO=1單通道
	CLK = 0; DIO=1; _nop_();_nop_();
	CLK = 1;        _nop_();_nop_();
	
	//第三個周期:DIO選擇CH1-->如果DIO=0 選擇CH0
	CLK = 0;DIO = 0; _nop_();_nop_();
	CLK = 1;DIO = 1; _nop_();_nop_();
	
	//等待
	CLK = 0; DIO = 1; _nop_();_nop_();
	
	//4-11,共8個下降沿讀取數(shù)據(jù)(MSB->LSB) 先進(jìn)來的為最高位,后進(jìn)來為最低位
	for(i=0;i<8;i++)
	{
		CLK = 1;  _nop_();_nop_();
		CLK = 0;  _nop_();_nop_();
		dat1 = dat1<<1|DIO;
	}
	//11-18 共8個下降沿讀取數(shù)據(jù)(LSB->MSB) 先進(jìn)來的為最低位,后進(jìn)來為最高位
	for(i=0;i<8;i++)
	{
		dat2 = dat2|((uchar)(DIO)<<i);
		CLK = 1;  _nop_();_nop_();
		CLK = 0;  _nop_();_nop_();
	}

4.? 仿真proteus8.6

? 本設(shè)計采用proteus8.6軟件(內(nèi)附安裝包)實現(xiàn)仿真設(shè)計,如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。

初始界面:

超限報警:

5.? 設(shè)計報告

設(shè)計報告主要包括硬件電路、軟件設(shè)計、仿真調(diào)試等等,僅供參考。

6.? 資料清單

設(shè)計資料主要包括C程序+仿真+設(shè)計報告+使用說明+元件清單+操作視頻等。

7.? 資料獲取鏈接

百度網(wǎng)盤下載鏈接:【U05】百度網(wǎng)盤下載鏈接

更多單片機(jī)仿真設(shè)計合集:單片機(jī)仿真設(shè)計合集

  • 單片機(jī)仿真設(shè)計合集資料獲取.pdf
    下載

相關(guān)推薦