版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
單片機(jī)控制的風(fēng)電機(jī)組消防監(jiān)測(cè)系統(tǒng)的硬件和軟件設(shè)計(jì)案例目錄TOC\o"1-3"\h\u3080單片機(jī)控制的風(fēng)電機(jī)組消防監(jiān)測(cè)系統(tǒng)的硬件和軟件設(shè)計(jì)案例 13103第1章硬件電路設(shè)計(jì) 1141621.1主控制器ATmega128 1103041.2電源模塊 7243391.3無線通信模塊 8149001.4攝像頭模塊 952971.5傳感器模塊 11167791.5.1溫濕度傳感器模塊 11179751.5.1煙霧傳感器模塊 115625第2章系統(tǒng)軟件設(shè)計(jì) 15202442.1自動(dòng)消防控制系統(tǒng)主程序流程 1596132.2溫濕度傳感器模塊程序 16276362.3攝像頭模塊程序 2035152.4煙霧傳感器模塊程序 2546452.5顯示屏模塊程序 26第1章硬件電路設(shè)計(jì)本系統(tǒng)是傳感技術(shù)、通信技術(shù)和嵌入式技術(shù)的結(jié)合。具體實(shí)現(xiàn)方案如下:用AVR單片機(jī)作為控制核心,風(fēng)電機(jī)組現(xiàn)場(chǎng)溫度和濕度通過溫度傳感器來檢測(cè);通過紅外傳感器、煙霧傳感器和攝像頭模塊顯示機(jī)組內(nèi)是否出現(xiàn)火災(zāi),有則控制消防裝置滅火;且將所有傳感器信息、火災(zāi)信息、消防裝置運(yùn)行情況等數(shù)據(jù),在本地液晶上顯示;同時(shí)通過通信模塊,實(shí)現(xiàn)現(xiàn)場(chǎng)傳感器和監(jiān)控中心的雙向通信。本次風(fēng)電機(jī)組自動(dòng)消防控制系統(tǒng)的設(shè)計(jì)是利用ATmega128芯片作為控制中心,利用其它各個(gè)模塊對(duì)數(shù)據(jù)的采集,最后通過無線通信進(jìn)行傳輸從而得以實(shí)現(xiàn)。如果將其運(yùn)用到實(shí)際中,能夠有效地提高了風(fēng)電機(jī)組發(fā)現(xiàn)火災(zāi)實(shí)施滅火的效率,風(fēng)力發(fā)電行業(yè)將會(huì)得到很大的改善,也方便了我們的生活1.1主控制器ATmega128本次設(shè)計(jì)選用ATmega128芯片作為主控制器,該CPU功能消耗低并且價(jià)格便宜,功能齊全,資源豐富的ATmega128是ATMEL公司atmegaAVR系列單片機(jī)中的一款。此單片機(jī)支持多種方式的程序下載與燒寫,包括高壓并口方式、ISP方式和JTAG下載方式。ATmeaga128單片機(jī)作為主控單片機(jī),該型單片機(jī)具有豐富的資源和接口,內(nèi)部ROM和RAM完全能滿足AVR單片機(jī)高級(jí)開發(fā)要求,內(nèi)置大容量程序Flash空間和SRAM數(shù)據(jù)空間,還包含非易失性存儲(chǔ)器EEPROM,對(duì)于那些實(shí)際項(xiàng)目中的數(shù)據(jù)存儲(chǔ)也不需要擴(kuò)展外部存儲(chǔ)空間。單片機(jī)外部工作晶振默認(rèn)為7.3728MHz,選擇此晶振的目的是考慮到單片機(jī)的速度與單片機(jī)串行通信波特率所需時(shí)鐘而選擇的,可以自行更換使用其他頻率晶振,最大支持16M。在該芯片中有SD卡讀寫模塊,輕松實(shí)現(xiàn)對(duì)SD卡內(nèi)部數(shù)據(jù)進(jìn)行讀寫,SD卡可以作為外掛超大容量存儲(chǔ)器,存儲(chǔ)超大容量數(shù)據(jù)。支持計(jì)算機(jī)PS2鍵盤接口功能,使用普通的6針PS2計(jì)算機(jī)鍵盤可以實(shí)現(xiàn)與單片機(jī)的通信,方便靈活的采集各種輸入信號(hào)。支持8位數(shù)碼管顯示,可選擇使用其中任意的數(shù)碼管使用,動(dòng)態(tài)顯示。支持1602字符型液晶顯示器、128X64點(diǎn)陣圖形液晶接口,可以適用于不同要求。支持TFT彩屏液晶驅(qū)動(dòng),板載TFT彩屏液晶接口,在TFT液晶上顯示任意字符、漢字和彩色圖片,可以方便實(shí)現(xiàn)人機(jī)界面。配合SD卡模塊和TFT模塊,可以實(shí)現(xiàn)類似數(shù)碼相框功能,顯示SD卡中的BMP圖片文件,讓你輕松學(xué)習(xí)FAT文件系統(tǒng)的應(yīng)用。雙串口DB9接口,方便多級(jí)控制,與電腦通信也易如反掌。小功率步進(jìn)電機(jī)控制模塊,方便進(jìn)行控制級(jí)開發(fā)。所有AVR單片機(jī)I/O接口全部引出,如果需要自行配置使用單片機(jī)的I/O口,可以通過導(dǎo)線簡(jiǎn)單的實(shí)現(xiàn)連接,因此具有良好的擴(kuò)展應(yīng)用功能。支持紅外一體化接收功能,通過板載的紅外接收器可以接收38KHz紅外遙控器信號(hào),通過軟件可解碼,實(shí)現(xiàn)無線控制;在該芯片中,每個(gè)定時(shí)器的功能不同:其中有四個(gè)定時(shí)器可以對(duì)輸入輸出進(jìn)行捕捉比較,還可以用作編碼器輸入和脈沖計(jì)數(shù);兩個(gè)十六位的定時(shí)器用來對(duì)PWN進(jìn)行控制管理;一個(gè)獨(dú)立型和一個(gè)窗口型的看門狗計(jì)時(shí)器;一個(gè)遞減型的系統(tǒng)時(shí)間定時(shí)器和兩個(gè)十六位的可對(duì)DAC進(jìn)行驅(qū)動(dòng)的基本定時(shí)器。圖3-1為ATmege128芯片的硬件原理圖:圖3-1(a)ATmega128芯片引腳圖圖3-1(b)ATmega128芯片引腳圖在圖3-1(a)中,引腳PA0是按鍵引腳,可以在當(dāng)MCU低功耗狀態(tài)或者休眠狀態(tài)下起喚醒作用。PA1是ADC輸入引腳,PA2是RS485的RX腳,PF3是TX引腳,PF4是DAC-OUT輸出腳,PF5可以連NRF24L01芯片的SCK口。圖3-1(c)ATmega128芯片PB端口引腳圖在圖3-1(b)中,引腳PB0可用來接TFTLCD顯示屏的控制背光腳LCD_BL,PB1可接TFTLCD的SCK信號(hào),PB2可接TFTLCD的MISO信號(hào),PB3可接OV2640 的FIFO_WEN接口,PB4可接OV2640的PCLK接口,PB5可接NRF24L01接口的SCK信號(hào)。圖3-1(d)ATmega128芯片PC端口引腳圖在圖3-1(c)中,引腳PC0可用來接煙霧傳感器的D0小板開關(guān)數(shù)字量輸出接口,PC1可接DMT11的SCK信號(hào),PC2可接DMT11的MISO信號(hào),PC3可接OV2640的FIFO_WEN接口,PC4可接OV2640的SCCB接口,PC5可接LM393接口的SCK信號(hào)。圖3-1(e)ATmega128芯片PD端口引腳圖在圖3-1(d)中,PD0-AD4為8位并行數(shù)據(jù)接口,作為數(shù)碼管、液晶的數(shù)據(jù)口,D5-D7作為8位LED發(fā)光二極管的控制口,其他IO口為相關(guān)模塊的控制口。1.2電源模塊圖3-2電源模塊原理圖系統(tǒng)電源模塊提供整個(gè)系統(tǒng)的電源,本系統(tǒng)支持USB接口和外接電源供電,使用USB供電顯得尤其方便,一條USB線即可供電。集成5V到1.3V的電壓穩(wěn)壓芯片ASM1117-3,可以通過跳線自由選擇,確定使用何種電壓,對(duì)于低功耗場(chǎng)所使用提供了方便,有助于項(xiàng)目開發(fā)的使用。1.3無線通信模塊本部分的無線通信模塊主要采用了NRF24L01芯片,該種類的無線通信模塊體積較小,方便安裝并且2.4G工作頻率傳輸距離大約是空曠距離的40到50米,同時(shí)該芯片內(nèi)部還裝有片內(nèi)穩(wěn)壓器oltageregulators,該穩(wěn)壓器可以讓無線通信模塊在1.9到1.6v低電壓工作,并可以通過軟件設(shè)置芯片為發(fā)送或者接收模式,更有特點(diǎn)的是該模塊在掉電模式下的功耗400nA,待機(jī)模式下的功耗32uA,非常的節(jié)能。該無線通信模塊可支持3V~5V范圍的電壓,可不通過外部設(shè)備便可以主控制芯片相連。該種類型的無線通信模塊可通過PPS指示燈的變化判斷是否成功連接,當(dāng)該指示燈不亮?xí)r,表明芯片內(nèi)部已被損壞或者電路連接錯(cuò)誤;當(dāng)指示燈亮但并不閃爍時(shí),表明芯片運(yùn)作正常,但接收不到信號(hào),可對(duì)接收端芯片進(jìn)行設(shè)置;當(dāng)指示燈跳閃,即實(shí)現(xiàn)了接收端和發(fā)送端的互聯(lián)。這樣一來,當(dāng)無線通信模塊不能實(shí)現(xiàn)雙向通信時(shí),便可以很快知道其中原因,方便解決。NRF24L01芯片原理圖如下圖3-3所示:圖3-3無線通信模塊NRF24L01芯片模塊原理圖在圖3-3中,引腳CE可用來外接RX或TX模式選擇,引腳CSN可接SPI片選信號(hào),引腳SCK可用來接SPI時(shí)鐘,引腳MOSI是從SPI輸入腳,引腳MISO是SPI輸出腳,引腳IRQ是可屏蔽中斷腳,引腳VDD可用來外接1.3V-5V電源,引腳VSS接地,引腳XC2是晶體振蕩器2腳,引腳XC1可接外部時(shí)鐘,引腳VDD-PA是電源輸出腳,給RF的功率放大器提供+1.8V電源,引腳ANT1/2是天線1/2接口,引腳DVDD是去耦電路電源正極端接口。 1.4攝像頭模塊本部分采用的攝像頭模塊選用了OV2640型號(hào)的攝像頭,該種類的攝像頭模塊體積較小,工作電壓低,清晰度高。同時(shí)OV2640型號(hào)的攝像頭內(nèi)部是由SCCB接口進(jìn)行控制,我們可以對(duì)SCCB接口進(jìn)行編程,從而通過軟件設(shè)置圖像的平衡度。OmmiVision圖像傳感器應(yīng)用獨(dú)特的傳感器技術(shù),通過減少或消除光學(xué)或電子缺陷如固定圖案噪聲、拖尾、浮散等,提高圖像質(zhì)量,能得到清晰的穩(wěn)定圖像。該攝像頭模塊可支持3V~5V范圍的電壓,支持自動(dòng)曝光控制、自動(dòng)增益控制、自動(dòng)白平衡、自動(dòng)消除燈光條紋、自動(dòng)黑電平校準(zhǔn)等自動(dòng)控制功能。同時(shí)支持色飽和度、色相、伽馬、銳度等設(shè)置。支持圖像縮放、平移和窗口設(shè)置。支持圖像壓縮,即可輸出JPEG圖像數(shù)據(jù)。自帶嵌入式微處理器、集成有源晶振,無需外部提供時(shí)鐘。集成LDO,僅需提供1.3V電源即可正常工作。OV2640芯片原理圖如下圖3-4所示:圖3-4攝像頭模塊OV2640芯片原理圖從圖3-4可以看出,模塊自帶了1.3V和2.8V的穩(wěn)壓芯片,給OV2640供電,因此外部?jī)H需提供1.3V電壓即可;同時(shí)自帶了一個(gè)12M的有源晶振,所以模塊不需要外部提供時(shí)鐘。OV2640攝像頭模塊通過一個(gè)2*9的排針同外部電路連接,GND是接地線,VCC1.3是1.3V電源輸入腳,OV_SCL為SCCB時(shí)鐘線(IN1)接口,OV_VSYNC是幀同步信號(hào)(OUT2)接口,OV_SDA為SCCB數(shù)據(jù)線(IN/OUT)接口,OV_HREF為行參考信號(hào)(OUT)接口,OV_D0~D7為數(shù)據(jù)線(OUT)接口,OV_RESET為復(fù)位信號(hào)(低電平有效)(IN)接口,OV_PCLK為像素時(shí)鐘(OUT)接口,OV_PWDN為掉電模式使能(高電平有效)(IN)接口,NC未用到。1.5傳感器模塊1.5.1溫濕度傳感器模塊本部分采用的溫濕度模塊選用了DHT11作為核心芯片的數(shù)字溫濕度傳感器,DHT11數(shù)字溫濕度傳感器是已校準(zhǔn)數(shù)字信號(hào)輸出的溫濕度復(fù)合傳感器。它有專用的數(shù)字模塊采集技術(shù)和溫濕度傳感技術(shù),確保產(chǎn)品具有可靠性與卓越的長(zhǎng)期穩(wěn)定性,成本低、相對(duì)濕度和溫度測(cè)量、快響應(yīng)、抗干擾能力強(qiáng)、信號(hào)傳輸距離長(zhǎng)、數(shù)字信號(hào)輸出、精確校準(zhǔn)。傳感器包括一個(gè)電容式感濕元件和一個(gè)NTC測(cè)溫元件,并與一個(gè)高性能8位單片機(jī)相連接。該溫濕度傳感器模塊可支持1.3V~5V范圍的電壓,支持相對(duì)濕度和溫度一體測(cè)量,全量程標(biāo)定,且響應(yīng)時(shí)間很短。DHT11芯片原理圖如下圖3-5(a)所示:圖3-5(a)溫濕度模塊DHT11芯片原理圖在圖3-5(a)中,引腳VCC可用來外接1.3V-5V,GND可外接GND接口,D0小板開關(guān)數(shù)字量輸出接口接單片機(jī)IO口。1.5.1煙霧傳感器模塊本部分采用的煙霧傳感器模塊選用了LM393、MQ135氣體感應(yīng)探頭作為核心芯片,DHT11數(shù)字煙霧傳感器是可調(diào)節(jié)靈敏度的復(fù)合傳感器,內(nèi)置具有信號(hào)輸出指示燈指示,雙路信號(hào)輸出(模擬量輸出及TTL電平輸出),TTL輸出有效信號(hào)為低電平,(輸出低電平時(shí)信號(hào)燈亮,可接單片機(jī)IO口),氣感探頭的模擬量輸出隨濃度增加而增加,濃度越高電壓越高,對(duì)煙霧氣體具有很高的靈敏度,使用壽命長(zhǎng)且穩(wěn)定,能夠快速的響應(yīng)和恢復(fù)。煙霧傳感器芯片原理圖如下圖3-5(b)所示:圖3-5(b)煙霧傳感器模塊芯片原理圖在圖3-5(b)中,引腳VCC可用來外接電源正輸入,DOUT為TTL電平信號(hào)輸出接口,GND為電源負(fù)輸入接口,Aout為模擬信號(hào)輸出接口。1.6顯示屏模塊本部分的顯示屏模塊選用了DMTFT-28模組,一種2.8寸TFT彩屏,主要用液晶面板,觸摸屏和轉(zhuǎn)接板組成,轉(zhuǎn)接板與液晶面板通過排線連接。轉(zhuǎn)接板電路共分為FPC接口電路、觸摸屏控制電路、IO擴(kuò)展電路、TFT控制接口電路、背光電路及SD卡接口電路等。屏幕顯示分辨率為240X320,可自由顯示字符、漢字、圖片,支持1.3V或5V,可由模組的液晶轉(zhuǎn)接板進(jìn)行設(shè)置。顯示屏模塊原理圖如下圖3-7所示:圖3-6(a)液晶顯示屏模塊FPC接口電路原理圖FPC接口電路是用于將液晶面板與轉(zhuǎn)接板連接起來,連接方式采用焊接,該種方式可以得到最穩(wěn)定的工作狀態(tài),如果需要卸載面板,則需要使用專業(yè)的拆除工具。圖3-6(b)液晶顯示屏模塊觸摸屏控制電路原理圖在圖3-6(b)中,引腳BUSY是轉(zhuǎn)換狀態(tài)信號(hào)接口,DOUT為串行數(shù)據(jù)輸出接口,DIN為串行數(shù)據(jù)輸入接口,DLCK為外部串行時(shí)鐘輸入接口,引腳CS是片選信號(hào)接口,VCC為電源輸入接口,VBAT為電池監(jiān)視輸入接口,AUX為ADC輔助輸入通道接口,引腳VREF是參考電壓輸入/出接口,PRNIRQ為筆接觸中斷引腳,IOVDD為數(shù)字電源輸入接口。圖3-6(c)液晶顯示屏模塊觸摸屏IO擴(kuò)展電路原理圖在圖3-6(c)中控制器的8位IO口與鎖存器的D0~D7連接,鎖存器的輸出與TFT的高8位數(shù)據(jù)口連接,當(dāng)寫16位數(shù)據(jù)時(shí),現(xiàn)將16位數(shù)據(jù)的高8位送到D10~D17,此時(shí)通過LE控制管腳將數(shù)據(jù)鎖存到TFT的高8位數(shù)據(jù)口,然后16位數(shù)據(jù)的低8位送到D10~D17即完成數(shù)據(jù)送至TFT數(shù)據(jù)口工作。圖3-6(c)液晶顯示屏模塊電源電路原理圖液晶屏支持外接1.3V或者5V電源,板上集成AMS1117芯片,在圖3-6(c)中,引腳VIN為輸入電壓腳,TFT面板本身只能在1.3V下工作,所以當(dāng)輸入電壓VIN腳為5V時(shí),必須讓AMS1117-1.3這個(gè)IC工作,當(dāng)輸入VIN腳為1.3V時(shí),則需要使用0歐姆電阻將J2短接,相當(dāng)于不通過穩(wěn)壓芯片直接給模塊供電,引腳VOUT為輸出電壓腳。第2章系統(tǒng)軟件設(shè)計(jì)本章詳細(xì)介紹了各個(gè)模塊的軟件設(shè)計(jì)流程以及部分源代碼,包括溫濕度傳感器模塊、攝像頭模塊與ATmega128芯片之間的軟件程序,顯示屏模塊的程序,最終得以在顯示屏上顯示出溫濕度,煙霧濃度以及我的班級(jí),姓名和課題。2.1自動(dòng)消防控制系統(tǒng)主程序流程在該系統(tǒng)中,首先對(duì)變量進(jìn)行定義,其次利用調(diào)用函數(shù)對(duì)液晶、攝像頭、接下來對(duì)這些模塊的參數(shù)進(jìn)行設(shè)置,利用While語句進(jìn)行循環(huán),將讀取的溫濕度,煙霧濃度以及我個(gè)人的信息在液晶屏上顯示出來。主程序流程圖如圖4-1圖4-1主程序流程圖2.2溫濕度傳感器模塊程序溫濕度傳感器模塊是利用溫濕度傳感器檢測(cè)風(fēng)電機(jī)組內(nèi)部從而判斷機(jī)組內(nèi)是否要發(fā)生火災(zāi),該部分程序L2.1如下:L2.1.1程序清單:#include<string.h>…#defineuintunsignedint#defineData_IO PORTA#defineData_DDRDDRA(1)#defineD_LE0 PORTD&=~(1<<PD4)(2)#defineD_LE1PORTD|=(1<<PD4)(3)#defineW_LE0 PORTD&=~(1<<PD5)#defineW_LE1PORTD|=(1<<PD5)#defineDQ_IN DDRE&=~(1<<PE4) (4)#defineDQ_OUT DDRE|=(1<<PE4) #defineDQ_CLR PORTE&=~(1<<PE4) #defineDQ_SET PORTE|=(1<<PE4) #defineDQ_R PINE&(1<<PE4) (5)程序L2.1.1說明:L2.1.1(1):設(shè)置數(shù)碼管寄存器L2.1.1(2):設(shè)置數(shù)碼管段控制位為0,鎖存端口數(shù)據(jù)L2.1.1(3):數(shù)碼管段控制位為1,鎖存器輸出與端口一致L2.1.1(4):設(shè)置輸入,DHT11接單片機(jī)PE4口L2.1.1(5):讀電平L2.1.2程序清單:ucharkey;uinttemp_value;uinttemp,A1,A2,A3; (1)ucharflag1;uchartable[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};(2) voidsystem_init(){Data_IO=0xFF;Data_DDR=0xFF;PORTD=0xFF;(3)DDRD=0xFF;}(4)L2.1.2程序說明:L2.1.2(1):定義的變量,顯示數(shù)據(jù)處理L2.1.2(2):IO端口初始化L2.1.2(3):定義DHT11的控制口,設(shè)置為輸出L2.1.2(4):DHT11控制數(shù)碼管動(dòng)態(tài)掃描顯示函數(shù),顯示采集到的溫度L2.1.3程序清單:unsignedcharDS18B20_Reset(void){unsignedchari;DQ_OUT; DQ_CLR; ... delay_us(500); (1) if(i) … return(value);}Void_wriu8_byte(unsignedcharvalue) ...} delay_us(80); (2) value>>=1; } }(3)voidDHT11_start(void){ dht11_Reset(); dht11_write_byte(0xCC); dht11_write_byte(0x44); } DHT11_Reset(); dht11_write_byte(0xCC); dht11_write_byte(0xBE); (4) for(i=0;i<9;i++){... data_do(temp_value);(5)for(j=0;j<200;j++){ Display_DHT11(A1,A2,A3);}}L2.1.3程序說明:L2.1.3(1):延時(shí)500usL2.1.3(2):延時(shí)80msL2.1.3(3):?jiǎn)?dòng)dht111轉(zhuǎn)換L2.1.3(4):得到溫度L2.1.3(5):處理數(shù)據(jù),得到要顯示的值2.3攝像頭模塊程序攝像頭模塊是利用攝像頭檢測(cè)風(fēng)電機(jī)組內(nèi)部從而判斷機(jī)組內(nèi)是否發(fā)生火災(zāi),該部分程序L2.2如下:L2.2.1程序說明:#include"sys.h"#include"delay.h"…#include"dma.h"(1)#defineOV2640_JPEG_WIDTH 1024 (2) #defineOV2640_JPEG_HEIGHT 768 (3)u8*ov2640_framebuf; externu8ov_frame; (4)L2.2.1程序說明:L2.2.1(1):設(shè)置頭文件L2.2.1(2):設(shè)置拍照的寬度L2.2.1(3):設(shè)置拍照的高度L2.2.1(4):幀緩存L2.2.1程序說明:voidcamera_new_pathname(u8*pname,u8mode){ u8res; u16index=0; … if(res==FR_NO_FILE)break; (1) index++; }}voidov2640_speed_ctrl(void){ u8clkdiv,pclkdiv; (2) if(lcddev.width==240) { clkdiv=1; pclkdiv=28; … }(3) SCCB_WR_Reg(0XFF,0X00); SCCB_WR_Reg(0XD3,pclkdiv); (4) SCCB_WR_Reg(0XFF,0X01); SCCB_WR_Reg(0X11,clkdiv); (5)}L2.2.1程序說明:L2.2.2(1):OV2640速度控制L2.2.2(2):設(shè)置時(shí)鐘分頻系數(shù)和PCLK分頻系數(shù)L2.2.2(3):2.8寸LEDL2.2.2(4):設(shè)置PCLK分頻L2.2.2(5):設(shè)置CLK分頻L2.2.3程序說明:u8ov2640_jpg_photo(u8*pname){ … u8*pbuf;(1) f_jpg=(FIL*)mymalloc(SRAMIN,sizeof(FIL)); (2) if(f_jpg==NULL)return0XFF; OV2640_JPEG_Mode(); (3) OV2640_OutSize_Set(OV2640_JPEG_WIDTH,OV2640_JPEG_HEIGHT); SCCB_WR_Reg(0XFF,0X00); SCCB_WR_Reg(0XD3,30); SCCB_WR_Reg(0XFF,0X01); SCCB_WR_Reg(0X11,0X1); for(i=0;i<10;i++) (4) { while(OV2640_VSYNC==1); while(OV2640_VSYNC==0); } while(OV2640_VSYNC==1) (5) { … { printf("jpegdatasize:%d\r\n",jpeglen);(6) pbuf=(u8*)ov2640_framebuf; for(i=0;i<jpeglen;i++)(7) { if((pbuf[i]==0XFF)&&(pbuf[i+1]==0XD8))break; } if(i==jpeglen)res=0XFD;(8) else (9) { pbuf+=i;(10) res=f_write(f_jpg,pbuf,jpeglen-i,&bwr); if(bwr!=(jpeglen-i))res=0XFE; } }L2.2.3程序說明:L2.2.3(1):設(shè)置要保存的jpg照片路徑+名字L2.2.3(2):開辟FIL字節(jié)的內(nèi)存區(qū)域L2.2.3(3):內(nèi)存申請(qǐng)失敗后切換為JPEG模式L2.2.3(4):丟棄10幀,等待OV2640自動(dòng)調(diào)節(jié)L2.2.3(5):開始采集jpeg數(shù)據(jù)L2.2.3(6):串口打印JPEG文件大小L2.2.3(7):查找0XFF,0XD8L2.2.3(8):找到了0XFF,0XD8L2.2.3(9):沒找到0XFF,0XD8L2.2.3(10):偏移到0XFF,0XD8處L2.2.3程序說明:intmain(void){ … delay_init(); (1)NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);(2) uart_init(115200); (3) usmart_dev.init(72); (4) LED_Init(); (5) KEY_Init(); (6) LCD_Init(); (7) BEEP_Init(); (8) W25QXX_Init(); (9) my_mem_init(SRAMIN); (10) exfuns_init(); (11) f_mount(fs[0],"0:",1); (12) f_mount(fs[1],"1:",1); (13) POINT_COLOR=RED; while(font_init()) { … LCD_Fill(30,150,240,146,WHITE);(14) delay_ms(200); } L2.2.3程序說明:L2.2.3(1):延時(shí)函數(shù)初始化L2.2.3(2):設(shè)置中斷優(yōu)先級(jí)分組L2.2.3(3):串口初始化為115200L2.2.3(4):初始化USMART L2.2.3(5):初始化與LED連接的硬件接口L2.2.3(6):初始化按鍵L2.2.3(7):初始化LCDL2.2.3(8):蜂鳴器初始化L2.2.3(9):初始化W25Q128L2.2.3(10):初始化內(nèi)部?jī)?nèi)存池L2.2.3(11):為fatfs相關(guān)變量申請(qǐng)內(nèi)存L2.2.3(12):掛載SD卡L2.2.3(13):掛載FLASHL2.2.3(14):清除顯示 2.4煙霧傳感器模塊程序煙霧傳感器模塊是利用煙霧傳感器檢測(cè)風(fēng)電機(jī)組內(nèi)部煙霧濃度從而判斷機(jī)組內(nèi)部是否發(fā)生火災(zāi),該部分程序L2.3如下:#include<reg52.h> (1)#defineucharunsignedchar#defineuintunsignedintsbitLED=P1^0; (2)sbitDOUT=P2^0; (3)voiddelay(){ucharm,n,s;for(m=20;m>0;m--)for(n=20;n>0;n--)for(s=248;s>0;s--);(4)}voidmain(){ while(1) { delay(); if(DOUT==0) { LED=0; (5) } } }} L2.3程序說明:L2.3(1):定義庫(kù)文件L2.3(2):定義單片機(jī)P1口的第1位(即P1.0)為指示端L2.3(3):定義單片機(jī)P2口的第1位(即P2.0)為傳感器的輸入端L2.3(3):延時(shí)程序L2.3(5):當(dāng)濃度高于設(shè)定值時(shí),執(zhí)行條件函數(shù),點(diǎn)亮p1.0口2.5顯示屏模塊程序?qū)τ谥鞒绦虻娘@示屏模塊,在其中調(diào)用了顯示字符串函數(shù),接下來對(duì)該程序進(jìn)行描述,程序如L2.5L2.5.1程序清單:#include<stdio.h>#include<math.h>#include<avr/io.h>#include<avr/iom128.h>#define F_CPU 7372800 (1)#include<util/delay.h>#include<avr/pgmspace.h> (2)程序L2.5.1說明:L2.5.1(1):?jiǎn)纹瑱C(jī)主頻為7.3728MHz,用于延時(shí)子程序L2.5.1(2):須增加的頭文件,用來將數(shù)據(jù)存放在flashL2.5.2程序清單:#include"Config.h"#include"Ascii_8x16.h"(1)#include"Chinese.h"(2)#include"GB2422.h"(3)#include"TFT28.h"(4)#include"TFT28.c"(5)程序L2.5.2說明:L2.5.2(1):設(shè)置字符大小為8x16L2.5.2(2):16x16像素大小的漢字,這是提取到的點(diǎn)陣L2.5.2(3):24x24像素大小的漢字,這是提取到的點(diǎn)陣L2.5.2(4):設(shè)置TFT頭文件L2.5.2(5):TFT操作初始化及函數(shù)L2.5.3程序清單:unsignedintDevice_code;externvoiddelayms(unsignedintcount); (1)voidGPIO_Init(){ TFT28_PORT=0xFF; (2) TFT28_DDR=0xFF; (3) … TFT28_RST_PORT|=(1<<TFT28_RST); (4) TFT28_RST_DDR|=(1<<TFT28_RST); (5)}程序L2.5.3說明:L2.5.3(1):初始化TFT觸摸屏IO口子程序L2.5.3(2):LCD口全部拉高L2.5.3(3):設(shè)置LCD數(shù)據(jù)口為輸出模式L2.5.3(4):LCD控制口初始化為高電平L2.5.3(5):LCD控制口初始化為輸出模式本段程序是使LED閃爍一次,類似斷點(diǎn)L2.5.4程序清單:voidLED_Light(){LED8=0x00; (1)delay_ms(500);LED8=0xFF; (2)delay_ms(500);}程序L2.5.4說明:L2.5.4(1):點(diǎn)亮LEDL2.5.4(2):熄滅LEDL2.5.5程序清單:intmain(void){uinti,y;Close_LED8(); (1)Close_iRe
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 口渴的小螞蟻
- 口才課程教研培訓(xùn)
- 商業(yè)銀行會(huì)計(jì)風(fēng)險(xiǎn)及防范措施研究-以紹興市商業(yè)銀行為例
- 護(hù)理課件制作軟件的使用方法
- 水穩(wěn)層安全技術(shù)交底【范本模板】
- 飲用水衛(wèi)生及日常管理制度
- 健身教練會(huì)員增肌減脂效果績(jī)效評(píng)定表
- 項(xiàng)目風(fēng)險(xiǎn)評(píng)估與應(yīng)對(duì)模板
- 員工遵守法律法規(guī)及規(guī)章承諾書(5篇)
- 功能運(yùn)動(dòng)器材認(rèn)證承諾書范文6篇
- 光伏發(fā)電安裝質(zhì)量驗(yàn)收評(píng)定表
- AQ 1046-2007 地勘時(shí)期煤層瓦斯含量測(cè)定方法(正式版)
- 房屋過戶給子女的協(xié)議書的范文
- 超聲振動(dòng)珩磨裝置的總體設(shè)計(jì)
- 新媒體藝術(shù)的發(fā)展歷程及藝術(shù)特征
- 醫(yī)保違規(guī)行為分類培訓(xùn)課件
- 講課學(xué)生數(shù)學(xué)學(xué)習(xí)成就
- 醫(yī)療器械法規(guī)對(duì)互聯(lián)網(wǎng)銷售的限制
- 西葫蘆栽培技術(shù)要點(diǎn)
- 系桿拱橋系桿預(yù)應(yīng)力施工控制要點(diǎn)
- 三亞市海棠灣椰子洲島土地價(jià)格咨詢報(bào)告樣本及三洲工程造價(jià)咨詢有限公司管理制度
評(píng)論
0/150
提交評(píng)論