仿真版本: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è)計合集