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

正文內(nèi)容

智能家居系統(tǒng)-畢業(yè)設(shè)計(jì)-文庫(kù)吧

2025-06-14 03:35 本頁(yè)面


【正文】 LED顯示 圖31系統(tǒng)功能結(jié)構(gòu)圖 軟件設(shè)計(jì)主程序 系統(tǒng)的程序燒錄到STC89C52內(nèi)部的FLASH內(nèi)存中,有主程序、溫度讀取程序、中斷延時(shí)程序、紅外遮擋時(shí)間判定程序、光線強(qiáng)度判定程序、由光線強(qiáng)度值控制電機(jī)程序、鍵盤(pán)輸入、LCD顯示程序和報(bào)警子程序等組成。為了方便編程,使程序完成后條理清晰,就必須對(duì)數(shù)據(jù)存儲(chǔ)器的存儲(chǔ)空間進(jìn)行規(guī)劃。STC89C52提供用戶的RAM有256字節(jié)。 主程序的功能是完成開(kāi)機(jī)界面和對(duì)單片機(jī)所進(jìn)行的初始化,初始化就是設(shè)置各個(gè)變量的初始值、進(jìn)行相關(guān)的中斷設(shè)置等。各部分的地址分配如下:LCD1602的數(shù)據(jù)端口:P0口;LCD1602的控制端口:~;DS18B20溫度傳感器接口:;矩陣鍵盤(pán)接口:~;紅外接口:;報(bào)警器接口:;步進(jìn)電機(jī)接口:~。主程序的流程圖如圖32所示。初始化設(shè)置定時(shí)器0打開(kāi)定時(shí)器中斷讀取密碼值讀取溫度值報(bào)警顯示密碼錯(cuò)誤顯示溫度值讀取光線強(qiáng)度主程序密碼是否正確紅外值是否大于閥值YNYN 圖32 主程序流程圖 軟件系統(tǒng)構(gòu)成、。由于項(xiàng)目文件并不太大,所以用五個(gè)頭文件的形式將一些必要的時(shí)鐘設(shè)置、宏定義和一些簡(jiǎn)單的驅(qū)動(dòng)程序包含在主函數(shù)中,這樣,既可以實(shí)現(xiàn)程序設(shè)計(jì)的模塊化,又不影響程序編譯的效率。、模數(shù)轉(zhuǎn)換功能,同時(shí),它還包含了單片機(jī)應(yīng)用中最重要的定時(shí)器設(shè)置、定時(shí)器中斷、端口中斷等內(nèi)容。 顯示子程序 LCD1602典型應(yīng)用和本設(shè)計(jì)一致,可以參看原理圖。其基本操作時(shí)序如下: 讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0~D7=狀態(tài)字 寫(xiě)指令:輸入:RS=L, RW=L,D0~D7=指令,E=高脈沖 輸出:無(wú) 讀數(shù)據(jù):輸入:RS=H, RW=H, E=H 輸出:DO~D7=數(shù)據(jù) 寫(xiě)數(shù)據(jù):輸入:RS=H, RW=L,D0~D7=數(shù)據(jù),E=高脈沖 輸出:無(wú)顯示子程序負(fù)責(zé)狀態(tài)的顯示,在輸入密碼狀態(tài)負(fù)責(zé)提示語(yǔ)的顯示,和輸入密碼過(guò)程的顯示,當(dāng)密碼輸入完畢之后將密碼判斷的結(jié)果顯示出來(lái)。在系統(tǒng)進(jìn)入正常工作狀態(tài)后,顯示當(dāng)前的溫度值和紅外值。(1)LCD1602的讀操作時(shí)序如圖35所示。圖33 1602讀操作時(shí)序(2) LCD1602的寫(xiě)操作時(shí)序如圖36所示 圖34 1602寫(xiě)操作時(shí)序 溫度數(shù)據(jù)讀取程序 溫度檢測(cè)模塊本設(shè)計(jì)選用了DS18B20元件。DS18B20元件是由DALLAS設(shè)計(jì)生產(chǎn)的一款單總線方式訪問(wèn)的數(shù)字溫度計(jì)。該元件具有體積小,外圍電路簡(jiǎn)單等特點(diǎn)。因此本設(shè)計(jì)選擇該元件為基礎(chǔ)組建一個(gè)溫度檢測(cè)系統(tǒng)。由于該元件遵循單總線協(xié)議,即只要使用一個(gè)引腳就可以進(jìn)行數(shù)據(jù)的傳輸,所以它對(duì)讀/寫(xiě)操作的時(shí)序要求比較嚴(yán)格。在進(jìn)行此操作時(shí)為保證數(shù)據(jù)的可靠性,需要關(guān)閉總中斷。此外該元件上電后默認(rèn)精度為9位,在寫(xiě)完讀取溫度指令后,會(huì)在該器件內(nèi)部的兩個(gè)8位的RAM中獲取有效數(shù)據(jù)。其中前8位用來(lái)表示測(cè)得數(shù)據(jù)的正負(fù),即為數(shù)據(jù)的符號(hào)位,后面的8位用于表示數(shù)據(jù)值。由于測(cè)量精度為9位,所以當(dāng)測(cè)得溫度為正數(shù)時(shí)。當(dāng)測(cè)得值為負(fù)數(shù)時(shí)。例如,對(duì)應(yīng)于25℃的數(shù)據(jù)格式為: MSB LSB1 1 1 1 1 1 1 1 1 1 0 0 1 1 1 0 (符號(hào)位“”) (溫度值“ ”) 11001110的補(bǔ)碼00110010,即,被測(cè)溫度值為: T=(125 +124 +12)℃=25℃ 表31 9位DS18B20溫度與數(shù)據(jù)的對(duì)應(yīng)關(guān)系溫度/℃二進(jìn)制數(shù)據(jù)輸出十六進(jìn)制數(shù)據(jù)輸出+12500000000 1111101000FAH+2500000000 001100100032H+00000000 000000010001H11111111 11111111FFFFH2511111111 11001110FFCEH5511111111 10010010FF92H當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),要循環(huán)的對(duì)溫度數(shù)據(jù)采集、顯示和判定。對(duì)溫度值的讀取由DS18B20來(lái)完成。DS18B20是一線式的器件,數(shù)據(jù)的讀寫(xiě)都通過(guò)一個(gè)數(shù)據(jù)端口來(lái)完成。所以對(duì)DS18B20的控制時(shí)序就要求比較高。讀取和寫(xiě)入數(shù)據(jù)的過(guò)程中無(wú)法被中斷,所以在DS18B20的讀寫(xiě)的情況下關(guān)閉中斷。 DS18B20的控制是典型的控制類(lèi)程序。共享4個(gè)函數(shù)來(lái)完成。初始化、讀數(shù)據(jù)、寫(xiě)數(shù)據(jù)和得到溫度4個(gè)函數(shù)。DS18B20控制程序的流程圖如圖37所示。初始化ds18b20寫(xiě)溫度轉(zhuǎn)換命令等待溫度轉(zhuǎn)換命令讀取溫度值溫度程序結(jié)束圖35 DS18B20流程圖 中斷程序在DS18B20的程序中,當(dāng)啟動(dòng)DS18B20溫度轉(zhuǎn)換之后,需要等待750ms以上,才能從DS18B20端口上讀到當(dāng)前的溫度值。而紅外的數(shù)據(jù)什么時(shí)候到來(lái)是不確定的,為了平衡二者的關(guān)系。使用定時(shí)器中斷,來(lái)產(chǎn)生5ms的中斷。沒(méi)當(dāng)中斷到來(lái)讀取紅外的端口,當(dāng)紅外有輸出時(shí),打開(kāi)內(nèi)部計(jì)數(shù)器來(lái)記錄紅外被遮擋的時(shí)間。通過(guò)定時(shí)器中斷不僅滿足的DS18B20的讀取問(wèn)題,也兼顧了紅外數(shù)據(jù)的讀取和顯示的問(wèn)題。定時(shí)器中斷流程圖如圖39所示。進(jìn)入中斷、定時(shí)存數(shù)據(jù)保護(hù)現(xiàn)場(chǎng)取數(shù)據(jù)指向下一地址請(qǐng)標(biāo)志位開(kāi)始退出現(xiàn)場(chǎng)結(jié)束圖36 定時(shí)器中斷子程序流程圖 光線檢測(cè)與步進(jìn)電機(jī)控制子程序根據(jù)本設(shè)計(jì)的模擬量轉(zhuǎn)換要求,系統(tǒng)采用的ADC083是8位分辨率的A/D轉(zhuǎn)換芯片,其最高分辨可達(dá)256級(jí),轉(zhuǎn)換時(shí)間僅為32ΜS,轉(zhuǎn)換速度快且穩(wěn)定性能強(qiáng),完全可以達(dá)到要求。因其內(nèi)部參考電壓的復(fù)用與電源的輸入,使得芯片的模擬電壓輸入保持在0~5V之間,達(dá)到穩(wěn)定的工作狀態(tài)。芯片還具有雙數(shù)據(jù)輸出可作為數(shù)據(jù)校驗(yàn),能夠有效地減少數(shù)據(jù)誤差。選用獨(dú)立的芯片使能輸入,通過(guò)數(shù)據(jù)輸入,我們可以很容易地實(shí)現(xiàn)信道選擇功能。光線檢測(cè)主要是通過(guò)ADC0832來(lái)完成的。通過(guò)讀取ADC0832的值,并與上一個(gè)讀取的值相比較,來(lái)判斷光線是變暗了還是變亮了。根據(jù)本次讀取的值和上次讀取的值取差值,用差值來(lái)控制電機(jī)的正反轉(zhuǎn)以及電機(jī)的轉(zhuǎn)動(dòng)幅度。光線檢測(cè)與步進(jìn)電機(jī)控制子程序的流程圖如圖310所示。初始化DS18B20開(kāi)始讀取模數(shù)轉(zhuǎn)換值 保存檢測(cè)值,計(jì)算初始值或上一值的差值取反轉(zhuǎn)程序及轉(zhuǎn)動(dòng)幅度 判斷差值的大小取正轉(zhuǎn)程序及轉(zhuǎn)動(dòng)幅度結(jié)束小于0大于0等于0圖37 光線檢測(cè)與步進(jìn)電機(jī)控制程序流程圖 報(bào)警條件子程序報(bào)警條件說(shuō)明 :(1)密碼輸入:當(dāng)密碼輸入錯(cuò)誤時(shí)報(bào)警,密碼輸入正確則進(jìn)行下一步操作;(2)紅外傳感器:紅外被遮擋5秒以上為達(dá)到報(bào)警條件,以下為未達(dá)到報(bào)警條件。因?yàn)樗O(jiān)測(cè)的傳感器主要是溫度傳感器和紅外傳感器,任何一個(gè)傳感器如果達(dá)到報(bào)警條件,都可以發(fā)出報(bào)警信號(hào)。在硬件設(shè)計(jì)方面已經(jīng)對(duì)每個(gè)傳感器的報(bào)警條件進(jìn)行了設(shè)置。程序流程圖如圖311所示。 讀取密碼值初始化進(jìn)入報(bào)警狀態(tài)讀取紅外值判斷密碼是否正確紅外值是否達(dá)到閥值報(bào)警是否解除開(kāi)始結(jié)束YNNY 圖38 報(bào)警條件子程序流程圖4 智能家居控制系統(tǒng)軟件調(diào)試環(huán)境與分析結(jié)果本次系統(tǒng)調(diào)試,是以硬件模塊為準(zhǔn),先模塊后整合的方式進(jìn)行的。當(dāng)然,單片機(jī)的基本時(shí)鐘和引腳設(shè)置必不可少。在系統(tǒng)聯(lián)調(diào)時(shí),出現(xiàn)了許多實(shí)際問(wèn)題?,F(xiàn)將主要方面闡述如下。 開(kāi)發(fā)環(huán)境簡(jiǎn)介 編程軟件介紹 在本設(shè)計(jì)中,由于用的是C語(yǔ)言編程,所以我選用的軟件開(kāi)發(fā)環(huán)境是美國(guó)Keil SOFTWARE公司出品的51系列兼容單片機(jī)。KEIL ΜVISION可以方便的使用并且利用其強(qiáng)大的仿真功能進(jìn)行軟硬件的調(diào)試工作。目前最新版的KEIL系統(tǒng)提供了包括于C編譯器、宏匯編、連接器、庫(kù)管理和一個(gè)功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的一整套完善的開(kāi)發(fā)方案,并可以通過(guò)一個(gè)集成開(kāi)發(fā)環(huán)境(UVISION)將這些部分嚴(yán)密的組合在一起共同工作。WIN9NT、WIN2000、WINXP等操作系統(tǒng)都可以有效的運(yùn)行KEIL軟件進(jìn)行編程。 實(shí)際使用KEIL 51時(shí),干集成環(huán)境既可用于C語(yǔ)言開(kāi)發(fā)也可用于匯編語(yǔ)言開(kāi)發(fā)。它內(nèi)部集成了文件編輯、項(xiàng)目管理、編譯鏈接和仿真調(diào)試等多種功能。用戶可以在這里用文件編輯器編寫(xiě)自己的程序,用多種方法來(lái)調(diào)試和修改程序。編譯程序也能幫助用戶檢查錯(cuò)誤,提示用戶修改錯(cuò)誤,直至程序無(wú)誤。 為了使軟件編程環(huán)境更加靈活多樣,所以在2009年2月發(fā)布了引入靈活的窗口管理系統(tǒng)的UVISION4編程環(huán)境,能夠使用更多的監(jiān)視器,視覺(jué)上可以對(duì)窗口位置的任何地方進(jìn)行完全控制是本次軟件更新的最大亮點(diǎn),并且充分利用屏幕空間和更有效地組織多個(gè)窗口是新的用戶界面顯著地特點(diǎn),它為我們提供一個(gè)整潔的、高效的環(huán)境來(lái)開(kāi)發(fā)應(yīng)用程序以提高工作效果。 程序的工程建立 (1)先建立一個(gè)名為“hyx”的空文件夾,把工程文件放到里面,防止和其它文件相混。開(kāi)始工作并啟動(dòng)KEIL UVISION4軟件。 (2)點(diǎn)擊“PROJECTNEW UVISION PROJECT”新建一個(gè)系統(tǒng)工程。 (3)在彈出的對(duì)話框中,選擇剛剛建立的“HYX”的文件夾,保存該項(xiàng)目的名稱,不需要填寫(xiě),默認(rèn)的工程后綴與UVISION3及UVISION2版本不同了,為UVPORJ。(4)彈出一個(gè)對(duì)話框后,就可以根據(jù)設(shè)計(jì)中所需要的單片機(jī)??梢栽谡业讲⑦x中“HYX”下的AT89C52,用于開(kāi)始編譯程序。 (5)編程完畢之后,開(kāi)始建立一個(gè)源程序文本: (6)找一個(gè)空白的文檔開(kāi)始寫(xiě)入源程序。 (7)輸入源程序文件名名稱,因?yàn)槭荂語(yǔ)言,則是“”然后保存。 (8)在項(xiàng)目設(shè)置中,可以編譯、鏈接,選擇菜單項(xiàng)目建立目標(biāo),連接到單一的工程項(xiàng)目,生成代碼。如下圖33所示:圖41 基于Keil的編程說(shuō)明圖 程序的調(diào)試在對(duì)工程成功的進(jìn)行匯編、連接后,要進(jìn)入軟件調(diào)試狀態(tài),只要選擇菜單中的DEBUGSTART/STOP DEBUG SESSION即可,并建立了一個(gè)仿真CPU用來(lái)模擬執(zhí)行該程序。 主程序的調(diào)試 因?yàn)楸驹O(shè)計(jì)中采用的模塊較多所以系統(tǒng)采用了實(shí)時(shí)多任務(wù)系統(tǒng),實(shí)行逐個(gè)分任務(wù)進(jìn)行調(diào)試。當(dāng)逐個(gè)子程序調(diào)試好以后,再觀察各個(gè)任務(wù)同時(shí)運(yùn)行時(shí)操作系統(tǒng)中有沒(méi)有錯(cuò)誤。等調(diào)試全部完成后,為了調(diào)試效果應(yīng)反復(fù)運(yùn)行多次,其中如發(fā)現(xiàn)錯(cuò)誤時(shí)部分程序作了適當(dāng)修正后系統(tǒng)才能夠正常運(yùn)行。利用單步運(yùn)行的的性質(zhì),可以對(duì)一些多次循環(huán)重復(fù)的程序進(jìn)行檢查。而這樣的調(diào)試可以選用KEIL ΜVISION開(kāi)發(fā)環(huán)境來(lái)進(jìn)行調(diào)試,既方便又快捷。從中找到程序出錯(cuò)的環(huán)節(jié)及故障點(diǎn)進(jìn)行修改,直到程序完全正常。如下圖34所示: 圖42 Keil程序的調(diào)試 軟件抗干擾措施當(dāng)單片機(jī)受到干擾,不再按照一定的規(guī)律執(zhí)行,被改變了的程序指針(PC)的值后,使程序而跑飛到其它非程序區(qū),此后它不僅執(zhí)行了一系列毫無(wú)意義的指令,而且還可能破壞數(shù)據(jù)存儲(chǔ)器的內(nèi)容,造成難以預(yù)料的后果。激活看門(mén)狗的程序其工作指令如下程序: SFR WDTRST = 0XA6 _NOP_()。 WDTRST = 0X1E 。先送1E WDTRST = 0XE1 。后送E1 調(diào)試結(jié)果展示設(shè)計(jì)中的要求基本完成,如下圖41和42所示:(1) 開(kāi)機(jī)畫(huà)面,需輸入正確密碼(2) 密碼正確后,會(huì)顯示當(dāng)前室內(nèi)溫度 (3)紅外,光敏,步進(jìn)電機(jī)都能實(shí)現(xiàn)且運(yùn)行良好圖43 開(kāi)機(jī)畫(huà)面圖44 溫度及其他顯示畫(huà)面5 結(jié)論及展望 智能家居控制系統(tǒng)的核心任務(wù)是數(shù)據(jù)的采集、運(yùn)算和處理,對(duì)于實(shí)際物理量的采集必須要有傳感器。傳感器是一種檢測(cè)裝置,它能夠直接將物理量轉(zhuǎn)換為電信號(hào)的量,現(xiàn)今的傳感器還能直接將物理量轉(zhuǎn)換為單片機(jī)可以接收的數(shù)字量。傳感器的工作指標(biāo)與運(yùn)行性能是能否圓滿完成檢測(cè)和控制的重要環(huán)節(jié),如果沒(méi)有對(duì)原始物理量精確可靠的反應(yīng),那么就無(wú)法進(jìn)行最佳檢測(cè)和控制。 本設(shè)
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1