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

正文內(nèi)容

基于at89s51單片機(jī)的教室燈光智能控制系統(tǒng)設(shè)計畢業(yè)設(shè)計(已改無錯字)

2023-01-11 10:24:32 本頁面
  

【正文】 D0=1, 預(yù)置時間為 , WD1=1, WD0=0, 預(yù)置時間為 , WD1=1, WD0=1,禁止看門狗工作。 看門狗電路的定時時間長短可由具體應(yīng)用程序的循環(huán) 周 期決定,通常比系統(tǒng)正常工作時最大循環(huán) 周 期的時間略長即可。 X5045 硬件部分連接如圖 212。 圖 212 系統(tǒng)看門狗電路 系統(tǒng)看門狗電路由系統(tǒng)數(shù)據(jù)存儲及故障保護(hù)部分組成, X5045 是一種串行通信 512 字節(jié)的 EEPROM,同時兼有看門狗和電源監(jiān)控功能, X5045 有三種可編程看門狗 周期,上電和 VCC 低于檢測門限時,輸出復(fù)位信號, X5045 輸出復(fù)位高第四章 系統(tǒng)調(diào)試運(yùn)行及問題分析 10 電平有效,為了復(fù)位更加可靠,其復(fù)位輸出端外接一個 10K 的上拉電阻,并與AT89S51 的復(fù)位端相連??撮T狗能在電源上電、掉電期間產(chǎn)生一個復(fù)位信號。該芯片還帶有一個 秒的看門狗定時器可用來監(jiān)控單片機(jī)的工作。如果在 秒內(nèi)未檢測到其工作,出現(xiàn)故障,內(nèi)部定時器將使看門狗 WD1 處于低電平狀態(tài),為系統(tǒng)提供保護(hù),避免死機(jī)、程序跑飛或進(jìn)入死循環(huán)等意外的發(fā)生。 第三章 控制模塊軟件設(shè)計 11 第三章 控制模塊軟件設(shè)計 系統(tǒng)監(jiān)控主程序模塊 監(jiān)控程序按模塊分為監(jiān)控主程序和命令處 理子程序叫 。 監(jiān)控主程序的基本任務(wù)是調(diào)用子程序,一個主程序可以調(diào)用多個子程序,對于 51 系列單片機(jī),系統(tǒng)資源有限,主程序通常是一個無限循環(huán)的過程,即是一個反復(fù)調(diào)用子程序的過程。子程序主要分為中斷子程序和功能子程序,它們之間可以互相嵌套和調(diào)用,即中斷子程序可以調(diào)用功能子程序。在應(yīng)用軟件的設(shè)計中,盡可能各個功能模塊寫成子程序的形式,并通過主程序調(diào)用。而命令處理子程序完成各種命令所規(guī)定的具體操作,它按各種命令再分為不同的子程序模塊,它的編程方法與功能要求及系統(tǒng)應(yīng)用密切相關(guān)。 監(jiān)控主程序是整個控制系統(tǒng)的核心部分,其它外 圍模塊一般都需經(jīng)過監(jiān)控模塊實現(xiàn)其在控制系統(tǒng)中的作用。監(jiān)控主程序接受和分析來自鍵盤的命令,進(jìn)而把控制轉(zhuǎn)到相應(yīng)的處理子程序的入口,起引導(dǎo)作用。 本系統(tǒng)監(jiān)控主程序模塊主要包括對系統(tǒng)外圍器件輸入、輸出參數(shù)的初始化自檢,看門狗的激活,多任務(wù)操作模塊的調(diào)用 (系統(tǒng)中的信號采集處理、時鐘管理、按鍵 接收處理、驅(qū)動顯示模塊 ),實時中斷處理等。除初始化和自檢外,監(jiān)控主程序一般總是把其余部分連接起來構(gòu)成一個無限循環(huán),系統(tǒng)所有功能都在這一循環(huán)中周而復(fù)始的有選擇的執(zhí)行 系統(tǒng)自檢初始化 系統(tǒng)自檢初始化是保證整個控制系統(tǒng)能夠正常 運(yùn)行的重要條件,系統(tǒng)加電復(fù)位后,直接進(jìn)入自檢初始化程序,完成系統(tǒng)的自檢及初始化。初始化過程主要是對一些控制寄存器 (如中斷控制 )、數(shù)據(jù)區(qū)和外部芯片 (如時鐘芯片 DS1302 等 )進(jìn)行初始參數(shù)設(shè)置和定義。本系統(tǒng)中的自檢初始化主要指各接口芯片的檢測、芯片內(nèi)部設(shè)定參數(shù)的初始化及系統(tǒng)內(nèi)部寄存器的初始化。 各接口芯片的檢測主要檢測各芯片是否已處于準(zhǔn)備工作的就緒狀態(tài),有無硬件故障等,如檢測各位 LED 是否正常顯示系統(tǒng)設(shè)置開機(jī)時的界面,檢測硬件時鐘 DS1302 是處于更換芯片后初次使用為起振狀態(tài),還是處于備用電源供電振蕩保持狀態(tài), 即檢測系統(tǒng)中控制時間表的有效性,檢測熱釋紅外傳感器輸出信號是否正常體現(xiàn)人體存在的信息,檢測光采集電路輸出的信號等。若時鐘芯片處于啟動狀態(tài),則需要對其進(jìn)行初始化并啟動實時時鐘。 系統(tǒng)內(nèi)部寄存器初始化主要是指在數(shù)據(jù)緩沖區(qū)內(nèi),各用戶定義的數(shù)據(jù)變量的初始化賦值及部分特殊功能寄存器 SFR 的復(fù)位初始化,單片機(jī)復(fù)位后,程序計數(shù)器 PC 指向程序存儲器的入口地址。 000 單元,程序狀態(tài)字寄存器 PSW 清零,片內(nèi)存儲器選擇工作寄存器,用戶標(biāo)志位 F0 為 0 狀態(tài),堆棧指針 SP 指向 07H,其它定時器、中斷允許寄存器 IE,累加器 ACC 等皆為 00H.。 第四章 系統(tǒng)調(diào)試運(yùn)行及問題分析 12 定時中斷處理設(shè)計 定時中斷是利用單片機(jī)內(nèi)部的定時器定時,時間到或計數(shù)值已滿引起的中斷,內(nèi)部定時器的計數(shù)器可以對內(nèi)部時鐘或從外部引線 T0 和 T1 輸入的外部脈沖進(jìn)行計數(shù)。計數(shù)器的溢出信號作為中斷請求信號,去置位定時器溢出標(biāo)志位,向單片機(jī)的 CPU 申請中斷。 定時中斷為周期性中斷,每隔一定的時間會中斷一次。本系統(tǒng)中設(shè)定的定時中斷主要用來構(gòu)造多任務(wù)操作系統(tǒng),在系統(tǒng)響應(yīng)中斷后,無需對斷點實施現(xiàn)場保護(hù),可直接進(jìn)行多任務(wù)時間的劃分工作,使相應(yīng)的操作任務(wù)進(jìn)入就緒狀態(tài),即該中斷可以啟動有關(guān)的任務(wù)操作。該定時中 斷處理程序框圖如圖 31 所示: 圖 31 定時中斷處理程序框圖 本系統(tǒng)還采用了外部中斷,此外部中斷主要用來判斷是否有外來信號輸入,若有,就采集下來并加以處理;若無,則返回到主循環(huán)。 數(shù)據(jù)采集模塊 本控制系統(tǒng)中的數(shù)據(jù)采集對象為環(huán)境光信號及人體存在信號,在程序設(shè)計中對這兩個數(shù)據(jù)的采集放置在多任務(wù)模塊中實施定時采集。 人體存在傳感器的優(yōu)缺點 人體存在傳感器具有本身不發(fā)出任何類型的輻射,器件功耗很小,隱蔽性好,價格低廉的優(yōu)點。而缺點是容易受各種熱源、光源干擾。由于紅外穿透力差,因此人體的紅外輻 射容易被遮擋,不易被探頭接收;易受射頻輻射的干擾;當(dāng)環(huán)境溫度和人體溫度接近時,探測和靈敏度就會明顯下降,甚至造成短時失靈。試驗也證明了這點,如果人體存在卻一定時間內(nèi)沒有活動,人體傳感器則認(rèn)為沒有人體存在。為避免這種現(xiàn)象的出現(xiàn),本系統(tǒng)軟件程序中設(shè)計為有人體存在狀態(tài)后間隔 1 分鐘或更長的時間來對人體存在參數(shù)信號的采集。 數(shù)據(jù)采集軟件的實現(xiàn) 本系統(tǒng)考慮到環(huán)境光足夠亮?xí)r,無論是否有人體存在都不開燈;而環(huán)境光不夠亮?xí)r,有人體存在才開燈,無人體存在則不開燈。本系統(tǒng)邏輯定義為:環(huán)境光亮?xí)r為邏輯“ 0(符合光采集電 路輸出信號狀態(tài) ),暗時為“ 1,人體存在為“ 1,人體不存在為“ 0,開燈為“ 1”,關(guān)燈為“ 0,那么環(huán)境光與人體存在可以用以第三章 控制模塊軟件設(shè)計 13 下的邏輯關(guān)系表來表示,如表所示 : 表 環(huán)境光與人體存在邏輯關(guān)系 環(huán)境光參數(shù) 人體存在參數(shù) 教室燈狀態(tài) 0 0 0 1 0 0 0 1 0 1 1 1 上表數(shù)據(jù)表明可將環(huán)境光參數(shù)與人體存在參數(shù)進(jìn)行與操作,又由于繼電器是低電平驅(qū)動,所以要將采集處理后的信號進(jìn)行非操作,才可以驅(qū)動繼電器工作,即可得到教室燈的狀態(tài)。 時鐘模塊 在系統(tǒng)啟動自檢初始化時,首先會對時鐘芯 片 DS1302 的運(yùn)行狀態(tài)進(jìn)行判斷,當(dāng)檢測到 DS1302 處于啟動狀態(tài)時才對其進(jìn)行初始化,啟動時鐘。實時時鐘芯片DS1302 的初始化及其讀寫程序設(shè)計的關(guān)鍵是要遵循其時序要求。 數(shù)據(jù)輸入輸出 在對 DS1302 進(jìn)行各種操作之前,必須先對其初始化,即需要把復(fù)位輸入 RST端置為高電平,如果 RST 輸入為低電平,那么所有的數(shù)據(jù)傳送中止,且 I/O 引腳變?yōu)楦咦杩範(fàn)顟B(tài)。在數(shù)據(jù)讀 /寫完后, RST 端應(yīng)置成低電平,以防止外部干擾對DS1302 內(nèi)部時鐘的影響。 同時,為了防止復(fù)位輸入端受到外部的干擾,要求上電時,在主電 源引腳Vcc2≥ 之前, RST 必須為邏輯 0。無論是讀操作還是寫操作,都必須在開頭的 8 個時鐘周期內(nèi)把提供地址和命令信息的 8 位數(shù)據(jù)裝入到 DS1302 的移位寄存器中。地址 /命令信息用于指明 40 個寄存器中的哪個進(jìn)行何種操作。數(shù)據(jù)在 SCLK的上升沿串行輸入,在開始的 8 個時鐘周期把命令字裝入移位寄存器之后,若跟隨的是寫命令字節(jié),則在下 8 個 SCLK 周期的上升沿輸入數(shù)據(jù)字節(jié),若跟隨在讀命令字節(jié)的 8 個 SCLK 周期之后,在下 8 個 SCLK 周期的下降沿輸出數(shù)據(jù)字節(jié)。程序流程如圖 33 所示: 第四章 系統(tǒng)調(diào)試運(yùn)行及問題分析 14 圖 33數(shù)據(jù)輸入輸出 流程圖 時鐘程序設(shè)計 驅(qū)動程序 //寄存器宏定義 define WRITE_SECOND 0x80 define WRITE_MINUTE 0x82 define WRITE_HOUR 0x84 define READ_SECOND 0x81 define READ_MINUTE 0x83 define READ_HOUR 0x85 define WRITE_PROTECT 0x8E //位尋址寄存器定義 sbit ACC_7 = ACC^7; //管腳定義 sbit SCLK = P3^5; // DS1302 時鐘信號 7 腳 sbit DIO= P3^6; // DS1302 數(shù)據(jù)信號 6 腳 第三章 控制模塊軟件設(shè)計 15 sbit CE = P3^7; // DS1302 片選 5 腳 //地址、數(shù)據(jù)發(fā)送子程序 void Write1302 ( unsigned char addr, dat ) { unsigned char i, temp; CE=0; //CE 引腳為低 電平 ,數(shù)據(jù)傳送中止 SCLK=0; //清零時鐘總線 CE = 1; //CE 引腳為高 電 平 ,邏輯控制有效 //發(fā)送地址 for ( i=8; i0; i ) //循環(huán) 8 次移位 { SCLK = 0; temp = addr; DIO = (bit)(tempamp。0x01); //每次傳輸?shù)妥止?jié) addr = 1; //右移一位 SCLK = 1; } //發(fā)送數(shù)據(jù) for ( i=8; i0; i ) { SCLK = 0; temp = dat; DIO = (bit)(tempamp。0x01); dat = 1; SCLK
點擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1