標(biāo)題: 基于51單片機(jī)的1602+ADC0832煙霧報(bào)警系統(tǒng)Proteus仿真程序設(shè)計(jì) [打印本頁(yè)]

作者: 電子電子小宅神    時(shí)間: 2020-10-17 10:42
標(biāo)題: 基于51單片機(jī)的1602+ADC0832煙霧報(bào)警系統(tǒng)Proteus仿真程序設(shè)計(jì)
本設(shè)計(jì)基于51單片機(jī),共有ADC0832數(shù)模轉(zhuǎn)換模塊,1602液晶顯示模塊,按鍵控制與聲光報(bào)警模塊4大模塊組成!可實(shí)現(xiàn)對(duì)煙霧濃度的實(shí)時(shí)監(jiān)測(cè)與反應(yīng)

之后是仿真目錄

下面是部分代碼,想要了解,可以下載文末完整附件!
//基于1602+ADC0832的煙霧/溫度報(bào)警系統(tǒng)
//作者:科技小宅神
//創(chuàng)作時(shí)間:2020/09/20
//版權(quán):科技小宅神原創(chuàng)!抄襲必究,僅供參考學(xué)習(xí)!
#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;//時(shí)鐘脈沖輸入位,定義為P1^1引腳
sbit DIO = P1^2;//數(shù)據(jù)信號(hào)輸入/輸出,并聯(lián)使用。定義為P1^2引腳
//有害氣體含量變量
uchar temp;        //用于讀取ADC數(shù)據(jù)
uchar yushe_yanwu= 255;  //煙霧預(yù)設(shè)值
//按鈕模式
uchar mode=0;
//管腳聲明
sbit led_yanwu= P2^3;   //煙霧報(bào)警燈
sbit baojing= P2^4;    //蜂鳴器接口
//按鍵
sbit key1=P2^5;     //設(shè)置鍵
sbit key2=P2^6;     //加按鍵
sbit key3=P2^7;     //減按鍵

//1毫秒延時(shí)程序(不精確)
void delayms(uint ms)
{
uchar t;
while(ms--)
{
  for(t=0;t<120;t++);
}
}
//ADC0832函數(shù)
uchar AD()
{
uchar i,dat1 = 0,dat2 = 0;
//第一個(gè)周期:轉(zhuǎn)換開始
CS = 0;
CLK = 0;
DIO = 1;
_nop_(); _nop_();//短暫定時(shí)2us——也可以寫成delay2us();,那么程序就要有delay2us();的定義了。
CLK = 1; _nop_(); _nop_();


//第二個(gè)周期:選擇選擇單通道還是雙通道  DIO=0雙通道差分 或 DIO=1單通道
CLK = 0; DIO=1; _nop_();_nop_();
CLK = 1;        _nop_();_nop_();

//第三個(gè)周期: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個(gè)下降沿讀取數(shù)據(jù)(MSB->LSB) 先進(jìn)來(lái)的為最高位,后進(jìn)來(lái)為最低位
for(i=0;i<8;i++)
{
  CLK = 1;  _nop_();_nop_();
  CLK = 0;  _nop_();_nop_();
  dat1 = dat1<<1|DIO;
}
//11-18 共8個(gè)下降沿讀取數(shù)據(jù)(LSB->MSB) 先進(jìn)來(lái)的為最低位,后進(jìn)來(lái)為最高位
for(i=0;i<8;i++)
{
  dat2 = dat2|((uchar)(DIO)<<i);
  CLK = 1;  _nop_();_nop_();
  CLK = 0;  _nop_();_nop_();
}

//禁止片選
CS = 1;
//如果MSB->LSB和LSB->MSB讀取數(shù)據(jù)結(jié)果相同,返回讀取結(jié)果,否者0
return (dat1==dat2) ? dat1 : 0 ;
}

下面是文件夾里的總目錄

全部資料51hei下載地址:
基于1602+ADC0832的煙霧報(bào)警系統(tǒng).zip (121.56 KB, 下載次數(shù): 497)


作者: Unique。    時(shí)間: 2020-11-9 16:25
如果是用漢字顯示要如何編寫呢
作者: ccxniubi    時(shí)間: 2020-11-9 18:01
太好了,解決了我的問(wèn)題!。。。!
作者: 電子電子小宅神    時(shí)間: 2020-11-9 22:08
要購(gòu)買帶中文字庫(kù)的1602以及相應(yīng)的中文取模軟件
作者: 呆呆啊啊啊    時(shí)間: 2020-11-18 16:19
我用pretues7.8好像打不開,新手不知道怎么回事,有解答的嗎?
作者: 51hei團(tuán)團(tuán)    時(shí)間: 2020-11-18 16:27
呆呆啊啊啊 發(fā)表于 2020-11-18 16:19
我用pretues7.8好像打不開,新手不知道怎么回事,有解答的嗎?

pretues7.8不行的,.pdsprj文件要8.8版本可以成功打開
作者: 電子電子小宅神    時(shí)間: 2020-11-19 23:36
呆呆啊啊啊 發(fā)表于 2020-11-18 16:19
我用pretues7.8好像打不開,新手不知道怎么回事,有解答的嗎?

我這是8.6的,建議升級(jí)一下

作者: cfgvbjk    時(shí)間: 2021-3-2 17:15
請(qǐng)問(wèn),一個(gè)ADC0832可以連接兩個(gè)傳感器嗎,一個(gè)壓力傳感器檢測(cè)超載,一個(gè)煙霧傳感器?
作者: 電子電子小宅神    時(shí)間: 2021-3-15 00:29
cfgvbjk 發(fā)表于 2021-3-2 17:15
請(qǐng)問(wèn),一個(gè)ADC0832可以連接兩個(gè)傳感器嗎,一個(gè)壓力傳感器檢測(cè)超載,一個(gè)煙霧傳感器?

不太清楚,應(yīng)該不可以
作者: cfgvbjk    時(shí)間: 2021-3-15 18:06
Unique。 發(fā)表于 2020-11-9 16:25
如果是用漢字顯示要如何編寫呢

還就換個(gè)LCD吧,可以用LCD12864

作者: 幻夜行    時(shí)間: 2021-4-8 09:30
請(qǐng)問(wèn)有ADC0832的補(bǔ)丁嗎,仿真時(shí)報(bào)錯(cuò)顯示找不到這個(gè)模型
作者: Zhzhzhzh    時(shí)間: 2021-5-15 23:04
cfgvbjk 發(fā)表于 2021-3-2 17:15
請(qǐng)問(wèn),一個(gè)ADC0832可以連接兩個(gè)傳感器嗎,一個(gè)壓力傳感器檢測(cè)超載,一個(gè)煙霧傳感器?

可以的
作者: liuyiyi    時(shí)間: 2022-1-12 08:46
下載后有能正常工作的嗎?我用的是8.9版本
作者: blueleafsky    時(shí)間: 2022-4-22 10:50
有沒有人做成實(shí)物驗(yàn)證,我想做一個(gè)出來(lái)看看




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1