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

正文內(nèi)容

智能燈控系統(tǒng)的設(shè)計與實現(xiàn)畢業(yè)論文(編輯修改稿)

2024-07-19 07:14 本頁面
 

【文章內(nèi)容簡介】 顯示驅(qū)動模塊及系統(tǒng)鍵功能和存儲模塊。監(jiān)控程序按模塊分為監(jiān)控主程序和命令處理子程序。監(jiān)控主程序的基本任務(wù)是調(diào)用子程序,一個主程序可以調(diào)用多個子程序,對于51系列單片機,系統(tǒng)資源有限,主程序通常是一個無限循環(huán)的過程,即是一個反復(fù)調(diào)用子程序的過程。子程序主要分為中斷子程序和功能子程序,它們之間可以互相嵌套和調(diào)用,即中斷子程序可以調(diào)用功能子程序。在應(yīng)用軟件的設(shè)計中,盡可能各個功能模塊寫成子程序的形式,并通過主程序調(diào)用。而命令處理子程序完成各種命令所規(guī)定的具體操作,它按各種命令再分為不同的子程序模塊,它一般總是把其余部分連接起來構(gòu)成一個無限循環(huán),系統(tǒng)所有功能都在這一循環(huán)中周而復(fù)始的有選擇的執(zhí)行。其監(jiān)控主程序流程圖如圖41所示: 系統(tǒng)初始化看門狗激活設(shè)定定時器,允許定時中斷上電Reset人體傳感器處理任務(wù)環(huán)境光處理任務(wù)定時時鐘管理顯示刷新任務(wù)圖 41 監(jiān)控主程序流程圖 系統(tǒng)自檢初始化是保證整個控制系統(tǒng)能夠正常運行的重要條件,系統(tǒng)加電復(fù)位后,直接進入自檢初始化程序,完成系統(tǒng)的自檢及初始化。初始化過程主要是對一些控制寄存器(如中斷控制)、數(shù)據(jù)區(qū)和外部芯片(如時鐘芯片DS1302等)進行初始參數(shù)設(shè)置和定義。本系統(tǒng)中的自檢初始化主要指各接口芯片的檢測、芯片內(nèi)部設(shè)定參數(shù)的初始化及系統(tǒng)內(nèi)部寄存器的初始化。 各接口芯片的檢測主要檢測各芯片是否己處于準(zhǔn)備工作的就緒狀態(tài),有無硬件故障等,如檢測各位LED是否正常顯示系統(tǒng)設(shè)置開機時的界面,檢測硬件時鐘DS1302是處于更換芯片后初次使用為起振狀態(tài),還是處于備用電源供電振蕩保持狀態(tài),即檢測系統(tǒng)中控制時間表的有效性,檢測人體傳感器輸出信號是否正常體現(xiàn)人體存在的信息,檢測環(huán)境光是如何影響光采集電路輸出的信號等。若時鐘芯片處于啟動狀態(tài),系統(tǒng)控制時間表無效,則需要對其進行初始化并啟動實時時鐘。 系統(tǒng)內(nèi)部寄存器初始化主要是指在數(shù)據(jù)緩沖區(qū)內(nèi),各用戶定義的數(shù)據(jù)變量的初始化賦值及部分特殊功能寄存器SFR的復(fù)位初始化,單片機復(fù)位后,程序計數(shù)器PC指向程序存儲器的入口地址0000單元,程序狀態(tài)字寄存器PSW清零,片內(nèi)存儲器選擇工區(qū)工作寄存器,用戶標(biāo)志位F0為0狀態(tài),堆棧指針SP指向07H,其它定時器、中斷允許寄存器IE、累加器ACC等皆為00H。 定時中斷是利用單片機內(nèi)部的定時器定時時間到或計數(shù)值已滿引起的中斷,內(nèi)部定時器的計數(shù)器可以對內(nèi)部時鐘或從外部引線TO和TI輸入的外部脈沖進行計數(shù)。計數(shù)器的溢出信號作為中斷請求信號,去置位定時器溢出標(biāo)志位,向單片機的CPU申請中斷。定時中斷為周期性中斷,每隔一定的時間會中斷一次。本系統(tǒng)中設(shè)定的定時中斷主要用來構(gòu)造多任務(wù)操作系統(tǒng),在系統(tǒng)響應(yīng)中斷后,無需對斷點實施現(xiàn)場保護,可直接進行多任務(wù)時間的劃分工作,使相應(yīng)的操作任務(wù)進入就緒狀態(tài),即該中斷可以啟動有關(guān)的任務(wù)就緒。該定時中斷處理程序框圖如圖4I2所示。開始定時中斷到?多任務(wù)啟動時間劃分下一步Y(jié)N圖 412 定時中斷處理程序框圖 本系統(tǒng)還采用了外部中斷,此外部中斷主要用來判斷是否有遙控器信號,若有,就采集下來并加以處理;若無,則返回到主循環(huán)。 多任務(wù)操作是將用戶應(yīng)用程序分成多個任務(wù),在操作系統(tǒng)的管理下,以某種準(zhǔn)則調(diào)度并分配任務(wù)由處理器去執(zhí)行。多任務(wù)運行實現(xiàn)一般是靠CPU運行實時內(nèi)核,對多任務(wù)進行分配和調(diào)度,使CPU不停地執(zhí)行這些任務(wù)中的某一個任務(wù),以至能最大限度地提高CPU的利用率,加快運行速度,各任務(wù)(程序)不被耽誤運行。本系統(tǒng)多任務(wù)的執(zhí)行是對定時中斷中設(shè)置的實時標(biāo)志進行檢測,通過標(biāo)志位的狀態(tài)決定各任務(wù)的調(diào)用。任務(wù)的執(zhí)行在微觀上是分時順序進行的,但在宏觀上可以認為是同時執(zhí)行的。因此,各任務(wù)在實時系統(tǒng)中的就會處于四種狀態(tài)中的某運行等待休眠就緒圖 413種狀態(tài)之下,這四種狀態(tài)如圖413所示。當(dāng)某個任務(wù)獲得CPU的執(zhí)行權(quán)時,CPU執(zhí)行該任務(wù),此時任務(wù)處于運行狀態(tài)。等待狀態(tài)是指任務(wù)的執(zhí)行需要等待某一事件發(fā)生,則由運行狀態(tài)退出,進入等待狀態(tài)。就緒狀態(tài)是任務(wù)滿足所有啟動條件后所進入的狀態(tài)。休眠狀態(tài)是任務(wù)己執(zhí)行完的狀態(tài)。本控制系統(tǒng)中的數(shù)據(jù)采集對象為環(huán)境光信號及人體存在信號,在程序設(shè)計中對這兩個數(shù)據(jù)的采集放置在多任務(wù)模塊中實施定時采集。人體存在傳感器有優(yōu)點,也有缺點。優(yōu)點便是本身不發(fā)任何類型的輻射,器件功耗很小,隱蔽性好,價格低廉。而缺點是容易受各種熱源、光源干擾。由于紅外穿透力差,因此人體的紅外輻射容易被遮擋,不易被探頭接收;易受射頻輻射的干擾。環(huán)境溫度和人體溫度接近時,探測和靈敏度明顯下降,有時還會造成短時失靈。試驗檢測也證明了這點,只要人體存在卻有巧秒左右沒有活動,人體傳感器則認為沒有人體存在。為避免這種現(xiàn)象的出現(xiàn),本系統(tǒng)軟件程序中設(shè)計為有人體存在狀態(tài)后間隔2分鐘或更長的時間來對人體存在參數(shù)信號的采集。 本系統(tǒng)考慮到環(huán)境光足夠亮?xí)r,無論有否人體存在都不應(yīng)開燈。而環(huán)境光不夠亮?xí)r,有人體存在才開燈,無人體存在不開燈。本系統(tǒng)邏輯定義為環(huán)境光亮?xí)r為二進制的“0”(符合光采集電路輸出信號狀態(tài)),暗時為“1”,人體存在為“1”,人體不存在為“0”,開燈為“1”,關(guān)燈為“0”,那么環(huán)境光與人體存在可以有以下的邏輯關(guān)系表表示,如表4. 2. 2所示: 表4. 2. 2環(huán)境光參數(shù)人體存在參數(shù)教室燈狀態(tài)010000111100上表數(shù)據(jù)表明可將環(huán)境光參數(shù)與人體存在參數(shù)相與門操作,又由于繼電器是低平驅(qū)動,所以要將采集處理后的信號進行非操作,才可以驅(qū)動繼電器工作,即可得到教室燈的狀態(tài),其軟件程序為:; Function: BodySensor and Iight to light port356DoSensLight:Mov c, port33 ;Signal of SensorAnl c, port37Cpl c 。have person and no lightMov port35, c 。on relay 1Mov port36, c 。on relay 2Jnc SensOut 。no person to outHaveperson:mov SensDelayBuf, 5 。delay 5 minuteSensOut: Ret 人體存在傳感器易受外界影響,于是要在使用時特別注意抗干擾性能。 探測器安裝在推薦地使用高度,對探測范圍內(nèi)地面上的小動物,不產(chǎn)生信號。 探測器的抗電磁波干擾性能符合GB10408中4. 6. 1要求,一般手機電磁干擾不會引起誤報。 探測器正常靈敏度范圍內(nèi),受3米外H4鹵素?zé)敉高^玻璃照射,不產(chǎn)生信號。 人體存在傳感的安裝要求:人體存在傳感器只能安裝在室內(nèi),其誤報率與安裝的位置和方式有極大的關(guān)系,正確的安裝應(yīng)滿足下列條件:。,冰箱,火爐等空氣溫度變化敏感的地方。、家具、大型盆景或其他隔離物。,否則窗外的熱氣流擾動和人員走動會引起誤報,有條件的最好把窗簾拉上。人體存在傳感器也不要安裝在有強氣流活動的地方。人體存在傳感器對人體的敏感程度還和人的運動方向關(guān)系很大。人體存在傳感器對于徑向移動反應(yīng)最不敏感,而對于橫切方向(即與半徑垂直的方向)、求得最佳檢測靈敏度極為重要的一環(huán)。 在系統(tǒng)啟動自檢初始化時,首先會對時鐘芯片DS1302的運行狀態(tài)進行判斷,當(dāng)檢測到DS1302處于啟動狀態(tài)時才對其進行初始化啟動時。實時時鐘芯片DS1302的初始化及其讀寫程序設(shè)計的關(guān)鍵是要遵循其時序要求。 在對DS1302進行的各種操作之前,必須先對其初始化,即需要把復(fù)位輸入RST端置為高電平,如果RST輸入為低電平,那么所有的數(shù)據(jù)傳送中止,且I/0引腳變?yōu)楦咦杩範(fàn)顟B(tài)。在數(shù)據(jù)讀/寫完后,RST端應(yīng)置成低電平,以防止外部干擾對DS1302內(nèi)部時鐘的影響。 同時,為了防止復(fù)位輸入端受到外部的干擾,要求上電時,在主電源引腳 Vcc22. 5V之前,RST必須為邏輯0。無論是讀操作還是寫操作,都必須在開頭的8個時鐘周期把提供地址和命令信息的8位數(shù)據(jù)裝入到DS1302的移位寄存器。地址/命令子節(jié)用于指明40個寄存器中的哪個進行何種操作。數(shù)據(jù)在SCLK的上升沿串行輸入,在開始的8個時鐘周期把命令字裝入移位寄存器之后,若跟隨的是寫命令字節(jié),則在下8個SCLK周期的上升沿輸入數(shù)據(jù)字節(jié),若跟隨在讀命令字節(jié)的8個SCLK周期之后,在下8個SCLK周期的下降沿輸出數(shù)據(jù)字節(jié)。DS1302有控制寄存器和年、月、日、周、時、分、秒等工作寄存器組成。本系統(tǒng)中只用到工作寄存器中的時分秒及控制寄存器,所應(yīng)用的各寄存器地址(命令)及數(shù)據(jù)寄存器分配情況如表4. 3. 2所示: 表4. 3. 2內(nèi)部寄存器寄存器名命令字取值范圍各位內(nèi)容寫操作讀操作76543210SEC80H81H00~59CH10SECSECMIN82H83H00~59010MINMINHR84H85H01~02或00~2312/24010HRA/PCONTROL8EH8FHWP0000000CHARGER90H91HTCSTCSTCSTCSDSDSRSRSCLOCKBURSTBEHBFH說明:(1)上表中,時鐘寄存器內(nèi)的數(shù)據(jù)是以BCD碼的形式存在的。其中秒寄存器的位7 定義為時鐘暫停位,當(dāng)此位設(shè)置為邏輯1時,時鐘振蕩器停止,DS1302進入低功耗的備份狀態(tài)。當(dāng)把此位置為0時,時鐘將啟動。(2)小時寄存器的位7定義為12或24小時方式選擇位。當(dāng)為低電平時,選擇24小時方式,本系統(tǒng)在設(shè)計中采用的就為24小時方式。(3)寫保護寄存器的位7是寫保護位,在對時鐘進行些操作之前,位7應(yīng)先置為0,當(dāng)它是高電平時,寫保護防止對任何其它寄存器進行寫操作。此外,涓流充電寄存器各位的作用及工作原理等在本論文前半部分DS1302的硬件設(shè)計中己作過介紹,此處不再詳述。兩次讀取的秒鐘數(shù)據(jù)是否相同讀取DS1302秒鐘時間開始返回主程序DS1302正常工作再次讀取秒鐘數(shù)據(jù)設(shè)置DS1302初始時間秒鐘大于60H?考慮剛買來的時鐘芯片處于一切未知狀態(tài),于是必須對DS1302進行自檢初始化。: DS1302的自檢初始化程序設(shè)計流程圖DS1302的自檢初始化程序如下所示:;Function: Start check DS1302DSCheck: Mov R6, DS1302Sec+1 。Second TimeACall DSRdlByteMov DSCheckData , aCjne a, 60H, $+3DSCheckNext: Jnc DSSetTime。 a=60H to Set DS130239。s TimeAcall DSDelay。 DS1302 delay 1 secondMov R6, DS1302Sec+l 。 a59H Read DS130239。s Second again ACall DSRdlByte Cjne a, DSCheckData, DSOK 。 Two DSSec of Reading is different AJMP DSSetTimeDSOK: Ret 檢查DS1302芯片是否正常工作,本系統(tǒng)中通過先讀取秒鐘寄存器的數(shù)據(jù),將數(shù)據(jù)存儲起來,且將此數(shù)據(jù)與60H相比較,若大于60H,說明時鐘數(shù)據(jù)不正常,轉(zhuǎn)去設(shè)置時鐘時間。若小于并等于60H,延時一秒鐘后,再次讀取秒鐘寄存器的數(shù)據(jù),與第一次讀取的秒鐘數(shù)據(jù)相比較,若這兩次的數(shù)據(jù)相同,說明時鐘數(shù)據(jù)不正常,轉(zhuǎn)去設(shè)置時鐘時間。若正常,則退出到主程序。初始化DS1302的充電狀態(tài)及其初始時間的設(shè)置。:向該地址寫入數(shù)據(jù)變量初始化開始將讀出的數(shù)據(jù)暫存,待顯示數(shù)據(jù)寫完了寫DS1302地址RST—端送高電平RST—端送高電平去除寫保護寫入DS1302讀地址將該地址數(shù)據(jù)讀出數(shù)據(jù)讀完了將DS1302寫保護結(jié)束 讀寫程序流程圖 在對DS1302進行讀操作時,讀出的數(shù)據(jù)為BCD碼,同樣在寫操作時,寫入的數(shù)據(jù)一也必須為BCD碼,這就需要在數(shù)據(jù)寫入之前、讀出之后進行必要的數(shù)據(jù)進制之間的轉(zhuǎn)換,以便與系統(tǒng)其它數(shù)據(jù)在比較時相對應(yīng)。在本系統(tǒng)中,因設(shè)定的時間參數(shù)一般都為二進制或十六進制數(shù),為了便于同DS1302的時鐘數(shù)據(jù)進行比較,故在程序中需進行二進制與BCD碼之間的轉(zhuǎn)換,其相互間的轉(zhuǎn)換程序如下。二進制轉(zhuǎn)換為BCD碼。Function: DisTimeBCD。DisTimeBCD: Mov A, @R0
點擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1