版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第頁(yè)單片機(jī)控制的無(wú)塵車(chē)間檢測(cè)系統(tǒng)的硬件和軟件案例分析目錄TOC\o"1-3"\h\u20791硬件電路的設(shè)計(jì) 1189311.1單片機(jī)控制模塊 1236521.2LCD1602液晶顯示電路 3325061.3溫度采集電路 393201.4PM2.5檢測(cè)電路 4316721.5甲醛檢測(cè)電路 444591.8報(bào)警電路 5261391.9按鍵設(shè)置電路 6114261.10電源電路 6147165系統(tǒng)軟件設(shè)計(jì) 7100012.1系統(tǒng)整體軟件設(shè)計(jì)的環(huán)境 7167902.2系統(tǒng)主程序設(shè)計(jì)及流程圖 7105392.3溫濕度程序流程圖 8271802.4LCD顯示程序流程圖 10103312.5按鍵程序流程圖 11289042.6蜂鳴器報(bào)警程序流程圖 11148192.7串口程序流程圖 1213118N 1321945N 13246613系統(tǒng)軟硬件綜合調(diào)試 13208083.1硬件調(diào)試 13223403.2軟件仿真調(diào)試 16228513.3軟硬件綜合調(diào)試 181硬件電路的設(shè)計(jì)1.1單片機(jī)控制模塊對(duì)單片機(jī)的選型設(shè)計(jì)是以STM32C8T6為核心板。STM32單片機(jī)是一個(gè)低電壓,高性能的微處理器,可以快速可擦除字節(jié)。為實(shí)現(xiàn)系統(tǒng)功能,需要完成單片機(jī)與電路或外部功能信息的通信。這時(shí)就需要用到管腳把它們相連接實(shí)現(xiàn)通連的效果,同時(shí)我們也可以說(shuō)是管腳將單片機(jī)的外特性表現(xiàn)出來(lái)。STM32F103C8T6最小系統(tǒng)電路圖如圖1.1所示:圖1.1STM32F103C8T6最小系統(tǒng)圖該圖中分別由STM32F103C8T6單片機(jī)、復(fù)位電路和時(shí)鐘電路組成。就STM32的振蕩電路而言,STM32沒(méi)有內(nèi)置的晶體振子,而HSI是一個(gè)內(nèi)置的RC振蕩器。在HSI中,8兆赫RC振蕩器的誤差約為1%,而內(nèi)部RC振蕩器的精確度往往是HSE(外型)的十倍以上,并無(wú)好壞之分。最主要的是,當(dāng)需要較少的時(shí)鐘時(shí),視實(shí)際情況而定。請(qǐng)注意,在高頻率下,系統(tǒng)時(shí)鐘的最高頻率不能超過(guò)72兆赫。STM32中的ISP使用的是一個(gè)內(nèi)置RC振蕩器(HSI)。晶振電路圖如圖1.2所示:圖1.2晶振電路圖STM32微處理器復(fù)位:該復(fù)位電路的功能是使系統(tǒng)回到原來(lái)的位置。單片機(jī)的復(fù)位方法有:上電復(fù)位,系統(tǒng)復(fù)位,備份區(qū)復(fù)位。上電重置:發(fā)生在系統(tǒng)通電和關(guān)機(jī)狀態(tài)下,系統(tǒng)恢復(fù)到備用狀態(tài)時(shí),啟動(dòng)上電重置。除備份區(qū)寄存器以外的全部寄存器的狀態(tài)都可以重置。系統(tǒng)重置:下列事件會(huì)造成系統(tǒng)重置:1.NRST管腳(外部重置)的低電平2.結(jié)束窗口的監(jiān)視器計(jì)數(shù)(WWDG重置)3.獨(dú)立的監(jiān)視器計(jì)數(shù)結(jié)束(IWDG重置)1.軟件復(fù)位(SW復(fù)位)2.低功耗管理復(fù)位復(fù)位電路圖如圖1.3所示:圖1.3復(fù)位電路圖1.2LCD1602液晶顯示電路LCD的工作原理是利用液晶的物理特性,由電壓來(lái)控制它的顯示部件,在開(kāi)機(jī)后開(kāi)始顯示,然后再由數(shù)字顯示。顯示屏(LCD)的厚度較薄,其特征是適于直接驅(qū)動(dòng)大規(guī)模集成電路,易于實(shí)現(xiàn)全彩色顯示。本系統(tǒng)采用LCD1602液晶顯示屏,實(shí)現(xiàn)了對(duì)甲醛的實(shí)時(shí)監(jiān)測(cè)、設(shè)定的PM2.5限值、溫度、濕度的顯示。LCD1602液晶顯示硬件電路如圖1.4所示:圖1.4LCD1602液晶顯示硬件電路上圖中LCD1602液晶顯示在執(zhí)行程序指令之前要進(jìn)行模塊標(biāo)志位的忙信號(hào),僅在其忙碌的標(biāo)志位處于低時(shí),指示該指示能夠被執(zhí)行。RT1為電位器也就是滑動(dòng)變阻器,通過(guò)旋轉(zhuǎn)這個(gè)電位器可以調(diào)節(jié)液晶背光亮度。D0~D7接A0~A7,實(shí)現(xiàn)單片機(jī)和它的通信;EN、RW、RS連接單片機(jī)P2.5~P2.7;VCC接+5V,DND接地,A接+5V,K接地。1.3溫度采集電路本設(shè)計(jì)采用DHT11型溫度傳感器對(duì)室內(nèi)溫度、濕度進(jìn)行測(cè)量,DHT11是一款采用數(shù)碼采集技術(shù)實(shí)現(xiàn)室內(nèi)溫度、濕度測(cè)量,工作電壓范圍為3~2.5v,可靠性高,溫度測(cè)量精度達(dá)士2℃,濕度測(cè)量精度達(dá)到5%。采用單線制串行接口,可以進(jìn)行數(shù)據(jù)的傳送。利用DATA數(shù)據(jù)線路,將器件與微處理器進(jìn)行直接的聯(lián)接。在數(shù)據(jù)傳送過(guò)程中,該裝置在高速運(yùn)行,數(shù)據(jù)采集完畢后,恢復(fù)到原來(lái)的工作狀態(tài),降低了裝置的能耗。與常規(guī)的溫度計(jì)相比,它的輸出是數(shù)字信號(hào),并能通過(guò)LCD1602液晶顯示屏直接傳送到微處理器。其較小的體積和高密封性,使其應(yīng)用于絕大部分的場(chǎng)合,比如冷凍庫(kù)、機(jī)房、糧倉(cāng)、空調(diào)、汽車(chē)等領(lǐng)域。溫濕度傳感器DHT11是一種常用的溫度、濕度傳感器,它包含了經(jīng)過(guò)標(biāo)定的數(shù)字信號(hào)輸出。它的優(yōu)點(diǎn)是抗干擾能力強(qiáng),校準(zhǔn)精度高,可靠性高,穩(wěn)定性好。DHT11的通訊方式簡(jiǎn)單,單總線通訊,通過(guò)單總線進(jìn)行數(shù)據(jù)傳輸和控制。溫度傳感器DHT11主要是用來(lái)進(jìn)行溫度檢測(cè),DHT11的硬件電路如圖1.5所示:圖1.5DHT11溫度采集電路圖上面所示的探測(cè)原理為:低溫系數(shù)晶體振蕩和高溫系數(shù)晶體振蕩分別向計(jì)數(shù)器1和計(jì)數(shù)器2發(fā)出脈沖信號(hào),并基于脈沖信號(hào)進(jìn)行相減操作,然后由計(jì)數(shù)器2進(jìn)行計(jì)數(shù)。最后得到了精確的溫度寄存器。1.4PM2.5檢測(cè)電路PM2.5有2中通信方式一種是直接接AD模數(shù)轉(zhuǎn)換一種是接單片機(jī)的串口通過(guò)讀取指令集進(jìn)行獲取當(dāng)前的值,本次設(shè)計(jì)采用的是通過(guò)單片機(jī)串口直接獲取當(dāng)前PM2.5值,所以大家看到只需要接3個(gè)引腳就可以了VCCGNDTXD(發(fā)送到單片機(jī)RXD接收)PM2.5通過(guò)發(fā)送數(shù)據(jù)到單片機(jī)的接收端,通過(guò)串口進(jìn)行數(shù)據(jù)采集。粉塵傳感器是用來(lái)檢測(cè)當(dāng)前空氣中粉塵值的濃度。比如煙霧顆粒、飛塵等比較細(xì)微的顆粒。主要是利用傳感器內(nèi)部采用紅外光學(xué)發(fā)光管和光電晶體管來(lái)實(shí)現(xiàn)。采用脈沖的方式來(lái)檢測(cè)當(dāng)前是否有粉塵。如果粉塵比較大,這輸出的脈沖高度就高,濃度小輸出的脈沖就小。圖1.6為PM2.2.檢測(cè)電路圖。圖1.6PM2.5檢測(cè)電路圖粉塵感應(yīng)器是粉塵濃度監(jiān)測(cè)的關(guān)鍵部分。其選擇的好壞,直接關(guān)系到量程的大小和精度。同時(shí),由于其與微處理器共同工作,所以對(duì)電源的電壓輸出也要慎重。所以使用夏普GP2Y1051AUOF空氣品質(zhì)檢測(cè)器,對(duì)空氣中PM2.5微粒進(jìn)行采樣,然后通過(guò)輸出串口將其轉(zhuǎn)換為微處理器。GP2Y1051AUOF傳感器采用LED與光電轉(zhuǎn)換材料晶體管對(duì)角地排列,能夠探測(cè)到粉塵在大氣中的散射光,特別是對(duì)于微小顆粒的探測(cè)。該傳感器可根據(jù)粉塵濃度的不同而輸出不同的電壓,并將其轉(zhuǎn)化成粉塵的濃度。GP2Y1051AUOF可以通過(guò)AD取樣和串行通訊的方式來(lái)實(shí)現(xiàn)與單片機(jī)的通信,因此本文選用了串行通訊。串口輸出的數(shù)值是粉塵濃度變換后的電壓。粉塵的濃度與采集的電壓值呈線性關(guān)系,利用該電壓可以很方便地獲得粉塵的濃度。1.5甲醛檢測(cè)電路甲醛傳感器主要的輸出方式是串口,就是當(dāng)單片機(jī)的串口獲取到數(shù)據(jù)后,根據(jù)甲醛的相應(yīng)地址進(jìn)行解析,從而得出當(dāng)前的甲醛濃度,無(wú)論是甲醛,還是pm2.5等都是利用串口進(jìn)行數(shù)據(jù)通信。圖1.7為甲醛檢測(cè)電路。圖1.7甲醛檢測(cè)電路本次設(shè)計(jì)采用SM427N001作為甲醛傳感器,管腳1接GND(電源供電負(fù)極),管腳2為T(mén)XD(串口數(shù)據(jù)輸出),管腳3為RX(串口數(shù)據(jù)輸入),管腳4為VCC(電壓輸入3.3V或5V)。表1為甲醛模塊規(guī)格。表1甲醛模塊說(shuō)明產(chǎn)品名稱甲醛模塊檢測(cè)氣體甲醛輸出數(shù)據(jù)UART輸出工作電壓3.3V或5V預(yù)熱時(shí)間≤3分鐘響應(yīng)時(shí)間≤60秒恢復(fù)時(shí)間≤60秒量程0~1.00mg/m3分辨率≤0.01mg工作溫度0~50℃工作濕度15%RH-90%RH(無(wú)凝結(jié))1.8報(bào)警電路報(bào)警電路被蜂鳴器加三極管驅(qū)動(dòng)。市場(chǎng)上有很多蜂鳴器,我們選擇提供5V電源的蜂鳴器被認(rèn)為是合適的。當(dāng)我們使用蜂鳴器時(shí),有一個(gè)小技巧。如果我們覺(jué)得蜂鳴器不夠響,我們可以把蜂鳴器頂部的紙去掉。蜂鳴器的電路圖很簡(jiǎn)單。一端與三極管的引腳相連接。三極管的主要作用是通過(guò)對(duì)蜂鳴器的電流和電平進(jìn)行放大,從而使蜂鳴器發(fā)出警報(bào),驅(qū)動(dòng)電流使電流擴(kuò)大200倍。當(dāng)單片機(jī)給的蜂鳴器輸出一個(gè)低電平時(shí),晶體管把導(dǎo)通晶體管的上拉電阻來(lái)限制電流,防止晶體管的電流擊穿,從而防止晶體管擊穿的保護(hù)作用。它簡(jiǎn)單且實(shí)用,它也是電路中經(jīng)常使用的一種設(shè)計(jì)可以有效的保護(hù)電路。單片機(jī)的報(bào)警電路部分電路圖1.8所示:圖1.8蜂鳴器報(bào)警電路圖此設(shè)計(jì)是stm32單片機(jī)上電后引腳為低電平,所以我們不可以使用8550,因?yàn)?550是低電平導(dǎo)通,8050是高電平導(dǎo)通,當(dāng)我們想讓蜂鳴器進(jìn)行報(bào)警的時(shí)候,我們給三極管一個(gè)高電平,就實(shí)現(xiàn)了蜂鳴器報(bào)警。三極管本身具有的作用是放大電流(放大200倍)加1k電阻是為了進(jìn)行限流。1.9按鍵設(shè)置電路單片機(jī)的按鍵電路其實(shí)就是一個(gè)對(duì)高低電平的檢測(cè)。當(dāng)我們按下按鍵,單片機(jī)的I/O口檢測(cè)為低電平。單片機(jī)就會(huì)來(lái)根據(jù)電平特性判斷程序應(yīng)該要執(zhí)行的操作。但是在寫(xiě)按鍵函數(shù)的時(shí)候有幾點(diǎn)是需要我們注意的。當(dāng)按鍵被按下時(shí)會(huì)產(chǎn)生抖動(dòng),所以要寫(xiě)一個(gè)去抖的函數(shù)。還有就是要有短暫的延遲REF_Ref5177\r\h.。通過(guò)按鍵,我們可以設(shè)置溫度和煙霧報(bào)警的上限值。同時(shí)還可以設(shè)置接收信息手機(jī)號(hào)碼。按鍵3可以切換顯示的當(dāng)前情況,開(kāi)機(jī)后先顯示PM2.5值和甲醛,按下鍵3則顯示檢測(cè)到的溫濕度。按鍵1則切換到設(shè)置溫濕度,甲醛和PM2.5上限值的界面,這時(shí)鍵2和鍵3就分別可以增加或者減少上限值。按鍵控制電路原理圖如圖1.9所示:圖1.9按鍵控制電路原理圖1.10電源電路電源有很多種方式,本次設(shè)計(jì)選用其中一種連接方式,如果大家遇到其他的連接方式,都是一樣的,Swich是電源開(kāi)關(guān),pow是電源輸入端供電電壓為DC5vdc是代表直流單片機(jī)的供電電源我們通過(guò)芯片手冊(cè)知道是5V供電,步進(jìn)電機(jī)和報(bào)警液晶顯示等電路都是5V供電電壓。所以此電路的電壓是固定不變的,所以我們采用市場(chǎng)上常用的USB5V供電。此電路也就是整個(gè)單片機(jī)的供電電路,電路中電源座子是電源,開(kāi)關(guān)是控制電路的開(kāi)和管。當(dāng)需要開(kāi)機(jī)時(shí),直接接5v就可以了。需要我們注意的是電源3引腳其實(shí)是一個(gè)固定的引腳沒(méi)有其他的特殊應(yīng)用,所以我們可以自行處理REF_Ref5230\r\h.。開(kāi)關(guān)的引腳4和6的作用和1、3的作用也是一樣的。開(kāi)關(guān)的5和2可以選擇鏈接單片機(jī)的接地引腳。但是需要我們?nèi)プ⒁獾氖侨绻x擇了1和3那么接部分地就必須要連接5而不能是2。電源電路圖如圖1.10所示:圖1.10電源電路圖5系統(tǒng)軟件設(shè)計(jì)2.1系統(tǒng)整體軟件設(shè)計(jì)的環(huán)境本文所開(kāi)發(fā)的軟件在KeiluVision5中進(jìn)行了編譯。KeiluVision5是美國(guó)KeilSoftware公司研制的Stm32系列兼容性MCUC語(yǔ)言軟件開(kāi)發(fā)系統(tǒng),該系統(tǒng)具有豐富的庫(kù)函數(shù)和強(qiáng)大的集成開(kāi)發(fā)與調(diào)試工具,具有完整的Windows接口。KeiluVision5中的代碼是很有效率的,因?yàn)榇蟛糠值拇a都是簡(jiǎn)潔易懂的,因此在開(kāi)發(fā)大型軟件時(shí),它更容易發(fā)揮出高級(jí)語(yǔ)言的優(yōu)點(diǎn)。C語(yǔ)言具有如下特征:1、語(yǔ)言簡(jiǎn)潔,簡(jiǎn)潔,使用方便,靈活。C語(yǔ)言僅有32個(gè)關(guān)鍵詞,9個(gè)控件,編程自由,以小寫(xiě)為主,所有多余的元素都被壓縮。2、大量的操作符。C的操作符的設(shè)計(jì)非常寬泛,總共有34個(gè)操作,因此C具有非常豐富的操作類型和大量的表達(dá)形式,并且可以通過(guò)靈活的操作來(lái)完成其它高級(jí)語(yǔ)言無(wú)法完成的操作。3、數(shù)據(jù)結(jié)構(gòu)豐富,采用多種現(xiàn)代語(yǔ)言的數(shù)據(jù)結(jié)構(gòu),可用于處理各種復(fù)雜數(shù)據(jù)。4、具有結(jié)構(gòu)化的控制結(jié)構(gòu),以功能為單元,易于實(shí)現(xiàn)。5、語(yǔ)法限制較少,編程更自由。6、C語(yǔ)言具有比特運(yùn)算能力,能夠完成匯編語(yǔ)言的多種功能,能夠直接在硬件上運(yùn)行。所以C不僅具備了高級(jí)語(yǔ)言的能力,而且還具備了很多底層語(yǔ)言的能力,可以用于編寫(xiě)系統(tǒng)軟件。C語(yǔ)言的這一雙重特性使得其成為一門(mén)成功的系統(tǒng)描述語(yǔ)言,同時(shí)也成為一門(mén)通用編程語(yǔ)言。7、生成的代碼具有較高的品質(zhì),能夠有效地完成該程序。8、C語(yǔ)言編寫(xiě)的軟件具有良好的移植性。它可以在不同的電腦和不同的操作系統(tǒng)中直接使用。在操作系統(tǒng)和系統(tǒng)工具和需要操作硬件的情況下,C的優(yōu)越性要比其它的高,一些大型的應(yīng)用軟件也采用C。2.2系統(tǒng)主程序設(shè)計(jì)及流程圖在啟動(dòng)電源后,單片機(jī)進(jìn)入主程序,在主程序中進(jìn)行初始化。通過(guò)LCD液晶顯示、中斷程序、時(shí)鐘的初始化和各個(gè)傳感器的參數(shù)初始化,初始化后的數(shù)據(jù)采集,每個(gè)傳感器都能獨(dú)立地獲取相應(yīng)的數(shù)據(jù)。該型號(hào)單片機(jī)的將采集的數(shù)據(jù)直接轉(zhuǎn)化為單片機(jī)可以處理的數(shù)字量,并在LCD1602液晶屏上顯示。通過(guò)單片機(jī)對(duì)所收集到的數(shù)據(jù)進(jìn)行與所設(shè)置的門(mén)限進(jìn)行對(duì)比,在超出門(mén)限的情況下,該蜂鳴器會(huì)發(fā)出聲光報(bào)警。按鍵操作將導(dǎo)致系統(tǒng)中斷,并進(jìn)行對(duì)應(yīng)的加法或減法。在此設(shè)計(jì)中,可以將任務(wù)分解到對(duì)應(yīng)的程序片段中去完成。程序部分,包括數(shù)據(jù)采集、串口轉(zhuǎn)換、定時(shí)器中斷、讀取和寫(xiě)入存儲(chǔ)器數(shù)據(jù)、LCD1602液晶顯示程序、按鍵程序。開(kāi)機(jī)后,首先對(duì)系統(tǒng)進(jìn)行初始化,從鍵盤(pán)輸入的最大塵埃濃度值由微處理器EEPROM讀出。通過(guò)單片機(jī)在液晶顯示屏上顯示設(shè)置的報(bào)警值,并對(duì)室內(nèi)環(huán)境中的甲醛、PM2.5濃度、溫度、濕度進(jìn)行測(cè)量,然后與設(shè)置值進(jìn)行對(duì)比,發(fā)現(xiàn)超過(guò)設(shè)置值時(shí),由單片機(jī)控制。若不超過(guò)報(bào)警值,將延遲幾秒后繼續(xù)收集目前的粉塵值,循環(huán)進(jìn)行此過(guò)程。圖2.1為主程序總體流程圖。開(kāi)始開(kāi)始LCD初始化LCD初始化DHT1初始化DHT1初始化PM2.5串口初始化PM2.5串口初始化甲醛初始化甲醛初始化LCD顯示當(dāng)前值LCD顯示當(dāng)前值按鍵掃描N按鍵掃描NY減加減加是否超出閾值?是否超出閾值?蜂鳴器報(bào)警Y蜂鳴器報(bào)警結(jié)束結(jié)束圖2.1主程序流程圖2.3溫濕度程序流程圖DHT11使用單總線兩條串口通訊協(xié)議,采集時(shí)由STM32F103C8T6單片機(jī)啟動(dòng)啟動(dòng)信號(hào),經(jīng)I/O管腳傳送至DHT11,DHT11逆向傳送響應(yīng),并以40比特的數(shù)據(jù)幀形式輸出,最后以40比特的數(shù)據(jù)格式輸出,以8bit的濕度整數(shù)、8bit的濕度小數(shù)、8bit的溫度整數(shù)、8bit、8bit的溫度、小數(shù)、8bit的校驗(yàn)位、溫濕度小數(shù)的默認(rèn)值為0,也就是單片機(jī)所獲取的全部數(shù)據(jù)是整數(shù),而校驗(yàn)位則是4個(gè)字節(jié)的數(shù)據(jù)相加所得到的8比特的數(shù)據(jù)進(jìn)行校驗(yàn),由單片機(jī)進(jìn)行分析,得到溫度和濕度的具體數(shù)值,最后在液晶屏幕上顯示出來(lái)。圖2.2為溫濕度程序流程圖。開(kāi)始開(kāi)始初始化DHT11應(yīng)答脈沖合并,算出溫濕度數(shù)值發(fā)出轉(zhuǎn)換命令延時(shí)等待溫濕度轉(zhuǎn)換發(fā)出掃描命令應(yīng)答脈沖發(fā)出讀操作否否是是圖2.2溫濕度程序流程圖溫度和濕度檢測(cè)采用DHT11溫濕度傳感器,先先將數(shù)據(jù)引腳拉低18ms,總線和主機(jī)分別被拉低20us,然后設(shè)置為輸入方式,輸入數(shù)據(jù)后,判斷從機(jī)有無(wú)信號(hào),如果沒(méi)有信號(hào),則再次拉高,繼續(xù)等待響應(yīng)信號(hào)的確定,如果沒(méi)有,程序繼續(xù)運(yùn)行,進(jìn)入數(shù)據(jù)接收模式,接收溫度和濕度傳感器收集的溫度和濕度數(shù)據(jù),并接受16比特的數(shù)據(jù),在收到的數(shù)據(jù)中,數(shù)字高8比特,小數(shù)字低8比特,然后由單片機(jī)進(jìn)行處理,最終顯示在LCD屏幕上。2.4LCD顯示程序流程圖LCD1602液晶顯示一個(gè)忙碌的信號(hào),該信號(hào)是在程序命令被執(zhí)行之前,僅在其忙碌的標(biāo)志位處于低時(shí)指示該指示能夠被執(zhí)行。液晶顯示程序流程圖如圖2.3所示。入口入口初始化LCD1602不檢測(cè)寫(xiě)入數(shù)據(jù)檢測(cè)忙信號(hào)獲得現(xiàn)實(shí)RAM地址延時(shí)延時(shí)返回NY圖2.3LCD顯示程序流程圖LCD1602要想顯示一個(gè)字符,就必須要知道這個(gè)字符的真實(shí)RAM地址。其內(nèi)部的控制寄存器有11個(gè)控制命令,其中包含了清屏、鼠標(biāo)移動(dòng)等操作。LCDI602的編程需要定義S、RW、E等,并編寫(xiě)了液滴顯示屏的初始化程序,接著就是執(zhí)行延遲程序,等待由傳感器獲取的數(shù)據(jù)。完成這一步后,就可以開(kāi)始設(shè)定顯示地址,也就是寫(xiě)出一個(gè)字母的位置,然后再寫(xiě)一個(gè)數(shù)字,當(dāng)數(shù)據(jù)傳送完畢,液體屏幕就會(huì)讀出一個(gè)寫(xiě)到的地址,然后顯示出來(lái)。LCD1602應(yīng)用時(shí),必須先編寫(xiě)初始化程序。LCD1602在系統(tǒng)工作時(shí),首先要進(jìn)行初始化,然后再顯示設(shè)定好的初始狀態(tài),并且為接下來(lái)的PM2.5濃度參數(shù)顯示做好準(zhǔn)備工作。2.5按鍵程序流程圖本次設(shè)計(jì)按鍵電路功能不多,分別是設(shè)置溫濕度,PM2.5,甲醛報(bào)警上限值及切換顯示頁(yè)面。單片機(jī)的按鍵具有4個(gè)引腳,相同的一側(cè)是連接的,3個(gè)按鍵并聯(lián)在一起,只要將相同的引腳連接一起即可。按鍵的工作原理就是對(duì)低電平信號(hào)的檢測(cè),在主程序中,循環(huán)執(zhí)行檢測(cè),一旦檢測(cè)到按鍵低電平信號(hào),單片機(jī)產(chǎn)生信號(hào)中斷,進(jìn)入按鍵子程序中。3個(gè)按鍵分別表示加、減、切換顯示頁(yè)面。在不同頁(yè)面表示不同的功能。分別用3個(gè)函數(shù)執(zhí)行不同的操作,注意進(jìn)行延時(shí)操作,防止誤差。按鍵設(shè)置流程圖如1.4所示開(kāi)始開(kāi)始是否按下按鍵否是否按下按鍵是進(jìn)入按鍵設(shè)置函數(shù)進(jìn)入按鍵設(shè)置函數(shù)設(shè)置否設(shè)置是LCD1602顯示LCD1602顯示返回返回圖2.4按鍵程序流程圖2.6蜂鳴器報(bào)警程序流程圖報(bào)警電路采用蜂鳴器報(bào)警,類似于家用電器中的喇叭。由于工作電流比較大,因此不能用在電路上的TTL電平來(lái)驅(qū)動(dòng)蜂鳴器,這時(shí)必須加上一個(gè)電流放大器,即引腳不易使蜂鳴器發(fā)出聲音,因此在蜂鳴器中加入一個(gè)三極管來(lái)提高電流。該蜂鳴器的正極一端與5V供電,而其負(fù)極與三極管的集極連接。用單片機(jī)的管腳通過(guò)與門(mén)來(lái)控制三極管的基極。在引腳處于低電位時(shí),與非門(mén)輸出高電平,三極管接通,蜂鳴器的電流構(gòu)成電路,并啟動(dòng)警報(bào)。在引腳為高電平的情況下,NAND門(mén)的輸出是低的,三極管截止,蜂鳴器沒(méi)有反應(yīng)。報(bào)警流程圖如圖2.5所示:報(bào)警程序入口報(bào)警程序入口是否觸發(fā)報(bào)警條件N是否觸發(fā)報(bào)警條件Y單片機(jī)輸出低電平蜂鳴器報(bào)警單片機(jī)輸出低電平蜂鳴器報(bào)警返回返回圖2.5報(bào)警流程圖2.7串口程序流程圖在這一設(shè)計(jì)中,通過(guò)串口實(shí)現(xiàn)了對(duì)甲醛、PM2.5等的數(shù)據(jù)通訊。串口是MCU中的一個(gè)基礎(chǔ)接口,它的主要作用是調(diào)試,也可以作為數(shù)據(jù)傳輸?shù)慕涌?。從A到B的數(shù)據(jù)只有一條,數(shù)據(jù)就像是羊肉塊一樣被串在線上。UART:通用異步收發(fā)器,USART:通用同步異步收發(fā)器。//1、允許串口時(shí)鐘和GPIO時(shí)鐘使能①串口時(shí)鐘啟用:RCC_APBxPeriphClockCmd();②GPIO時(shí)鐘使能:RCC_AHB1PeriphClockCmd();//2、設(shè)置引腳復(fù)用器映射:GPIO_PinAFConfig();//3、初始化串口參數(shù)(GPIO配置)(5個(gè)參數(shù))GPIO_Init();//初始化//4、串口參數(shù)初始化(6個(gè)參數(shù))USART_Init();//初始化串行端口//2.使能串口USART_Cmd();//3.開(kāi)啟中斷(需要開(kāi)啟中斷時(shí)進(jìn)行)//設(shè)置中斷進(jìn)入的條件:接收數(shù)據(jù)緩沖區(qū)有數(shù)據(jù)的時(shí)候就會(huì)進(jìn)入中斷USART_ITConfig(USART1,USART_IT_RXNE,ENABLE);//7.配置(4個(gè)參數(shù))NVIC_Init(&NVIC_InitStructure);//8、編寫(xiě)中斷處理函數(shù):USARTx_IRQHandler();//串口數(shù)據(jù)收發(fā):voidUSART_SendData();//發(fā)送數(shù)據(jù)到串口,DRuint16_tUSART_ReceiveData();//接受數(shù)據(jù),從DR讀取接受到的數(shù)據(jù)//串口傳輸獲?。篎lagStatusUSART_GetFlagStatus();voidUSART_ClearITPendingBit()。圖2.6為串口通信流程圖。開(kāi)始開(kāi)始打開(kāi)串口1打開(kāi)串口1設(shè)置串口參數(shù)設(shè)置串口參數(shù)發(fā)送聯(lián)絡(luò)信號(hào)”發(fā)送聯(lián)絡(luò)信號(hào)”0xaa”單片機(jī)是否發(fā)送?單片機(jī)是否發(fā)送?N校驗(yàn)和清零校驗(yàn)和清零接受數(shù)據(jù)并求校驗(yàn)和接受數(shù)據(jù)并求校驗(yàn)和是否接受完了?是否接受完了?N接受單片機(jī)校驗(yàn)和與ARM校驗(yàn)和比較接受單片機(jī)校驗(yàn)和與ARM校驗(yàn)和比較接受是否正確?接受是否正確?Y發(fā)出錯(cuò)誤標(biāo)志”0xff發(fā)出錯(cuò)誤標(biāo)志”0xff”返回返回圖2.6串口通信流程圖3系統(tǒng)軟硬件綜合調(diào)試3.1硬件調(diào)試1.焊接的順序問(wèn)題在調(diào)試硬件時(shí),我碰到了很多困難,等我將全部零件焊接好,準(zhǔn)備進(jìn)行調(diào)試時(shí),卻發(fā)現(xiàn),正、負(fù)電極之間的連接線距離過(guò)緊,很難接通,因?yàn)槲业氖韬?,犯了一些不?yīng)該犯的錯(cuò)誤,所以說(shuō),做任何事情都必需懷著嚴(yán)謹(jǐn)?shù)膽B(tài)度,來(lái)不得半點(diǎn)的馬虎,否則浪費(fèi)了時(shí)間和精力,使效率大大降低。因此對(duì)于沒(méi)有調(diào)試過(guò)的板子,焊接的順序很重要,焊接時(shí)按不同功能的器件的劃分進(jìn)行焊接,順序是先把部分功能進(jìn)行焊接,之后對(duì)這方面的功能進(jìn)行調(diào)試,如果功能都實(shí)現(xiàn)了,則進(jìn)行下一個(gè)部分的焊接,然后在調(diào)試,如果不成功,則重新進(jìn)行焊接。在對(duì)按功能劃分的器件上進(jìn)行焊接調(diào)試時(shí),如果遇到功能不實(shí)現(xiàn),則:1)檢查原理圖連接是不正確2)檢查原理圖與PCB圖是否一致3)檢驗(yàn)電路板和裝置的DATASHEET上的引腳是否相符4)使用萬(wàn)用表,檢查有無(wú)虛焊和引腳短路的情況。5)詢問(wèn)設(shè)備的數(shù)據(jù),分析時(shí)序的一致性,并分析命令字的正確性。6)在有條件的情況下,我用示波器檢查了SRAM的每一個(gè)引腳,結(jié)果都顯示了信號(hào),但沒(méi)有任何信號(hào),這就說(shuō)明了問(wèn)題。7)在有飛線的情況下。用另外一根線來(lái)控制,看看能不能正常工作,多做幾次實(shí)驗(yàn),找出問(wèn)題所在。2.焊接的調(diào)試首先,該板是焊接和電氣調(diào)整。當(dāng)電源燈亮?xí)r,電源成功。再用萬(wàn)用表測(cè)量電壓穩(wěn)定為2.04V,ASM1117穩(wěn)定輸入2.04V穩(wěn)定輸出3.28V,則電源及降壓成功。接著,當(dāng)調(diào)整光電傳感器時(shí),光電傳感器的電源指示燈亮,光電傳感器的輸出變?yōu)楦唠娖剑私庸怆妭鞲衅鞯碾娖捷敵龆?,電平低時(shí)輸出,開(kāi)關(guān)打開(kāi),光電傳感器工作指示??偸?。你可以調(diào)整光學(xué)傳感器。帶有隔離器的旋鈕來(lái)調(diào)整檢測(cè)范圍。再次對(duì)其他外圍電路進(jìn)行焊接應(yīng)盡可能減少焊接過(guò)程中的焊接時(shí)間,防止在過(guò)高溫度下?lián)p壞電子部件,從而最大限度地提高漏焊率。最后,將微控制器與芯片進(jìn)行焊接調(diào)整,使微控制器與芯片能夠仔細(xì)焊接,并且引線可能過(guò)于擁擠,造成短路和虛焊,從而使用測(cè)試儀仔細(xì)檢查測(cè)試儀各部分的通斷情況,避免損壞主板。整個(gè)焊接完成并測(cè)試后,首先下載并運(yùn)行串行運(yùn)行程序。如果焊接成功,則運(yùn)行runlander程序。再測(cè)試JTAG下載接口成功,即表明板子正常工作,硬件調(diào)試成功。圖3.1為實(shí)物焊接圖+圖3.1實(shí)物焊接圖3.電源電路的調(diào)試焊接圖中直接插,就可以了,4是電源vcc輸出,2是gnd1是vcc輸入到6,當(dāng)按鍵按下后4就可以輸出電源vcc了,圖3.2為電源焊接正面,圖3.3為電源焊接反面圖3.2電源焊接正面圖3.3電源焊接反面1.溫濕度檢測(cè)芯片在測(cè)試溫濕度檢測(cè)芯片時(shí),由于我當(dāng)時(shí)所處的環(huán)境比較嘈雜,所以顯示屏現(xiàn)實(shí)的溫濕度不是很準(zhǔn)確和顯示溫濕度不變。我還以為是硬件出了問(wèn)題,當(dāng)我換了一個(gè)環(huán)境時(shí),LCD1602顯示的溫濕度值就會(huì)變換。2.LCD液晶顯示屏當(dāng)時(shí)通電后,液晶顯示屏太暗了,使我感到很苦惱。通過(guò)請(qǐng)教老師我加了一個(gè)電位器,并且告訴我如果加了電位器亮度依然暗,就證明是背光亮度不夠,可以改小背光正極腳位上的限流電阻。3.邏輯故障在制作制版時(shí),我曾遭遇過(guò)錯(cuò)線開(kāi)路、短路等問(wèn)題。排除的辦法就是先把印刷電路板仔細(xì)地與電路圖核對(duì),看看二者是否相符。另外,我還要留意電力系統(tǒng)的故障,避免發(fā)生短路和極性故障,并且要特別注意系統(tǒng)總線(地址總線,數(shù)據(jù)總線,控制總線)有沒(méi)有短路或者其他的信號(hào)線。我也使用了一個(gè)數(shù)字萬(wàn)用表的短路檢測(cè)功能,從而縮短了排錯(cuò)時(shí)間。7.電源故障的排除在上電前,我先對(duì)供電電壓和極性進(jìn)行了測(cè)試,以防對(duì)集成塊造成損傷,然后在上電后檢查各插頭的電位,看看VCC和GND的電壓在5-1.8V之間。如果是高壓電源,那么要調(diào)試在線模擬器,檢查模擬器失敗,表示系統(tǒng)的集成模塊被燒毀。3.2軟件仿真調(diào)試KeiluVision5是一個(gè)專門(mén)的、實(shí)用的C語(yǔ)言開(kāi)發(fā)系統(tǒng),它提供編譯、編譯、安裝和調(diào)試,主要增加了包管理器的功能,并支持LWIP,它的SWD下載速度比KEIL4快5倍。該系統(tǒng)采用了一個(gè)全新的、靈活的窗口管理系統(tǒng),可以讓用戶通過(guò)多個(gè)監(jiān)控設(shè)備,實(shí)時(shí)地看到設(shè)計(jì)中的各種問(wèn)題。(1)選擇Optionsfortarget圖3.4選擇Optionsfortarget界面選擇ULINK2/MECortexDebugger仿真器,之后選擇settings圖3.5setting界面Debug一欄中Reset部分可選擇SYSRESEETREQ和Autodetect圖3.5Debug界面選擇Flashdownload圖3.6選擇Flashdownload(5)Debug中選擇調(diào)試按鈕圖3.7調(diào)
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝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ù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 大秦醫(yī)院面試題及答案
- C語(yǔ)言基礎(chǔ)選擇測(cè)試題含多知識(shí)點(diǎn)考察及答案
- 感控護(hù)士院感防控知識(shí)試題及答案
- 新疆成人考試真題及答案
- 成都三基試題題庫(kù)附答案
- 市事業(yè)單位招聘考試公共基礎(chǔ)知識(shí)試題題庫(kù)附答案詳解
- 輸血三基考試試題及答案
- 三級(jí)醫(yī)院護(hù)士招聘面試題含答案
- 嵌入式開(kāi)發(fā)面試題及答案
- 河南專升本試題及答案
- 起重設(shè)備安全使用指導(dǎo)方案
- 江蘇省揚(yáng)州市區(qū)2025-2026學(xué)年五年級(jí)上學(xué)期數(shù)學(xué)期末試題一(有答案)
- 干部履歷表(中共中央組織部2015年制)
- GB/T 5657-2013離心泵技術(shù)條件(Ⅲ類)
- GB/T 3518-2008鱗片石墨
- GB/T 17622-2008帶電作業(yè)用絕緣手套
- GB/T 1041-2008塑料壓縮性能的測(cè)定
- 400份食物頻率調(diào)查問(wèn)卷F表
- 滑坡地質(zhì)災(zāi)害治理施工
- 實(shí)驗(yàn)動(dòng)物從業(yè)人員上崗證考試題庫(kù)(含近年真題、典型題)
- 可口可樂(lè)-供應(yīng)鏈管理
評(píng)論
0/150
提交評(píng)論