freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機的智能家居防火防盜報警系統(tǒng)畢業(yè)設(shè)計(編輯修改稿)

2025-07-15 17:55 本頁面
 

【文章內(nèi)容簡介】 E003紅外人體傳感器、煙霧濃度、火災(zāi)溫度,加減濃度和溫度上限值。 按鍵1:代替DYPME003紅外人體傳感器進行仿真;按鍵2:火災(zāi)溫度值和煙霧濃度值設(shè)置按鍵,可以設(shè)置火災(zāi)溫度和煙霧濃度的上限值,本設(shè)計的火災(zāi)溫度上限值為45,煙霧濃度上限值為2;按鍵3:增加煙霧濃度上限值和溫度上限值;按鍵4:減少煙霧濃度上限值和溫度上限值; 按鍵電路 LED燈LED燈一端和地相連,一端和AT89S52的P3口相應(yīng)端口相連。2個LED燈分別顯示火災(zāi)或入侵報警和周圍情況正常。 LED顯示電路火災(zāi)溫度和煙霧濃度顯示采用四位七段LED共陽數(shù)碼管顯示,: 顯示電路 開 始5系統(tǒng)軟件設(shè)計 系統(tǒng)初始化 非法入侵采集 煙霧采集溫度采集 A/D轉(zhuǎn)換數(shù)據(jù)處理超過報警上限?有無入侵?進入子程序報警 Y N溫度、濃度顯示,報警電路工作 返 回 軟件流程圖本論文中,軟件解決的主要問題是檢測溫度傳感器、煙霧傳感器和紅外人體傳感器的溫度信號、煙霧信號和非法入侵信號,然后對信號進行顯示和判斷,在超出預(yù)設(shè)報警值時候發(fā)出報警。主程序主要是完成系統(tǒng)初始化、設(shè)置中斷矢量、以及調(diào)用顯示等等。主程序部分如下所示:Main主程序: include include include include unsigned char value=1。 unsigned char count=0。 void main() { TMOD=0x11。 //定時器T1初始化 TH1=(655351000)/256。 TL1=(655351000)%256。 EA=1。 ET0=1。 ET1=1。 TR0=1。 TR1=1。 Init_DS18B20()。 //溫度芯片初始化 P0=0xff。 //初始化斷口 P1=0xff。 P3=0xff。 while(1) { Scan_Key()。 baojin() value = ReadAdc0832(0);//讀取溫度傳感器的溫度 } }本次設(shè)計由于采用集成數(shù)字溫度傳感器DS18B20,所以不需A/D轉(zhuǎn)換。本次設(shè)計中為了演示方便,將溫度傳感器的報警限設(shè)為45℃,而在實際當中其溫度報警限為60℃。:開始初始化DS18B20寫控制字讀取溫度返回 溫度采集流程圖 18b20程序:includesbit DQ = P2^3。void Delay(int num)//延時函數(shù) 2uS/次 { while(num)。}void Init_DS18B20(void)//初始化ds18b20{ unsigned char x=0。 DQ = 1。 //DQ復(fù)位 Delay(8)。 //稍做延時 DQ = 0。 //單片機將DQ拉低 Delay(80)。 //精確延時 大于 480us DQ = 1。 //拉高總線 Delay(14)。//稍作延時后,若x=0則初始化成功,x=1則初始化失敗 x=DQ。 Delay(20)。}unsigned char ReadOneChar(void)//讀一個字節(jié){ unsigned char i=0。 unsigned char dat = 0。 for (i=8。i0。i) { DQ = 0。 // 給脈沖信號 dat=1。 DQ = 1。 // 給脈沖信號 if(DQ) dat|=0x80。 Delay(4)。 } return(dat)。}void WriteOneChar(unsigned char dat)//寫一個字節(jié){ unsigned char i=0。 for (i=8。 i0。 i) { DQ = 0。 DQ = datamp。0x01。 Delay(5)。 DQ = 1。 dat=1。 }}unsigned int ReadTemperature(void)//讀取溫度{ unsigned char a=0。 unsigned char b=0。 unsigned int t=0。 float tt=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過讀序號列號的操作 WriteOneChar(0x44)。 // 啟動溫度轉(zhuǎn)換 Init_DS18B20()。 WriteOneChar(0xCC)。 //跳過讀序號列號的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器 a=ReadOneChar()。 //讀低8位 b=ReadOneChar()。 //讀高8位 t=b。 t=8。 t=t|a。 tt=t*。 t= tt*10+。 //放大10倍輸出并四舍五入 return(t)。} 煙霧采集處理模塊 1.標度變換概念智能儀器檢測的物理量,一般都是由傳感器轉(zhuǎn)換為電量,在經(jīng)過數(shù)據(jù)采集系統(tǒng)后得到與被測量相對應(yīng)的數(shù)字量。也就是說,在不同的智能化儀器中,同樣的數(shù)字量所代表的物理量及其值是不同的。通常采用一定的處理技術(shù)將這些數(shù)字量轉(zhuǎn)換為具有不同綱量的相應(yīng)物理量,這一技術(shù)稱為標度變換2.標度變換的原理若被測量物理量的變換范圍在A0Am(即傳感器的測量上下限),物理量的實際測量值為Ax;而A0對應(yīng)的數(shù)字量為N0 ,Am 所對應(yīng)的數(shù)字量為Nm ,Ax 對應(yīng)的數(shù)字量為Nx。若同時包括傳感器再內(nèi)的整個數(shù)據(jù)采集系統(tǒng)是線性的,則標度變換公式為:Ax=A0+(AmA0)*(NxN0)/(NmN0) (531)本設(shè)計中由于采集的是負載電阻的電壓值,進而得出氣敏感測器的電阻值,從而求得對應(yīng)的濃度值。為了便于后面的處理,首先采集電壓值并進行標度變換,則有:Ax=A0+(AmA0)*(NxN0)/(NmN0)=0+(50)*( Nx0)/(2550)= Nx/51 (532) 驅(qū)動ADC0809的IN0、IN1進行A/D轉(zhuǎn)換,單片機接收轉(zhuǎn)換好的數(shù)據(jù),存入指定存儲器單元,由中斷服務(wù)程序完成。每次驅(qū)動A/D轉(zhuǎn)換后等待外部中斷0,中斷到來說明A/D轉(zhuǎn)換已經(jīng)完成,通過中斷服務(wù)程序讀取轉(zhuǎn)換得到的數(shù)據(jù)并進行標度變換。注意:當cs由高變低時,選中ADC0832。在時鐘的上升沿,DI端的數(shù)據(jù)移入ADC0832內(nèi)部的多路地址移位寄存器。在第一個時鐘期間,Dl為高,表示啟動位,緊接著輸入兩位配置位。當輸入啟動位和配置位后,選通輸入模擬通道,轉(zhuǎn)換開始。轉(zhuǎn)換開始后,經(jīng)過一個時鐘周期延遲,以使選定的通道穩(wěn)定。ADC0832接著在第4個時鐘下降沿輸出轉(zhuǎn)換數(shù)據(jù)。數(shù)據(jù)輸出時先輸出最高位(D7DO);輸出完轉(zhuǎn)換結(jié)果后,又以最低位開始重新輸出一遍數(shù)據(jù)(D7DO),兩次發(fā)送的最低位共享。當片選cS為高時,內(nèi)部所有寄存器清0,輸出變?yōu)楦咦钁B(tài)。如果要再進行一次模傲轉(zhuǎn)換,片選cs必須再次從高向低跳變,后面再輸入啟動位和配置位。 ADC0832程序: ifndef _ADC0832_H_ define _ADC0832_H_ include include define uchar unsigned char define uint unsigned int extern void _nop_ (void)。 uchar ReadAdc0832( uchar channel )。//ADC0832端口定義 sbit P3_2 = P2^1。 //sck sbit P3_3 = P2^2。 //IO sbit P3_4 = P2^0。 //片選 define ADC0832_SCK_H P3_2 = 1 define ADC0832_SCK_L P3_2 = 0 define ADC0832_DIDO_
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1