仿真版本:Proteus8.6及以上版本
程序編譯:Keil5 C51
編程語(yǔ)言:C語(yǔ)言
設(shè)計(jì)編號(hào):【U03】
1.? 簡(jiǎn)介
? 本文提出了一種基于51單片機(jī)的煙霧報(bào)警系統(tǒng)。單片機(jī)實(shí)時(shí)通過ADC0808轉(zhuǎn)換芯片采集煙霧傳感器的煙霧的濃度,通過單片機(jī)的數(shù)據(jù)轉(zhuǎn)換處理后在液晶屏上顯示,當(dāng)測(cè)量空氣中的煙霧濃度大于設(shè)置煙霧濃度時(shí),蜂鳴器發(fā)出報(bào)警,煙霧的濃度報(bào)警值可以通過按鍵進(jìn)行設(shè)置。
2.? 主要功能
a.通過LCD1602顯示當(dāng)前煙霧濃度和報(bào)警閾值、實(shí)時(shí)溫度。
b.通過按鍵設(shè)置煙霧濃度報(bào)警閾值。
3.? 源程序(Keil5)
本設(shè)計(jì)采用keil5 C51軟件(內(nèi)附安裝包)實(shí)現(xiàn)程序設(shè)計(jì)。如需用keil4打開程序,可自行通過.c和.h文件新建工程即可。
//程序頭函數(shù)
#include <reg52.h>
//顯示函數(shù)
#include <display.h>
#include <intrins.h>
#include "eeprom52.h"
#include "temp.h"
//宏定義
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1
//管腳聲明
sbit P34=P3^4;//溫度
sbit LED_R= P2^2; //紅指示燈
sbit LED_G= P2^0; //綠色指示燈
sbit FENG = P2^5; //蜂鳴器
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^6;
sbit OE=P3^2;
//按鍵
sbit Key1=P2^6; //設(shè)置按鍵
sbit Key2=P2^7; //加
sbit Key3=P3^7; //減
bit bdata flag;//指示燈和蜂鳴器閃爍報(bào)警標(biāo)志位
uchar set; //設(shè)置標(biāo)志位
//函數(shù)聲明
extern uchar ADC0809();
extern void Key();
unsigned int temp=0;
unsigned int WARNING=100; // 初始報(bào)警值
/******************把數(shù)據(jù)保存到單片機(jī)內(nèi)部eeprom中******************/
void write_eeprom()
{
SectorErase(0x2000);
byte_write(0x2000, WARNING);
byte_write(0x2060, a_a);
}
/******************把數(shù)據(jù)從單片機(jī)內(nèi)部eeprom中讀出來*****************/
void read_eeprom()
{
WARNING = byte_read(0x2000);
a_a = byte_read(0x2060);
}
/**************開機(jī)自檢eeprom初始化*****************/
void init_eeprom()
{
read_eeprom(); //先讀
if(a_a != 1) //新的單片機(jī)初始單片機(jī)內(nèi)問eeprom
{
WARNING=100;
a_a = 1;
write_eeprom(); //保存數(shù)據(jù)
}
}
//初始化函數(shù)
void init()
{
TMOD=0x01; //定時(shí)器0方式1
TL0=0xb0;
TH0=0x3c;
TL1=65000/256;
TH1=65000/256; //賦初值
EA=1; //開總中斷
ET0=1; //允許定時(shí)器0中斷
TR0=1; //定時(shí)器0開
}
4.? 仿真proteus8.6
? 本設(shè)計(jì)采用proteus8.6軟件(內(nèi)附安裝包)實(shí)現(xiàn)仿真設(shè)計(jì),如下圖所示。proteus軟件一般存在高低版本兼容問題,該仿真是通過proteus8.6導(dǎo)出的,所以請(qǐng)盡量使用proteus8.6打開文件,低于proteus8.6的版本不能夠正常使用,高于proteus8.6的版本除了proteus8.8/8.9理論上可以正常使用。
初始界面:
超限報(bào)警:
5.? 設(shè)計(jì)報(bào)告
設(shè)計(jì)報(bào)告主要包括硬件電路、軟件設(shè)計(jì)、仿真調(diào)試等等,僅供參考。
6.? 資料清單
設(shè)計(jì)資料主要包括C程序+仿真+設(shè)計(jì)報(bào)告+使用說明+元件清單+操作視頻等。
7.? 資料獲取鏈接
百度網(wǎng)盤下載鏈接:【U03】百度網(wǎng)盤下載鏈接
更多單片機(jī)仿真設(shè)計(jì)合集:單片機(jī)仿真設(shè)計(jì)合集