8×8-LED點陣屏模仿電梯運行的樓層顯示-本科課程畢業(yè)設計_第1頁
8×8-LED點陣屏模仿電梯運行的樓層顯示-本科課程畢業(yè)設計_第2頁
8×8-LED點陣屏模仿電梯運行的樓層顯示-本科課程畢業(yè)設計_第3頁
8×8-LED點陣屏模仿電梯運行的樓層顯示-本科課程畢業(yè)設計_第4頁
8×8-LED點陣屏模仿電梯運行的樓層顯示-本科課程畢業(yè)設計_第5頁
已閱讀5頁,還剩21頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領

文檔簡介

第第頁本科課程設計(論文)8×8LED點陣屏模仿電梯運行的樓層顯示學院信息工程學院專業(yè)測控技術(shù)與儀器(光機電一體化方向)年級班別20級(1)班學號學生姓名指導教師2014摘要伴隨著我國現(xiàn)代化程度的提高,電梯成為高層建筑中的重要交通工具,它是高層建筑中安全、可靠、垂直上下的運載工具,對改善勞動條件、減輕勞動強度起到很大的作用。同時也給人們的生活帶來了便利,為我國現(xiàn)代化建設的加速發(fā)展提供了強大的保障。電梯的應用范圍很廣,可用于賓館、飯店、辦公大樓、商場、娛樂場所,倉庫以及居民住宅大樓等。因此,在現(xiàn)代社會中電梯已成為人類必不可少的垂直運輸交通工具。利用單片機控制電梯有成本低,通用性強,靈活性大以及易于實現(xiàn)復雜控制等優(yōu)點。本課程設計采用了一種采用單片AT89C51芯片進行電梯控制系統(tǒng)的設計方法,主要闡述如何使用單片機進行編程來實現(xiàn)電子設計的方法,利用單片機編程實現(xiàn)功能,簡潔而又多變的設計方法,縮短了研發(fā)周期,同時使電梯控制系統(tǒng)體積更小功能更強大。本設計實現(xiàn)了電梯控制系統(tǒng)所需的一些基本功能,能通過數(shù)字按鍵選擇樓層,點陣顯示實時樓層數(shù)。原理圖采用proteus專業(yè)軟件來設計。關(guān)鍵詞:單片機;電梯;系統(tǒng);控制;C語言目錄TOC\o"1-4"\h\u12886摘要 1326571任務提出與方案論證 3146771.1設計任務及要求 3146771.2課題設計內(nèi)容 3146771.3方案論證 379022總體設計 441512.1設計原理及方法 417913硬件設計元器件選擇 5287023.1AT89C51單片機 56513.274LS245 7326003.3LED點陣 817914模塊設計 9287024.1單片機最小系統(tǒng)模塊 96514.2開關(guān)控制模塊 10326004.3顯示模塊 11216004.4聲光模塊 11317294.5按鍵中斷檢測模塊 12317294.6電源電路模塊 12317294.7電路總圖 1317915軟件設計 14139436總結(jié) 1517319附錄A程序清單 1617319附錄B元器件目錄表 2317319參考文獻 241任務提出與方案論證1.1課程設計要求設計采用單片機控制8*8LED點陣屏來模仿電梯運行的樓層顯示裝置。單片機的Pl口的8只引腳接有8只按鍵開關(guān)Kl~K8,這8只按鍵開關(guān)K1~K8分別代表l樓~8樓。如果某一樓層的按鍵按下,單片機控制的點陣屏將從當前位置向上或向下平滑滾動顯示到指定樓層的位置。在上述功能的基礎上,向電路中添加LED指示燈和蜂嗚器,使系統(tǒng)可以同時識別依次按下的多個按鍵,在到達指定位置后蜂鳴器發(fā)出短暫聲音且LED閃爍片刻,數(shù)字繼續(xù)滾動顯示。如果在待去的樓層的數(shù)字中,有的在當前運行的反方向,則數(shù)字先在當前方向運行完畢后,再依次按順序前往反方向的數(shù)字位置。1.2課題設計內(nèi)容本課題的主要任務是完成一個電梯系統(tǒng)的智能控制模塊,即根據(jù)每個樓層不同顧客的按鍵要求,讓電梯做出合理的判斷,正確高效的指導電梯完成各項載客任務。設計基于單片機的電梯智能控制系統(tǒng)的硬件電路與軟件程序,給出硬件系統(tǒng)的電路原理圖,對硬件電路與軟件分別進行調(diào)試,得到調(diào)試成功的基于單片機的電梯智能控制系統(tǒng)。根據(jù)此任務,本課題需要研究的內(nèi)容有:1、根據(jù)系統(tǒng)的技術(shù)要求,進行系統(tǒng)硬件的總體方案設計;2、學習單片機的相關(guān)知識,并且加以運用;3、選擇適當?shù)男酒?,并對其?nèi)部協(xié)議有所掌握,便于應用。4、研究單片機C語言編程,并且規(guī)定電梯的工作規(guī)則,用C語言加以實現(xiàn);5、對軟件和硬件進行調(diào)試,讓其協(xié)調(diào)工作,完成指定任務。1.3方案論證本次設計的基本思想是采用AT89C51單片機作為核心,利用其豐富的I/O接口與外圍電路配合進行控制。按題目要求采用8*8點陣來實時顯示電梯所在樓層。由于是8層樓,采用8個獨立鍵盤。當電梯到達目的樓層時,LED燈亮起,蜂鳴器響,此時即可進、出乘客,然后電梯根據(jù)乘客的選擇判斷去哪一層,繼續(xù)運行。電梯的正常運行通過單片機的控制來實現(xiàn)。2總體設計2.1設計原理及方法根據(jù)層次化設計理論,該設計問題自頂向下可分為單片機最小系統(tǒng)模塊、顯示模塊、開關(guān)控制模塊、電機驅(qū)動模塊、穩(wěn)壓模塊,其系統(tǒng)框圖如圖2.1所示。圖2.1電梯控制系統(tǒng)框圖本次設計是采用鍵盤控制實現(xiàn)上下到指定樓層,通過穩(wěn)壓模塊使電機轉(zhuǎn)動帶動電梯箱上下運動,到達指定樓層。顯示模塊是顯示此時的樓層以及要求到達的樓層。電梯初始顯示0。單片機的Pl口的8只引腳接有8只按鍵開關(guān)K1~K8,這8只按鍵開關(guān)K1~K8分別代表l樓~8樓。如果按下代表某一樓層的按鍵,單片機控制的點陣屏將從當前位置向上或向下平滑滾動顯示到指定樓層的位置。在上述功能的基礎上,向電路中添加LED指示燈和蜂嗚器,使系統(tǒng)可以同時識別依次按下的多個按鍵,在到達指定位置后蜂鳴器發(fā)出短暫聲音且LED閃爍片刻,數(shù)字繼續(xù)滾動顯示。例如,當前位置在l層時,用戶依次按下6、5時,則數(shù)字分別向上滾動到5、6時暫停且LED閃爍片刻,同時蜂鳴器發(fā)出提示音。如果在待去的樓層的數(shù)字中,有的在當前運行的反方向,則數(shù)字先在當前方向運行完畢后,再依次按順序前往反方向的數(shù)字位置。用P2口做8*8點陣的行選通,Pl口完成按鍵的讀取及確認。3.硬件電路器件選擇3.1AT89C51AT89C51是一個低電壓,高性能CMOS8位單片機帶有4K字節(jié)的可反復擦寫的程序存儲器(PENROM)。和128字節(jié)的存取數(shù)據(jù)存儲器(RAM),這種器件采用ATMEL公司的高密度、不容易丟失存儲技術(shù)生產(chǎn),并且能夠與MCS-51系列的單片機兼容。片內(nèi)含有8位中央處理器和閃爍存儲單元,有較強的功能的AT89C51單片機能夠被應用到控制領域中。本設計采用AT89C51,它提供以下的功能標準:4K字節(jié)閃爍存儲器,128字節(jié)隨機存取數(shù)據(jù)存儲器,32個I/O口,2個16位定時/計數(shù)器,1個5向量兩級中斷結(jié)構(gòu),1個串行通信口,片內(nèi)震蕩器和時鐘電路。另外,AT89C51還可以進行0HZ的靜態(tài)邏輯操作,并支持兩種軟件的節(jié)電模式。閑散方式停止中央處理器的工作,能夠允許隨機存取數(shù)據(jù)存儲器、定時/計數(shù)器、串行通信口及中斷系統(tǒng)繼續(xù)工作。掉電方式保存隨機存取數(shù)據(jù)存儲器中的內(nèi)容,但震蕩器停止工作并禁止其它所有部件的工作直到下一個復位。引腳圖如圖2-7所示。圖3.1AT89C51引腳VCC:電源電壓GND:地P0口:P0口是一組8位漏極開路雙向I/O口,即地址/數(shù)據(jù)總線復用口。作為輸出口時,每一個管腳都能夠驅(qū)動8個TTL電路。當“1”被寫入P0口時,每個管腳都能夠作為高阻抗輸入端。P0口還能夠在訪問外部數(shù)據(jù)存儲器或程序存儲器時,轉(zhuǎn)換地址和數(shù)據(jù)總線復用,并在這時激活內(nèi)部的上拉電阻。P0口在閃爍編程時,P0P1口:P1口一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時可作為輸入口。因為內(nèi)部有電阻,某個引腳被外部信號拉低時輸出一個電流。閃爍編程時和程序校驗時,P1口接收低8P2口:P2口是一個內(nèi)部帶有上拉電阻的8位雙向I/O口,P2的輸出緩沖級可驅(qū)動4個TTL電路。對端口寫“1”,通過內(nèi)部的電阻把端口拉到高電平,此時,可作為輸入口。因為內(nèi)部有電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器時,P2口線上的內(nèi)容在整個運行期間不變。閃爍編程或校驗時,P2P3口:P3口是一組帶有內(nèi)部電阻的8位雙向I/O口,P3口輸出緩沖故可驅(qū)動4個TTL電路。對P3口寫如“1”時,它們被內(nèi)部電阻拉到高電平并可作為輸入端時,被外部拉低的P3口將用電阻輸出電流。P3口除了作為一般的I/O端口引腳第二功能P3.0RXDP3.1TXDP3.2INT0P3.3INT1P3.4T0P3.5T1P3.6WRP3.7RD表2-1P3口還接收一些用于閃爍存儲器編程和程序校驗的控制信號。RST:復位輸入。當震蕩器工作時,RET引腳出現(xiàn)兩個機器周期以上的高電平將使單片機復位。ALE/:當訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE以時鐘震蕩頻率的1/16輸出固定的正脈沖信號,因此它可對輸出時鐘或用于定時目的。要注意的是:每當訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖時,閃爍存儲器編程時,這個引腳還用于輸入編程脈沖。如果必要,可對特殊寄存器區(qū)中的8EH單元的D0位置禁止ALE操作。這個位置后只有一條MOVX和MOVC指令ALE才會被應用。此外,這個引腳會微弱拉高,單片機執(zhí)行外部程序時,應設置ALE無效。PSEN:程序儲存允許輸出是外部程序存儲器的讀選通信號,當AT89C51由外部程序存儲器讀取指令時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。在此期間,當訪問外部數(shù)據(jù)存儲器時,這兩次有效的PSEN信號不出現(xiàn)。EA/VPP:外部訪問允許。欲使中央處理器僅訪問外部程序存儲器,EA端必須保持低電平。需要注意的是:如果加密位LBI被編程,復位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平,CPU則執(zhí)行內(nèi)部程序存儲器中的指令。閃爍存儲器編程時,該引腳加上+12V的編程允許電壓VPP,當然這必須是該器件是使用12V編程電壓VPP。XTAL1:片內(nèi)振蕩器反相放大器和時鐘發(fā)生線路的輸入端。使用片內(nèi)振蕩器時,連接外部石英晶體和微調(diào)電容。XTAL2:片內(nèi)振蕩器反相放大器的輸出端。當使用片內(nèi)振蕩器時,外接石英晶體和微調(diào)電容。3.274LS245圖3.274LS24574LS245是我們常用的芯片,用來驅(qū)動LED或者其他的設備,它是8路相同三態(tài)雙向總線收發(fā)器,可雙向傳輸數(shù)據(jù)。74LS245還具有雙向三態(tài)功能,既可以輸出,也可以輸入數(shù)據(jù)。當8051單片機的P0口總線負載達到或超過P0口最大負載能力時,必須接入74LS245等總線驅(qū)動器。

當片選端/CE低電平有效時,DIR=“0”,信號由B向A傳輸;(接收)

DIR=“1”,信號由A向B傳輸;(發(fā)送)當CE為高電平時,A、B均為高組態(tài)。

由于P2口始終輸出地址的高8位,接口時74LS245d三態(tài)控制端1G和2G接地,P2口與驅(qū)動器輸入線對應相連。P0口與74LS245輸入端相連,E端接地,保證數(shù)據(jù)線暢通。8051的/RD和/PSEN相與后接DIR,使得RD且PSEN有效時,74LS245輸入(P0.1←D1),其他時間處于輸出(P013.3.LED點陣圖3.3LED點陣外觀顯示屏是由發(fā)光二極管行列組成的LED點陣模塊組成顯示屏體。本設計中選擇8*8的點陣是由64個發(fā)光二極管按規(guī)律組成的。如圖2-10。圖3.4LED點陣內(nèi)部結(jié)構(gòu)如圖2-8所示的發(fā)光二極管,行接高電平,列接低電平,發(fā)光二極管導通發(fā)光。8X8點陣共需要64個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點上,當對應的某一列置1電平,某一行置0電平,則相應的二極管就亮。4模塊設計4.1單片機最小系統(tǒng)模塊圖4.1單片機最小系統(tǒng)單片機最小系統(tǒng)包括主芯片,復位電路和晶振脈沖產(chǎn)生電路。X1為12MHz晶振,與30Pf電容并聯(lián),產(chǎn)生1us的脈沖信號作為單片機的“心臟”部分。復位電路是開關(guān)與10uf電容并聯(lián)組成的上電自動復位電路,在RST端為高電平時單片機清零,也即開關(guān)按下會產(chǎn)生清零信號。RP1為排阻,作為P0端的上拉電阻,接此原因是P0端口是由OC門組成。U1為數(shù)據(jù)輸入端口,通過電腦編程能將程序通過此接口燒錄入單片機中。8位CPU·4kbytes,程序存儲器(ROM)(52為8K),128bytes的數(shù)據(jù)存儲器(RAM)(52有256bytes的RAM),32條I/O口線·111條指令,大部分為單字節(jié)指令,21個專用寄存器,2個可編程定時/計數(shù)器,5個中斷源,2個優(yōu)先級(52有6個),一個全雙工串行通信口,外部數(shù)據(jù)存儲器尋址空間為64kB,外部程序存儲器尋址空間為64kB,邏輯操作位尋址功能,雙列直插40PinDIP封裝,單一+5V電源供電。CPU:由運算和控制邏輯組成,同時還包括中斷系統(tǒng)和部分外部特殊功能寄存器;RAM:用以存放可以讀寫的數(shù)據(jù),如運算的中間結(jié)果、最終結(jié)果以及欲顯示的數(shù)據(jù);ROM:用以存放程序、一些原始數(shù)據(jù)和表格;I/O口:四個8位并行I/O口,既可用作輸入,也可用作輸出;T/C:兩個定時/記數(shù)器,既可以工作在定時模式,也可以工作在記數(shù)模式;一個全雙工UART(通用異步接收發(fā)送器)的串行I/O口,用于實現(xiàn)單片機之間或單片機與微機之間的串行通信;片內(nèi)振蕩器和時鐘產(chǎn)生電路,石英晶體和微調(diào)電容需要外接。最高振蕩頻率為12M。4.2開關(guān)控制模塊圖4.2開關(guān)控制模塊單片機的Pl口的8只引腳接有8只按鍵開關(guān)K1~K8,這8只按鍵開關(guān)K1~K8分別代表l樓~8樓。如果按下代表某一樓層的按鍵,單片機控制的點陣屏將從當前位置向上或向下平滑滾動顯示到指定樓層的位置,系統(tǒng)檢測按鍵低電平識別依次按下的多個按鍵。4.3顯示模塊圖4.3顯示模塊8X8點陣,它共由64個發(fā)光二極管組成,且每個發(fā)光二極管是放置在行線和列線的交叉點上,當對應的某一行置1電平,某一列置0電平,則相應的二極管就亮;p2進行列掃描,p0輸入數(shù)據(jù).4.4聲光模塊圖4.4P3.0、P3.1口分別控制電路中LED指示燈和蜂嗚器,使系統(tǒng)可以同時識別依次按下的多個按鍵,在到達指定位置后蜂鳴器發(fā)出短暫聲音且LED閃爍片刻,數(shù)字繼續(xù)滾動顯示。4.5按鍵中斷檢測模塊圖4.5按鍵中斷檢測模塊,由于單片機檢測低電平,有8個按鍵需要檢測,采用2個四輸入端與門和一個二輸入端與門搭配,使之達到檢測是否有按鍵按下目的。4.6電源電路模塊電源電路如圖2-6所示。整個系統(tǒng)采用的電源電壓只需+5V電壓,將交流電經(jīng)變壓器變換為12V交流電,再用整流橋得到8.5V左右的直流電,采用不可調(diào)的3端穩(wěn)壓器件LM7805將電源穩(wěn)定在5V直流輸出。圖4.6電源電路4.7電路總圖圖4.7電路總圖5.軟件設計YYNYNNNN開始創(chuàng)建變量,數(shù)組主程序開T0中斷初始化數(shù)組大小排列計數(shù)計滿?進入T0中斷有無按鍵?點陣掃描當前樓層進入外部中斷存鍵值判斷上升下降標志進入T0中斷是否上升?點陣上升掃描是否到達指定樓層?蜂鳴器響,LED閃爍有無上升下降請求?點陣下降掃描YYYY圖5.1電梯智能控制功能實現(xiàn)流程圖詳細程序見附錄。6總結(jié)本課程設計了實現(xiàn)單片機控制下電梯智能控制系統(tǒng)的設計方案。由于條件的限制,沒有做成真正的電梯。但做成的電梯智能控制系統(tǒng)的硬件電路已能演示??梢园凑粘丝偷囊螅瑢⒊丝退偷揭サ哪康膶?。但是,電梯還有很多的擴展的空間并未實現(xiàn),比如電梯自動語音報站系統(tǒng)的設計,樓層監(jiān)控系統(tǒng),節(jié)能設計以及其它更多的服務。設計的核心內(nèi)容就是利用單片機C51的編程來實現(xiàn)控制外圍各電路的運行。通過本次設計,我熟練掌握了程控系統(tǒng)設計的一般步驟,熟悉了編程軟件的用法,并對編程能力起到了一定的提高作用。本系統(tǒng)具有硬件少,結(jié)構(gòu)簡單,容易實現(xiàn),性能穩(wěn)定可靠,成本低等特點。在此次設計中,我們得到以下體會:一、在這次點陣設計的過程讓我進一步熟悉KEIL及Proteus的使用。二、通過這次點陣設計,重新復習并進一步學習了MCS-52優(yōu)點,明確了研究目標。三、在后的設計中,既要想到電路器件的聯(lián)合使用,又要靈活變通,舉一反三。通過本次設計,我收獲頗豐,本人的知識領域得到進一步擴展,專業(yè)技能得到進一步提高,同時提高了分析和解決實際問題的綜合能力。另外,也培養(yǎng)了自己嚴肅認真的科學態(tài)度和嚴謹求實的作風。由于本人水平有限,本次設計還存在一些不足之處,請評閱與答辯的各位老師批評指正。附錄A程序清單#include<reg51.h>#include<intrins.h>#defineucharunsignedchar#defineuintunsignedintucharcodeTable_of_Digits[]= //點陣顯示數(shù)組{0x00,0x3C,0x24,0x24,0x3C,0x24,0x24,0x3C,//80x00,0x3C,0x04,0x04,0x04,0x04,0x04,0x00,//70x00,0x3C,0x20,0x20,0x3C,0x24,0x24,0x3C,//60x00,0x3C,0x20,0x20,0x3C,0x04,0x3C,0x00,//50x00,0x0C,0x14,0x24,0x7E,0x04,0x04,0x00,//40x00,0x3C,0x04,0x3C,0x04,0x04,0x3C,0x00,//30x00,0x3C,0x04,0x04,0x3C,0x20,0x3C,0x00,//20x00,0x08,0x38,0x08,0x08,0x08,0x3E,0x00,//10x00,0x3C,0x66,0x42,0x42,0x66,0x3C,0x00//0};uchari=0,t=0,j=0,a=0; //i-行掃描,t-延遲charoffset=0;staticintCurrent_floor=0,Pressed_key_up=0,Pressed_key_down=0,b=0,c=0,max=0,min=0; //Current_floor-當前樓層,Pressed_key_up-上升請求,Pressed_key_down-下降請求 intflag;intfloor_up[8]={9,9,9,9,9,9,9,9}; //上升請求存放數(shù)組intfloor_down[8]={0,0,0,0,0,0,0,0}; //下降請求存放數(shù)組sbitKEY1=P1^0; //定義P1口按鍵sbitKEY2=P1^1; sbitKEY3=P1^2;sbitKEY4=P1^3;sbitKEY5=P1^4;sbitKEY6=P1^5;sbitKEY7=P1^6;sbitKEY8=P1^7;sbitLED=P3^7; //定義LED跟蜂鳴器sbitSPEAK=P3^6;voidKey_up_comparison(); //函數(shù)聲明,把floor_up[]按從小到大排列voidKey_down_comparison(); //把floor_down[]按從大到小排列voidmax_min_comparison(); //比較出floor_up[]的最大值(max)和floor_down[]的最小值(min)////主函數(shù)//voidmain(){ P2=0x80; //初始化 LED=0; SPEAK=0; TMOD=0x01; //T0方式 TH0=(-6000)/256; //6ms定時 TL0=(-6000)%256; IT0=1; IE=0x83; TR0=1; ET0=1; Pressed_key_up=floor_up[0]; while(1) //循環(huán)排列 { Key_up_comparison(); Key_down_comparison(); max_min_comparison(); }}voidLED_Screen_Display()interrupt1 //進入中斷,顯示樓層{ TH0=(-6000)/256; //6ms TL0=(-6000)%256; P0=0xff; Pressed_key_up=floor_up[0]; Pressed_key_down=floor_down[0]; if(flag==1) //上升標志 { if(Pressed_key_up!=9) //有上升請求 { if(Pressed_key_up>Current_floor) //點陣平滑上升顯示 { P0=~Table_of_Digits[(8-Current_floor)*8+i+offset]; P2=_crol_(P2,1); if(++i==8) { i=0; P2=0x80; } if(++t==25) //延遲 { t=0; if(--offset==-8){offset=0; ++Current_floor; } } } elseif(Pressed_key_up<Current_floor) ; elseif(Pressed_key_up==Current_floor) //到達請求樓層 { P0=~Table_of_Digits[(8-Current_floor)*8+i]; P2=_crol_(P2,1); if(++i==8) {i=0;P2=0x80;} LED=~LED;SPEAK=~SPEAK; //蜂鳴器響,LED閃爍 if(++t==250) { t=0; if(Current_floor==Pressed_key_up) { Current_floor=Pressed_key_up; if(Current_floor==max) { flag=0; } floor_up[0]=9; } } } } elseif(Pressed_key_up==9) //無請求,掃描顯示當前樓層 { P0=~Table_of_Digits[(8-Current_floor)*8+i]; P2=_crol_(P2,1); if(++i==8) { i=0; P2=0x80; } if(++t==250) t=0; } } elseif(flag==0) //下降標志 { if(Pressed_key_down!=0) //有下降請求 { if(Pressed_key_down>Current_floor); elseif(Pressed_key_down<Current_floor) //點陣平滑下降顯示 { P0=~Table_of_Digits[(8-Current_floor)*8+i+offset]; P2=_crol_(P2,1); if(++i==8) { i=0; P2=0x80; } if(++t==25) { t=0; if(++offset==8){offset=0; --Current_floor; } } } elseif(Pressed_key_down==Current_floor) //到達請求樓層 { P0=~Table_of_Digits[(8-Current_floor)*8+i]; P2=_crol_(P2,1); if(++i==8) {i=0;P2=0x80;} LED=~LED;SPEAK=~SPEAK; //蜂鳴器響,LED閃爍 if(++t==250) { t=0; if(Current_floor==Pressed_key_down) { Current_floor=Pressed_key_down; if(Current_floor==min) { flag=1; } floor_down[0]=0; } } } } elseif(Pressed_key_down==0) //無請求,掃描顯示當前樓層 { P0=~Table_of_Digits[(8-Current_floor)*8+i]; P2=_crol_(P2,1); if(++i==8) { i=0; P2=0x80; } if(++t==250) t=0; } }}voidKey_detection()interrupt0//按下按鍵,進入外部中斷,將上升請求跟下降請求放入數(shù)組,并判斷標志flag{ P0=0xff; P2=0x80; i=0; //防抖 if(KEY1==0)j=8; elseif(KEY2==0)j=7; //判斷請求 elseif(KEY3==0)j=6; elseif(KEY4==0)j=5; elseif(KEY5==0)j=4; elseif(KEY6==0)j=3; elseif(KEY7==0)j=2; elseif(KEY8==0)j=1; if(j>Current_floor) //將上升請求放入數(shù)組 { if(floor_down[0]==0) flag=1; floor_up[b++]=j; if(b==8) b=0; } elseif(j<Current_floor) //將下降請求放入數(shù)組 { if(floor_up[0]==9) flag=0; floor_down[c++]=j; if(c==8) c=0; } elseif(j==Current_floor); }voidKey_up_comparison() //把floor_up[]按從小到大排列{ inta1,a2,a3=0; for(a2=0;a2<7;a2++) { for(a1=0;a1<7;++a1) { if(floor_up[a1]>floor_up[a1+1]) { a3=floor_up[a1]; floor_up[a1]=floor_up[a1+1]; floor_up[a1+1]=a3; } if(floor_up[a1]==floor_up[a1+1]) floor_up[a1+1]=9; } }}voidKey_down_comparison() //把floor_down[]按從大到小排列{ inta1,a2,a3=0; for(a2=0;a2<7;a2++) { for(a1=0;a1<7;++a1) { if(floor_down[a1]<floor_down[a1+1]) { a3=floor_down[a1]; floor_down[a1]=floor_down[a1+1]; floor_down[a1+1]=a3; } if(floor_down[a1]==floor_down[a1+1]) floor_down[a1+1]=0; } }}voidmax_min_comparison() //求出 floor_up[]的最大(max)和floor_down[]的最?。╩in){ intj; for(j=1;j<=7;j++) if(floor_down[j]==0); elseif(floor_down[j+1]==0) min=floor_down[j]; elseif(floor_down[j]>floor_down[j+1]) min=floor_down[j+1]; elsemin=floor_down[j]; for(j=1;j<=7;j++) if(floor_up[j]==9); elseif(floor_up[j+1]==9) max=floor_up[j]; elseif(floor_up[j]<floor_up[j+1]) max=floor_up[j+1]; elsemax=floor_up[j];}附錄B元器件目錄表序號型號(名稱)數(shù)量作用1AT89C511單片機274LS2451鎖存器374LS212判斷按鍵474LS091判斷按鍵510kΩ排阻1上拉電阻68*8LED點陣顯示器1顯示數(shù)字7按鈕9復位按鈕等822pF瓷片電容2晶振電路用910μF電解電容1上電復位1011.0592MHz1晶振11蜂鳴器1提示12LED1提示1347k歐電阻114100歐電阻215三極管1驅(qū)動參考文獻[1]李朝青.單片機通訊技術(shù)與工程實踐.北京:航空航天大學出版,2007.2[2]李群芳.單片機原理接口與應用.北京:清華大學出版社,2005.6[3]朱清慧,張鳳蕊,翟天嵩,王志奎.Proteus教程——電子線路設計、制作與仿真[M].北京:清華大學出版社,2008.[4]謝自美.電子線路設計.武漢:華中科技大學出版社,2000.5[5]康華光,陳大欽.電子技術(shù)基礎—模擬部分(第五版)[M].北京:高等教育出版社,2005[6]郭天祥.51單片機C語言教程[M].北京:電子工業(yè)出版社.2009.1[7]劉欣銘,張廣斌.LED顯示屏技術(shù)綜述[J].黑龍江電力,2003,25(4):294-296.[8]蘇凱,劉國慶,陳國平.MCS-51系列單片機系統(tǒng)原理與設計[J].北京:冶金工業(yè)出版社,2003基于C8051F單片機直流電動機反饋控制系統(tǒng)的設計與研究基于單片機的嵌入式Web服務器的研究MOTOROLA單片機MC68HC(8)05PV8/A內(nèi)嵌EEPROM的工藝和制程方法及對良率的影響研究基于模糊控制的電阻釬焊單片機溫度控制系統(tǒng)的研制基于MCS-51系列單片機的通用控制模塊的研究基于單片機實現(xiàn)的供暖系統(tǒng)最佳啟停自校正(STR)調(diào)節(jié)器單片機控制的二級倒立擺系統(tǒng)的研究基于增強型51系列單片機的TCP/IP協(xié)議棧的實現(xiàn)基于單片機的蓄電池自動監(jiān)測系統(tǒng)基于32位嵌入式單片機系統(tǒng)的圖像采集與處理技術(shù)的研究基于單片機的作物營養(yǎng)診斷專家系統(tǒng)的研究基于單片機的交流伺服電機運動控制系統(tǒng)研究與開發(fā)基于單片機的泵管內(nèi)壁硬度測試儀的研制基于單片機的自動找平控制系統(tǒng)研究基于C8051F040單片機的嵌入式系統(tǒng)開發(fā)基于單片機的液壓動力系統(tǒng)狀態(tài)監(jiān)測儀開發(fā)模糊Smith智能控制方法的研究及其單片機實現(xiàn)一種基于單片機的軸快流CO〈,2〉激光器的手持控制面板的研制基于雙單片機沖床數(shù)控系統(tǒng)的研究基于CYGNAL單片機的在線間歇式濁度儀的研制基于單片機的噴油泵試驗臺控制器的研制基于單片機的軟起動器的研究和設計基于單片機控制的高速快走絲電火花線切割機床短循環(huán)走絲方式研究基于單片機的機電產(chǎn)品控制系統(tǒng)開發(fā)基于PIC單片機的智能手機充電器基于單片機的實時內(nèi)核設計及其應用研究基于單片機的遠程抄表系統(tǒng)的設計與研究基于單片機的煙氣二氧化硫濃度檢測儀的研制基于微型光譜儀的單片機系統(tǒng)單片機系統(tǒng)軟件構(gòu)件開發(fā)的技術(shù)研究基于單片機的液體點滴速度自動檢測儀的研制基于單片機系統(tǒng)的多功能溫度測量儀的研制基于PIC單片機的電能采集終端的設計和應用基于單片機的光纖光柵解調(diào)儀的研制氣壓式線性摩擦焊機單片機控制系統(tǒng)的研制基于單片機的數(shù)字磁通門傳感器基于單片機的旋轉(zhuǎn)變壓器-數(shù)字轉(zhuǎn)換器的研究基于單片機的光纖Bragg光柵解調(diào)系統(tǒng)的研究單片機控制的便攜式多功能乳腺治療儀的研制基于C8051F020單片機的多生理信號檢測儀基于單片機的電機運動控制系統(tǒng)設計Pico專用單片機核的可測性設計研究基于MCS-51單片機的熱量計基于雙單片機的智能遙測微型氣象站MCS-51單片機構(gòu)建機器人的實踐研究基于單片機的輪軌力檢測基于單片機的GPS定位儀的研究與實現(xiàn)基于單片機的電液伺服控制系統(tǒng)用于單片機系統(tǒng)的MMC卡文件系統(tǒng)研制基于單片機的時控和計數(shù)系統(tǒng)性能優(yōu)化的研究基于單片機和CPLD的粗光柵位移測量系統(tǒng)研究單片機控制的后備式方波UPS提升高職學生單片機應用能力的探究基于單片機控制的自動低頻減載裝置研究基于單片機控制的水下焊接電源的研究基于單片機的多通道數(shù)據(jù)采集系統(tǒng)基于uPSD3234單片機的氚表面污染測量儀的研制基于單片機的紅外測油儀的研究96系列單片機仿真器研究與設計基于單片機的單晶金剛石刀具刃磨設備的數(shù)控改造基于單片機的溫度智能控制系統(tǒng)的設計與實現(xiàn)基于MSP430單片機的電梯門機控制器的研制基于單片機的氣體測漏儀的研究基于三菱M16C/6N系列單片機的CAN/USB協(xié)議轉(zhuǎn)換器基于單片機和DSP的變壓器油色譜在線監(jiān)測技術(shù)研究基于單片機的膛壁溫度報警系統(tǒng)設計基于AVR單片機的低壓無功補償控制器的設計基于單片機船舶電力推進電機監(jiān)測系統(tǒng)基于單片機網(wǎng)絡的振動信號的采集系統(tǒng)基于單片機的大容量數(shù)據(jù)存儲技術(shù)的應用研究基于單片機的疊圖機研究與教學方法實踐基于單片機嵌入式Web服務器技術(shù)的研究及實現(xiàn)基于AT89S52單片機的通用數(shù)據(jù)采集系統(tǒng)基于單片機的多道脈沖幅度分析儀研究機器人旋轉(zhuǎn)電弧傳感角焊縫跟蹤單片機控制系統(tǒng)基于單片機的控制系統(tǒng)在PLC虛擬教學實驗中的應用研究基于單片機系統(tǒng)的網(wǎng)絡通信研究與應用基于PIC16F877單片機的莫爾斯碼自動譯碼系統(tǒng)設計與研究基于單片機的模糊控制器在工業(yè)電阻爐上的應用研究基于雙單片機沖床數(shù)控系統(tǒng)的研究與開發(fā)基于Cygnal單片機的μC/OS-Ⅱ的研究基于單片機的一體化智能差示掃描量熱儀系統(tǒng)研究基于TCP/IP協(xié)議的單片機與Internet互聯(lián)的研究與實現(xiàn)變頻調(diào)速液壓電梯單片機控制器的研究基于單片機γ-免疫計數(shù)器自動換樣功能的研究與實現(xiàn)\

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論