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

正文內(nèi)容

家用報(bào)警器——驅(qū)動(dòng)程序畢業(yè)論文(編輯修改稿)

2025-08-13 10:22 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 煙霧傳感器的簡(jiǎn)介 圖 35為煙霧傳感器模塊實(shí)物。這類傳感器在干凈的氣體 中電導(dǎo)率是比較低的。這種煙霧傳感器可以檢測(cè)很多可燃?xì)怏w和有毒氣體和煙霧,非常合適一些廚房、工廠等一些需要注意氣體泄漏的場(chǎng)所。 10 圖 35 煙霧傳感器模塊 圖 36傳感器模塊的引腳圖。 圖 36 煙霧傳感器引腳圖 GSM 模塊( TC35i)概述 這個(gè)模塊能夠工作在兩個(gè)不同的網(wǎng)絡(luò)中,并且可以發(fā)送信息。工作的電壓范圍為 ,電流耗損則分三個(gè)種情況。電話卡工作的電壓是 3V/,模塊的串口可以使用 AT 命令實(shí)現(xiàn)數(shù)據(jù)和指令的傳輸,不但支持 Text 格式的短信息傳送,還支持中文的短消息傳輸, 并且可以通過(guò) AT 指令撥打電話和掛電話。 原理圖繪制與 PCB 線路板的制作 使用 Altium Designer 繪制原理圖 學(xué)會(huì)使用 Altium Designer,如圖 38為本次家用報(bào)警器設(shè)計(jì)的原理圖: 11 圖 38 原理圖 生成 PCB 圖并排版 新建一個(gè) PCB文件并保存為家用報(bào)警器,然后: Design—— Update Schematics in 家用報(bào)警器 .PRJPCB—— Yes—— Create Engineering Order —— Report Differences,結(jié)果如圖 39 所示: 圖 39 家用報(bào)警器 PCB 制作板 制作流程為:打印 —— 過(guò)機(jī) —— 腐蝕 —— 打孔。 元件的安裝與焊接 大體順序,要從小到大,從低到高。 12 4 系統(tǒng)軟件設(shè)計(jì) 系統(tǒng)編程軟件 Keil uVision4 簡(jiǎn)介 Keil uVision4 是一款編程軟件,它能夠編寫(xiě) C 語(yǔ)言代碼,供開(kāi)發(fā)者對(duì)程序的編寫(xiě)、調(diào)試運(yùn)用,操作簡(jiǎn)單實(shí)用。 使用說(shuō)明: ( 1)新創(chuàng)建一個(gè)文件夾命名為“測(cè)試” ( 2)點(diǎn)擊 桌面上的 Keil uVision4 圖標(biāo) ; ( 3)點(diǎn)擊“工程” —— “新建工程”; ( 4)將文件放在“測(cè)試”中,然后保存; ( 5) 找到 “Atmel” ,選定 AT89S52 芯片 ; ( 6) 建立一個(gè)源程序文本 ; ( 7)編 寫(xiě) 我們的 程序 ; ( 8)填寫(xiě)源程序名稱,再加上合適的后綴,比如是 C 語(yǔ)音就要在名字后面加上 .c,然后就 點(diǎn)擊保存; ( 9)將文件添加到工程中; ( 10)最后設(shè)置,點(diǎn)擊 ,在彈出來(lái)的框中將晶振設(shè)置為 ,然后 在Output 欄中 將 Create HEX File 前面的框打勾 , 既選定, 使編譯器輸出單片機(jī)需要的 HEX 文件 ; ( 11) 點(diǎn)擊保持并編譯 。 系統(tǒng)軟件主程序流程圖 軟件主程序流程圖如圖 41 所示: 13 圖 41 主程序流程圖 系統(tǒng)子程序設(shè)計(jì) 按鍵掃描的實(shí)現(xiàn) 在這個(gè)系統(tǒng)中,我們?cè)O(shè)計(jì)了 5 個(gè)鍵,從右到左依次是設(shè)置溫度上升鍵 、設(shè)置溫度下降鍵、停止鍵、備用鍵和復(fù)位鍵。按鍵掃描程序如下: void key() { rd=0。 if(key1==0) //當(dāng) key1 按下時(shí),單片機(jī)檢測(cè)單 P10 口是低電平“ 0”。 { while(!key1)。 //只有當(dāng) key1 松開(kāi)時(shí), tempH 才能++; N Y Y 開(kāi)始 掃描鍵盤 初始化 LCD 并顯示 讀取數(shù)據(jù) 檢測(cè) 熱釋電紅外傳感器 溫度傳感器 煙霧傳感器 是否有信號(hào) 是否有信號(hào) 蜂鳴器報(bào)警 啟動(dòng)花灑 鍵盤設(shè)置溫度上線值 N 按鍵停止 撥打電話 14 tempH++。 if(tempH==125) //當(dāng)設(shè)置溫度加至 125 時(shí),預(yù)設(shè)溫度值變?yōu)?32; tempH=32。 display(0xcd,tempH)。 } if(key2==0) //當(dāng) key2 按下時(shí),單片機(jī)檢測(cè)單 P11 口是低電平“ 0”。 { while(!key2)。 //只有當(dāng) key2 松開(kāi)時(shí), tempH 才能--; tempH。 if(tempH==10) //當(dāng)設(shè)置溫度加至 10 時(shí),預(yù)設(shè)溫度值變?yōu)?32; tempH=32。 display(0xcd,tempH)。 } 蜂鳴器的實(shí)現(xiàn) 在這個(gè)系統(tǒng)我們采用了滴答滴答的聲音,原理就是給蜂鳴器一個(gè)連續(xù)的正弦波,主要要延時(shí)程序?qū)崿F(xiàn)。 延時(shí)程序如下: void Delay1(uint z) { uint x,y。 for(x=z。x0。x) for(y=110。y0。y)。 蜂鳴器設(shè)計(jì)程序如下: void bell() { beep=1。 //給蜂鳴器一個(gè)高電平; DelayMs(100)。//延時(shí) 100ms; beep=0。 //給蜂鳴器一個(gè)低電平; DelayMs(100)。//延時(shí) 100ms; } 溫度傳感器的實(shí)現(xiàn) 溫度傳感器的子程序流程圖如圖 42 所示: 15 圖 42 溫度傳感器子程序流程圖 DS18B20 初始化程序如下: bit Init_DS18B20(void) { bit dat=0。 DQ = 1。 //DQ 復(fù)位 DelayUs2x(5)。 //稍做延時(shí) DQ = 0。 //單片機(jī)將 DQ拉低 DelayUs2x(200)。 //延時(shí) DelayUs2x(200)。 DQ = 1。 //拉高總線 DelayUs2x(50)。 //15~60us 后 接收 60240us 的存在脈沖 dat=DQ。 //如果 x=0 則初始化成功 , x=1 則初始化失敗 DelayUs2x(25)。 //稍作延時(shí)返回 return dat。 } 讀取溫度程序如下: unsigned int ReadTemperature(void) { unsigned char a=0。 unsigned int b=0。 unsigned int t=0。 Init_DS18B20()。 WriteOneChar(0xCC)。 // 跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0x44)。 // 啟動(dòng)溫度轉(zhuǎn)換 DelayMs(10)。 Init_DS18B20()。 開(kāi)始 DS18B20 初始化CHU 讀取一個(gè)字節(jié) 寫(xiě)入一個(gè)字節(jié) 讀取溫度 16 WriteOneChar(0xCC)。 //跳過(guò)讀序號(hào)列號(hào)的操作 WriteOneChar(0xBE)。 //讀取溫度寄存器等(共可讀 9 個(gè)寄存器) 前兩個(gè)就是溫度 a=ReadOneChar()。 //低位 b=ReadOneChar()。 //高位 b=8。 t=a+b。 return(t)。 } 紅外傳感器的實(shí)現(xiàn) 在 LCD 中顯示熱釋電紅外傳感器的狀態(tài),報(bào)警時(shí)顯示: HONG: ON,靜止時(shí)顯示:H:OFF,其子程序流程圖如圖 43 所示: 圖 43 熱釋電紅外傳感器子程序流程圖 程序如下: IR_IN=0。//賦初始值; LCD_Clear()。 //清屏 ; model=1。//正常模式; flag=1。 if(IR_IN==1) { num=1。// 選擇顯示模式 1; LCD_Write_String(0,0,HONG:On)。 //顯示 HONG:On ; Y 開(kāi)始 讀取數(shù)據(jù) LCD 顯示 是否有人 報(bào)警 N 17 Delay1(20xx)。 //延時(shí); } 煙霧傳感器的實(shí)現(xiàn) 在 LCD 中顯示煙霧傳感器的狀態(tài),報(bào)警時(shí)顯示: YAN: ON,靜止時(shí)顯示: Y:OFF,其子程序流程圖如圖 44所示: 圖 44 煙霧傳感器子程序流程圖 程序如下: YAN=1。//賦初始值; if(YAN==0) { num=2。//選擇顯示模式 2; LCD_Write_String(0,0,YANWU:On)。//顯示 YANWU:On; Delay1(20xx)。 } 液晶顯示器的實(shí)現(xiàn) 1602 是一個(gè)啟動(dòng)比較慢的元件,故在剛開(kāi)啟后最好能執(zhí)行一段時(shí)間延時(shí),稍微等待一下。然后先看看顯示器的時(shí)序再對(duì)他進(jìn)行編碼。初始化過(guò)程如圖 45所示: Y Y 開(kāi)始 讀取數(shù)據(jù) LCD 顯示 是否有煙霧或者可燃?xì)怏w 蜂鳴器報(bào)警 N 18 圖 45 初始化 LCD 流程圖 初始化程序如下: void LCD_Init(void) { LCD_Write_Com(0x38)。 /*顯示模式設(shè)置 */ DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 LCD_Write_Com(0x08)。 /*顯示關(guān)閉 */ LCD_Write_Com(0x01)。 /*顯示清屏 */ LCD_Write_Com(0x06)。 /*顯示光標(biāo)移動(dòng)設(shè)置 */ DelayMs(5)。 LCD_Write_Com(0x0C)。 /*顯示開(kāi)及光標(biāo)設(shè)置 */ } 顯示器顯示溫度值的設(shè)計(jì)程序如下: 開(kāi)始 寫(xiě)入命令函數(shù) 寫(xiě)入數(shù)據(jù)函數(shù) 清屏 寫(xiě)入字符串 初始化 19 void display(uchar add, uchar date) { LCD_Write_Com(add)。 LCD_Write_Data(0x30+date/100)。//讀出溫度的百位 LCD_Write_Data(0x30+date/100/10)。//讀出溫度的十位 LCD_Write_Data(0x30+date/100%10)。//讀出溫度的個(gè)位 } 模塊( TC35i)的實(shí)現(xiàn) GSM 模塊子程序?qū)崿F(xiàn)流程圖 如圖 46 所示 圖 46 GSM 模塊的實(shí)現(xiàn) 打電話程序如下: void ATD(void) { Uchar code mode[]={0x41,0x54,0x44,0x31,0x33,0x35,0x38,0x30,0x31,0x32,0x39,0x32,0x38,0x34,0x3B,0X0D}。 uint i。 for(i=0。i16。i++) { N Y 開(kāi)始 建立連接 是否報(bào)警 撥打電話 20 SBUF=mode[i]。 while(TI==0)。 TI=0。 } } 掛電話程序如下: void ATH(void) { uchar code mode[]= {0x41,0x54,0x48,0X0D}。 uint i。 for(i=0。i4。i++) { SBUF=mode[i]。 while(TI==0)。 TI=0。 } } 系統(tǒng)主程序設(shè)計(jì) 系統(tǒng)的主程序就像一個(gè)人的心臟,沒(méi)有它其它做得再好也無(wú)法實(shí)現(xiàn)。 程序如下: void main (void) { if((IR_IN==1||YAN==0||WEN==1)amp。amp。(model==0)) { LCD_Clear()。 //清顯示, model=1。 //model 賦值 1,即將執(zhí)行報(bào)警狀態(tài) flag=1。 //打電話標(biāo)志位置“ 1”,即將執(zhí)行打電話函數(shù),打電話 if(IR_IN==1) { num=1。 //num 賦值 1 LCD_Write_String(0,0,HONG:On)。 //暫顯示系檢測(cè)紅外傳感器報(bào)警 21 Delay1(20xx)。 } if(YAN==0) { num=2。 //num 賦值 2 LCD_Write_String(0,0,YANWU:On)。 //暫顯示系檢測(cè)煙霧傳感器報(bào)警Delay1(20xx)。 } if(WEN==1) { num=3。 //num 賦值 3 WEN=0。 //重置超溫標(biāo)志位為“ 0” LCD_Write_String(0,0,WEN:On)。 //暫顯示系檢測(cè)超溫報(bào)警 Delay1(20xx)。} } if(flag==1) //打電話標(biāo)志位 flag=1 時(shí),執(zhí)行打電話函數(shù) { LCD_Clear()。 //清屏 flag=0。 //重置打電話標(biāo)志位 flag=0 LCD_Write_String(0,0,DaDianHua)。 //在液晶顯示打電話狀態(tài) LCD_Write_String(0,1, .......)。 //在液晶顯示打電話狀態(tài)ATD()。 //打電話函數(shù) Delay()。 //延時(shí) Delay1(10000)。 //延時(shí) } if(model==1) //當(dāng) model=1 時(shí),進(jìn)入報(bào)警狀態(tài) { LCD_Clear()。 //清屏 ??
點(diǎn)擊復(fù)制文檔內(nèi)容
研究報(bào)告相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1