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

正文內(nèi)容

基于mcs-51單片機的電梯控制系統(tǒng)設(shè)計-資料下載頁

2024-12-06 01:21本頁面

【導(dǎo)讀】檢測當(dāng)前是否是所要到達的樓層。降和運行時間,還有轎廂的開關(guān)等。在轎廂的內(nèi)部和外部都設(shè)置樓層選擇按鍵,控制電梯。電梯控制的基本功能[2]。

  

【正文】 XTAL1:振蕩器反相放大器的及內(nèi)部時鐘發(fā)生器的輸入端。 XIAL2:振蕩器反相放大器的輸出端 [6]。 SST89E516RD的引腳如圖 31所示。 圖 314 SST89E516RD 單片機引腳 啟停檢測信號及開、關(guān)門控信號 啟停檢測信號是檢測轎廂運行時所在井道中的位置, 由掃描電路輸入到主機,決定何時發(fā)送減速信號、平層停車信號、層站顯示信號,以及是否啟動超程保護信號等。層位檢測器一般由安裝在導(dǎo)軌對應(yīng)層位上的干黃管磁控開關(guān)和傳感器等構(gòu)成,當(dāng)表面裝有磁鐵的小轎廂經(jīng)過時,干黃管吸合,通過傳感器發(fā)送層位信號至掃描電路。開、關(guān)門控信號,在正常情況下,當(dāng)轎廂平層停車后,系統(tǒng)發(fā)出開門信號,控制門機系統(tǒng)使廳,轎門逐漸打開,當(dāng)完全打開后發(fā)出開門到位信號,系統(tǒng)關(guān)閉門機。當(dāng)乘客在轎廂按下關(guān)門按鈕后,系統(tǒng)發(fā)出關(guān)門信號,廳,轎門逐漸閉合,完全閉合后發(fā)出關(guān)門到位信號,系統(tǒng)關(guān)閉門機。若 30 秒內(nèi)無關(guān)門信號 ,則系統(tǒng)自動關(guān)門。當(dāng)門系統(tǒng)故障情況下,若系統(tǒng)在發(fā)出開,關(guān)門信號 30秒后未收到門到位信號,則重新發(fā)出開,關(guān)門信號,若仍無效,則認(rèn)定門系統(tǒng)發(fā)生故障,發(fā)出報警信號并顯示故障代碼 [14]。 基于 MSC51 單片機的電梯控制系統(tǒng)設(shè)計 24 電梯內(nèi)部按鍵電路如圖 315 所示 圖 315 電梯轎廂內(nèi)部按鈕 吉林化工學(xué)院畢業(yè)設(shè)計說明書 25 第 4 章 系統(tǒng)軟件設(shè)計 系統(tǒng)的軟件設(shè)計實現(xiàn) 系統(tǒng)程序控制流程設(shè)計 圖 41 自動運行程序流程 系統(tǒng)軟件由電梯控制系統(tǒng)主程序、自動開關(guān)門子程序、自動運行子程序。電梯控制系統(tǒng)主程序結(jié)構(gòu)如圖 43,主要完成轎箱的運行、狀態(tài)信號的檢測和過程信 號的判斷,基于 MSC51 單片機的電梯控制系統(tǒng)設(shè)計 26 是軟件的核心部分;自動開關(guān)門子程序流程如圖 42,用來實現(xiàn)開關(guān)門信號的檢測、驅(qū)動和報警;電梯自動運行流程如 圖 41,主要完成對電梯運行過程的自動控制,工作時反復(fù)檢測順呼信號,判斷電梯是否有定向截車服務(wù),根據(jù)邏輯判斷結(jié)果,決定電梯啟動、加速、運行、減速及平層制動等動作時間;信號處理流程通過對鍵盤掃描,完成對各種鍵值的登記、保存和判別,設(shè)置相應(yīng)的反饋信號;異常處理流程和中斷處理流程,主要是將安全回路檢測出的各類故障信號與掃描電路產(chǎn)生的實時控制信號,通過中斷服務(wù)方式將數(shù)據(jù)傳送給 CPU,保證電梯運行的穩(wěn)定 性。上述所有軟件均采用模塊化設(shè)計思想,根據(jù)不同的功能設(shè)計成不同的軟件模塊,主流程與子模塊、以及各子模塊之間通過程序調(diào)用方式相互融合,使設(shè)計出的整個程序,結(jié)構(gòu)簡單,功能分明,修改和維護方便。 圖 42 開關(guān)門子程序流程 電梯控制基本問題:要對電梯控制進行建模,必須知道電梯控制的基本任務(wù)是什么,在 M層建筑物內(nèi)安裝 l部電梯,電梯控制是指如下的邏輯控制: ( 1)電梯有一些按鈕,每個按鈕對應(yīng) 1個樓層。按下按鈕后,按鈕燈亮,并指出電梯開往的相應(yīng)樓層。電梯到達該樓層后按鈕燈熄滅。 吉林化工學(xué)院畢業(yè)設(shè)計說明書 27 ( 2)除底層和頂層只有 1個按鈕外 。每個樓層有 2個按鈕,分別指上樓和下樓請求。按下按鈕后燈亮; 如果電梯到達該樓層則按鈕燈滅。如遇到有沖突請求。決定服務(wù)優(yōu)先次序的算法井盡量減少請求等待的時間。 ( 3)當(dāng)沒有服務(wù)請求馴、電梯等待在最后一個目的層,電梯門關(guān)閉。 ( 4)系統(tǒng)以事件驅(qū)動療式響應(yīng)電梯內(nèi)部對到達樓層的要求。并按照電梯運動方向依此完成這些要求。 ( 5)電梯有一緊急按訊。按下后向管理人員發(fā)出報警信號,然后電梯被置為不可用狀態(tài),并且有取消“不可用”狀態(tài)的機制。 系統(tǒng)程序控制實現(xiàn) 整個硬件通過 SST89E516RD 單片機控制外圍芯 片實現(xiàn)要求的功能。單片機外接 12M晶振。通過 、 、 EEPROM X25045相連,由 X25045完成預(yù)置值存儲、電壓檢測、開機復(fù)位和看門狗功能。 接在 、 ,其公共端接地,低電平有效。 , ,地點平是“自動”。 “預(yù)置”,高電平是“運行”。 行程開關(guān) [17]。 針對這樣的單片機資源配置,利用 C51 編程語言進行控 制軟件開發(fā),共分成初始化、讀寫 EEP2ROM、中斷處理、自動運行、手動運行 (預(yù)置 ) 以及主程序等模塊。一個值得重視的問題是中斷服務(wù)程序的設(shè)計。 C51 編譯器支持在 C 源程序中直接開發(fā)單片機的中斷程序,因此減輕了用匯編語言開發(fā)中斷程序的煩瑣過程。中斷函數(shù)的一般形式為: void 函數(shù)名() interrupt m using n 其中 , m 為中斷號,為 0~ 31 的常整數(shù),不允許使用表達式。在 51 系列單片機中: 0 對應(yīng)外部中斷 0, 1 對應(yīng)片內(nèi)定時器 0 中斷, 2 對應(yīng)外部中斷 1, 3 對應(yīng)片內(nèi)定時器 1 中斷, 4 對應(yīng)片內(nèi)串行口中斷,而 n 是一個 0~ 3 的常整數(shù) ,用于寄存器組的切換。 另外 ,考慮到 X25045 與 CPU 的 I/ O 口是串行相接,對其讀寫采用匯編語言編程比較方便。在 C51 程序中,將其作為外部函數(shù)定義,再一起進行編譯和連接。根據(jù)流程圖和技術(shù)要求,用 C51 語言編寫控制軟件源程序如下 : include stdio. h include reg51. h define uchar unsigned char define uint unsigned int sbit clr = P3^7 。/ *底層復(fù)位 */ 基于 MSC51 單片機的電梯控制系統(tǒng)設(shè)計 28 sbit inchup = P3^0 。 / *手動升 * sbit inchdown = P3^1 。 / *手動降 */ sbit autom = P1^3 。 / *自動 / 手動切換 */ sbit go = P1^2 。 / *預(yù)置 / 起動 */ sbit outup = P1^0 。 /*輸出升 */ sbit outdown = P1^1 。 / *輸出降 */ bit flag ,flag1 。 uchar layer 。 uint cucount = 500 ,precount 。 / *以下 3 行是對匯編語言程序的說明 */ extern byte_write (uint xx ,uint yy) 。/ * 將 yy 值寫入 25045 的第 xx 個字節(jié)* / extern byte_ read(uint yy) 。/ * 讀 25045 中第 yy 個字節(jié)的內(nèi)容 * / extern wrsr_cmd(void) 。/ * 寫 25045 的狀態(tài)寄存器 ,對 25045 初始化 * /? void write25 (uchar wa ,uint wd) {uint wa1 。 wa1 = ( uint ) (wa 1) 。 / * 相當(dāng)于 wa 乘 2* / byte_write (wa1 ,wd) 。 } void counter () interrupt 0 using 2 / * 中斷處理 * / {if (flag = = 1) {cucount + + 。}/ * 當(dāng)前計數(shù)值加 1 * / else {cucount%%。}/ * 當(dāng)前計數(shù)值減 1 * / } void aut run(void) / * 自動運行 * / {if (go = = 0) {outup = 1 。outdown = 1 。 / * 禁輸出 * / layer = ~ P2 amp。0x07 。 / * 取撥盤開關(guān)的值 * / precount = read25 (layer) 。 / * 讀預(yù)置值 * / flag1 = 1 。 do {} while (go = = 0) 。} 吉林化工學(xué)院畢業(yè)設(shè)計說明書 29 if (flag1 = = 1) { if (cucount = = precount) {outup = 1 。outdown = 1 。} else { if (cucount precount) / * 計數(shù)值大于預(yù)置值 * / {outup = 1 。 outdown = 0 。 flag = 0 。} / * 輸出“降 * / else {outdown = 1 。 outup = 0 。 flag = 1 。} / * 輸出“升 * / } } else {outup = 1 。outdown = 1 。} } ? void main (void) { outup = 1 。 outdown = 1 。 flag1 = 0 。 TCON = 0x01 。 / * 外部中斷 0 下降沿觸發(fā) * / IE = 0x81 。 / * 開外部中斷 0 * / wrsrcmd () 。/ * 寫 X25045 狀態(tài)寄存器 * / for ( 。 。) { if (clr = = 0) / * 底層清零 * / {cucount = 500 。} / * 清零 (留余量 ,置 500) * / if (autom = = 0) {aut run () 。} else {manual () 。} 基于 MSC51 單片機的電梯控制系統(tǒng)設(shè)計 30 } } 程序第 2 句中的 reg51. h 頭文件定義了所有 51系列單片機的特殊功能寄存器及中斷。程序讀取撥盤開關(guān)的狀態(tài)時 ,先將 P2 口按位取反,將其與數(shù)值 7 (二進制為 00000111)進行“與”運算,屏蔽了不相關(guān)的高 5 位,而運算的結(jié)果正好反映了剩下的* 位所代表的樓層 [18]。 程序中用到了 3 個與 EEPROM X25045 相關(guān)的函數(shù),分別用于讀字節(jié),寫字節(jié)和寫X25045 的狀態(tài)寄存字。它們均是用 ASM 匯編語言編成的。舉寫字節(jié)程序為例: ** PUBL IC byte_write 。說明公共模塊 ** WRITEP SEGMENT CODE ** CS_045 BIT P1. 5 。 SI_045 BIT P1. 7 。 SCK_045 BIT P1. 6 。 SO_045 BIT P1. 4 。 ** RSEG WRITEP byte_write : ACALL WREN_CMD 。 允許寫 clr SCK_045 。 X25045 的 SCK 置低 clr CS_045 。 X25045 的 CS 置低 mov A , WRITE INST 。 mov B , R6 mov C , B. 0 mov ACC. 3 , C ACALL outbyt 。 向 X25045 發(fā)控制字 mov A , R7 ACALL outbyt 。 向 X25045 發(fā)地址 mov A ,R4 吉林化工學(xué)院畢業(yè)設(shè)計說明書 31 ACALL outbyt 。 向 X25045 發(fā)高 8 位 mov A ,R5 ACALL outbyt 。 向 X25045 發(fā)低 8 位 clr SCK_045 。 X25045 的 SCK 置低 setb CS_045 。 X25045 的 CS 置高 ACALL wip_poll 。 Ret C51 中通過語句 byte_write (wa1 ,wd) 調(diào)用匯編程序,采用 CPU 寄存器傳遞參數(shù)。其中 wa1 為樓層數(shù)乘 2,單字節(jié),調(diào)用過程中存于 R7 寄存器, wd 為計數(shù)值,雙字節(jié),存于 R4 、 R5 寄存器。程序中被調(diào)用的 WREN_CMD, outbyt, wippoll 均為另用匯編語言編成的子程序,此處略。對以上程序進行編譯和連接再寫入單片機,應(yīng)用于生產(chǎn)實際,效果令人滿意。 軟件流程圖及編譯語言 控制系統(tǒng)流程如圖 43 所示: 圖 43 控制系統(tǒng)流程 本設(shè)計中對芯片 89C51進行編程利用 C語言作為開發(fā)語言,整個程序以 C51語言為基于 MSC51 單片機的電梯控制系統(tǒng)設(shè)計 32 主,輔以匯編語言編程 EEPROM處理程序?qū)崿F(xiàn)對電梯啟停、速度、升降和 運行時間,還有轎廂的開關(guān)等。利用傳統(tǒng)的匯編語言開發(fā)單片系統(tǒng)雖然具有代碼緊湊,實時性好等優(yōu)點,但缺點也十分突出:程序可讀性、可移植性差,不宜進行復(fù)雜的邏輯數(shù)學(xué)運算,大程序的軟件開發(fā)周期長等。而 C51 則是一種以 C語言為基礎(chǔ)的針對 51 系列單片機的軟件開發(fā)工具,為用戶利用 C語言來開發(fā)單片機提供了支撐環(huán)境 [15]。 為了對各樓層的預(yù)置值進行斷電保持,系統(tǒng)通過 P1. 4 、 P1. 5 、 P1. 6 和 P1. 7 外接了 EEPROM X25045,此外 X25045 還有電壓監(jiān)測、開機復(fù)位和看門狗功能。利用撥盤開關(guān)控制 P2. 0 、 P2. 1 和 P2. 2 的電位,可以用來選樓層。計數(shù)脈沖進入單片機的 P3. 2 腳,該管腳是外部中斷 0 的輸入腳,一旦有脈沖進入,就會觸發(fā)單片機的中斷,調(diào)用中斷處理程序進行加減計數(shù)。單片機的剩余管腳用于其它開關(guān)量的輸入輸出,涉及到控制輸出,手動自動切換,預(yù)置,底層計數(shù)清零等功能。 匯編語言介紹 為了克服機器語言的缺點,用英文字條來代替機器語言,這些英文字符被稱為助記符,用助記符表示的指令稱為符號語言或匯編語言。 單片機不能直接執(zhí)行匯編語言程序,需將匯編語言程序轉(zhuǎn)換成為二進制代碼表示的機 器語言程序,單片機才能識別和執(zhí)行,通常把這一轉(zhuǎn)換(翻譯)工作稱為“匯編”。匯編可由專門的程序來完成,這種程序稱為匯編程序。經(jīng)匯編程序“匯編(翻譯)”得到的機器語言程序稱為目標(biāo)程序,原來的匯編語言程序稱為源程序。匯編語言的特點如下: ( 1)匯編語言是面向機器的語言,程序設(shè)計人員必須對 MCS51 單片機的硬件有相當(dāng)深入的了解。 ( 2)助記符指令和機器指令一一對應(yīng),所以用匯編語言編寫的程序效率高,占用的存儲空間小,運行速度快,因此用匯編語言能編寫出最優(yōu)化的程序。 ( 3)匯編語言程序能直接管理和控制硬件設(shè)備(功能部 件),它能處理中斷,也能直接訪問存儲器及 I/O 接口電路。 但是,匯編語言和機器語言一樣,都脫離不開具體機器的硬件,因此,這兩種語言均是面向機器的語言,缺乏通用性。 C 語言介紹 C 語言是國際上廣泛流行的計算機高級語言,既可用來寫系統(tǒng)軟件,也可用來寫應(yīng)用軟件。 C 語言功能豐富,表達能力強,使用靈活方便,應(yīng)用面廣,目標(biāo)程序效率高,可移植性好,既具有高級語言的優(yōu)點,又具有低級語言的許多特點。因此, C 語言特別適合于編寫系統(tǒng)軟件。 C語言的特點如下: 吉林化工學(xué)院畢業(yè)設(shè)計說明書 33 ( 1)語言簡潔、緊湊,使用方便、靈活。 C 語言一共只有 32 個關(guān)鍵字, 9 種控制語句,程序書寫形式自由,主要用小寫字母表示,壓縮了一切不必要的成分。 ( 2)運算符豐富。 C 的運算符包含的范圍很廣泛,共有 34 種運算符。 C把括號、賦值、強制類型轉(zhuǎn)換等都作為運算符處理。從而使 C 的運算類型極其豐富,表達式類型多樣化,靈活使用各種運算符可以實現(xiàn)在其它高級語言中難以實現(xiàn)的運算。 ( 3)數(shù)據(jù)結(jié)構(gòu)豐富,具有現(xiàn)代化語言的各種數(shù)據(jù)結(jié)構(gòu)。 C 的數(shù)據(jù)類型有:整型、實型、字符型、數(shù)組類型、指針類型、結(jié)構(gòu)體類型、共用體類型等。能用來實現(xiàn)各種復(fù)雜的數(shù)據(jù)結(jié)構(gòu)(如鏈表、樹、棧等)的運算。尤其是指針類型 數(shù)據(jù),使用起來比匯編語言更為靈活、多樣。 ( 4)具有結(jié)構(gòu)化的控制語句(如 if...else 語句、 whi1e 語句、 do? whi1e 語句、for 語句)。 用函數(shù)作為程序的模塊單位,便于實現(xiàn)程序的模塊化。 C是良好的結(jié)構(gòu)化理想語言,符合現(xiàn)代編程風(fēng)格要求。 ( 5)語法限制不大嚴(yán)格,程序設(shè)計自由度大。 例如,對數(shù)組下標(biāo)越界不作檢查,由程序編寫者自己保證程序的正確。對變量的類型使用比較靈活,例如,整型量與字符型數(shù)據(jù)以及邏輯型數(shù)據(jù)可以通用,一般的高級語言語法檢查比較嚴(yán),能檢查出幾乎所有的語法錯誤。而 C 語言允許程序編寫者有較 大的自由度,因此放寬了語法檢查。程序員應(yīng)當(dāng)仔細(xì)檢查程序,保證其正確,而不要過分依賴 C 編譯程序去查錯?!跋拗啤迸c“靈活”是一對矛盾。限制嚴(yán)格,就失去靈活性;而強調(diào)靈活,就必然放松限制。一個不熟練的人員,編一個正確的 C 程序可能會比編一個其它高級語言程序難一些。也就是說,對用 C語言的人,要求對程序設(shè)計更熟練一些。 ( 6) C 語
點擊復(fù)制文檔內(nèi)容
研究報告相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1