




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、題目:基于AT89S52單片機(jī)的模擬電梯設(shè)計(jì)物理與電氣學(xué)院電子信息科學(xué)與技術(shù)學(xué)院:專業(yè):電信101班級(jí):學(xué)生姓名:完成日期:摘要:?jiǎn)纹瑱C(jī)即單片微型計(jì)算機(jī)(Single-Chip Microcomputer ),是集CPU ,RAM ,ROM ,定時(shí),計(jì)數(shù)和多種接口于一體的微控制器。其中51單片機(jī)是各種單片機(jī)中最為典型和最有代表性的一種,廣泛應(yīng)用于各個(gè)領(lǐng)域.電梯是集機(jī)械原理應(yīng)用、電氣控制技術(shù)、微處理器技術(shù)、系統(tǒng)工程學(xué)等多學(xué)科和技術(shù)分支于一體的機(jī)電設(shè)備,它是建筑中的永久垂直交通工具。本論文選擇AT89S52為核心控制元件,使用宏晶公司的STC89C51RC加外圍器件作控制單元,用數(shù)碼管顯示,使用單
2、片機(jī)C語言進(jìn)行編程制作了一個(gè)八層電梯模擬系統(tǒng)。其原理圖可分為按鍵部分、顯示部分、電機(jī)部分、最小系統(tǒng)部分。兩個(gè)按鍵(一個(gè)電梯內(nèi),一個(gè)電梯外)對(duì)應(yīng)一個(gè)樓層,另有開門、關(guān)門兩個(gè)按鍵。芯片一旦檢測(cè)到某樓層的按鍵被按下,就會(huì)在對(duì)應(yīng)端口輸出5V高電平驅(qū)動(dòng)電機(jī)來到該樓層,程單序會(huì)延遲幾分鐘,等人進(jìn)入電梯后,關(guān)門,去到要去的樓層。在整個(gè)過程中,數(shù)碼管會(huì)顯示樓層數(shù)。最小系統(tǒng)為單片機(jī)提供時(shí)鐘信號(hào)和復(fù)位功能。 關(guān)鍵詞:STC89C52 單片機(jī) 模擬電梯 四位一體數(shù)碼管目錄一、設(shè)計(jì)任務(wù)11.1設(shè)計(jì)內(nèi)容與要求1二、硬件系統(tǒng)實(shí)現(xiàn)22.1 AT89S52芯片簡(jiǎn)介22.2功能模塊圖22.3顯示模塊32.4復(fù)位開關(guān)模塊42.5
3、振蕩電路模塊52.6程序下載模塊52.7設(shè)計(jì)電路及連線6三、軟件設(shè)計(jì)73.1 軟件功能描述73.2流程圖設(shè)計(jì)83.3 單片機(jī)C語言程序88899四、系統(tǒng)的調(diào)試114.1 硬件的調(diào)試114.2 軟件的調(diào)試11五、設(shè)計(jì)心得11六、參考文獻(xiàn)13一設(shè)計(jì)任務(wù)1.1. 設(shè)計(jì)內(nèi)容與要求隨著現(xiàn)代高科技的發(fā)展,住房和辦公用樓都已經(jīng)逐漸向高層發(fā)展。電梯是高層賓館、商店、住宅、多層倉庫等高層建筑不可缺少的垂直方向的交通運(yùn)輸工具。1889年美國奧梯斯升降機(jī)公司推出的世界上第一部以電動(dòng)機(jī)為動(dòng)力的升降機(jī),同年在紐約市馬累特大廈安裝成功。隨著建筑物規(guī)模越來越大,樓層也越來越高,對(duì)電梯的調(diào)速精度、調(diào)速范圍等靜態(tài)和動(dòng)態(tài)特性都提
4、出了更高的要求。由于傳統(tǒng)的電梯運(yùn)行邏輯控制系統(tǒng)采用的是繼電器邏輯控制線路。采用這種控制線路,存在易出故障、維護(hù)不便、運(yùn)行壽命較短、占用空間大等缺點(diǎn)。電梯控制系統(tǒng)是比較復(fù)雜的一個(gè)大型系統(tǒng),在計(jì)算機(jī)誕生的幾十年里,繼電器控制系統(tǒng)為電梯控制的發(fā)展做了巨大的貢獻(xiàn),但在性能上和PLC還是有本質(zhì)上的差距。在科技的不斷發(fā)展下,單片機(jī)控制系統(tǒng)很快可以解決抗擾性,成為方便有效的電梯控制系統(tǒng)。此單片機(jī)模擬電梯用綠色發(fā)光二極管組成的箭頭來指示電梯當(dāng)前是處于上升狀態(tài)還是下降狀態(tài),用數(shù)碼管顯示當(dāng)前是處于哪一層,用紅色發(fā)光二極管指示電梯走到哪一層會(huì)停.電源接通后,若沒有人按下停止按鍵,它就以每層2秒的速度一直上下運(yùn)行,若
5、有人按下某一層的停止按鍵,它就會(huì)在相應(yīng)的那一層停止4秒鐘,并伴有開門和關(guān)門的聲音提示。二 硬件系統(tǒng)實(shí)現(xiàn)2.1.AT89S52芯片AT89S52低功耗高性能CMOS8位單片機(jī),片內(nèi)8kBytesISP(In-system programmable)的可反復(fù)擦寫1000次的FLASH只讀程序存儲(chǔ)器,器件采用ATMEL公司之高密度、非易失性存儲(chǔ)技術(shù)制造,兼容標(biāo)準(zhǔn) MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),片上Flash允許程序存儲(chǔ)器在系統(tǒng)可編程,亦適于常規(guī)編程器。單芯片上,擁有8 位CPU及在系統(tǒng)可編程FLASH,使AT89S52為眾多嵌入式控制應(yīng)用系統(tǒng)提供高靈活、超有效之解決方案。AT89S52之
6、特點(diǎn):40個(gè)引腳,8k Bytes Flash片內(nèi)程序存儲(chǔ)器,256 bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器(RAM),32個(gè)外部雙向輸入/輸出(I/O)口,5個(gè)中斷優(yōu)先級(jí)2層中斷嵌套中斷,2個(gè)16位可編程定時(shí)計(jì)數(shù)器,2個(gè)全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時(shí)鐘振蕩器。圖2.1 AT89S52管腳圖:AT89S52功能:8k字節(jié)FLASH,256字節(jié)RAM,32位I/O口線,看門狗定時(shí)器,2 個(gè)數(shù)據(jù)指針,三個(gè)16 位定時(shí)器/計(jì)數(shù)器,一6向量2級(jí)中斷結(jié)構(gòu),全雙工串行口,片內(nèi)晶振及時(shí)鐘電路。AT89S52可降至0Hz靜態(tài)邏輯操作,支持2種軟件可選節(jié)電模式。空閑模式下,CPU 停止工作,允許RAM、
7、定時(shí)器/計(jì)數(shù)器、串口、中斷繼續(xù)工作。P0口8位漏極開路之雙向I/O口。作為輸出口,每位能驅(qū)動(dòng)8個(gè)TTL邏輯電平。對(duì)P0端口寫“1”時(shí),引腳用作高阻抗輸入。訪問外部程序和數(shù)據(jù)存儲(chǔ)器時(shí),P0口亦被作為低8位地址/數(shù)據(jù)復(fù)用。在這種模式下,P0不具有內(nèi)部上拉電阻。在FLASH編程時(shí),P0口亦用來接收指令字節(jié);在程序校驗(yàn)時(shí),輸出指令字節(jié)。程序校驗(yàn)時(shí),需外部上拉電阻。P1口有內(nèi)部上拉電阻的8位雙向I/O 口,p1 輸出緩沖器能驅(qū)動(dòng)4 個(gè) TTL 邏輯電平。對(duì)P1 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可作輸入口用。作為輸入使用時(shí),被外部拉低的引腳由于內(nèi)部電阻的原因,將輸出電流(IIL)。對(duì)P1 端口
8、寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可作輸入口用。作輸入用時(shí),被外部拉低的引腳因內(nèi)部電阻,將輸出電流(IIL)。此外,P1.0及P1.2分別作定時(shí)器/計(jì)數(shù)器2之外部計(jì)數(shù)輸入(P1.0/T2)及時(shí)器/計(jì)數(shù)器2之觸發(fā)輸入(P1.1/T2EX),詳見表1所示。在flash編程及校驗(yàn)時(shí),P1口接收低8位地址字節(jié)。 引腳號(hào)第二功能P1.0T2(定時(shí)器/計(jì)數(shù)器T2的外部計(jì)數(shù)輸入),時(shí)鐘輸出P1.1T2EX(定時(shí)器/計(jì)數(shù)器T2的捕捉/重載觸發(fā)信號(hào)和方向控制)P1.5MOSI(在系統(tǒng)編程用)P1.6MISO(在系統(tǒng)編程用)P1.7SCK(在系統(tǒng)編程用)P2口有內(nèi)部上拉電阻的8 位雙向I/O口,P2輸出緩沖
9、器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P2 端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可作輸入口。作輸入用時(shí),被外部拉低的引腳因內(nèi)部電阻,將輸出電流(IIL)。 在訪問外部程序存儲(chǔ)器或用16位地址讀取外部數(shù)據(jù)存儲(chǔ)器,P2口送出高八位地址。在這種應(yīng)用中,P2口用很強(qiáng)的內(nèi)部上拉發(fā)送1。在用8位地址訪問外部數(shù)據(jù)存儲(chǔ)器時(shí),P2口輸出P2鎖存器之內(nèi)容。在FLASH編程及校驗(yàn)時(shí),P2口亦接收高8位地址字節(jié)及一些控制信號(hào)。 P3口有內(nèi)部上拉電阻的8位雙向I/O口,p3輸出緩沖器能驅(qū)動(dòng)4個(gè)TTL 邏輯電平。對(duì)P3端口寫“1”時(shí),內(nèi)部上拉電阻把端口拉高,此時(shí)可用作輸入口。作輸入用時(shí),被外部拉低的引腳因內(nèi)部電阻之原因
10、,將輸出電流(IIL)。P3口亦作為AT89S52特殊功能(第二功能)用,如表2所示。在FLASH編程及校驗(yàn)時(shí),P3口亦接收些控制信號(hào)。此外,P3口亦接收些用于FLASH閃存編程及程序校驗(yàn)的控制信號(hào)。 端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2INTO(外中斷0)P3.3INT1(外中斷1)P3.4TO(定時(shí)/計(jì)數(shù)器0)P3.5T1(定時(shí)/計(jì)數(shù)器1)P3.6WR(外部數(shù)據(jù)存儲(chǔ)器寫選通)P3.7RD(外部數(shù)據(jù)存儲(chǔ)器讀選通)RST復(fù)位輸入。振蕩器工作時(shí),RST引腳有兩個(gè)機(jī)器周期以上高電平將是單片機(jī)復(fù)位。 ALE/PROG訪問外部程序存儲(chǔ)器或數(shù)據(jù)存儲(chǔ)器時(shí),ALE
11、(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。一般,ALE仍以時(shí)鐘振蕩頻率的1/6輸出固定之脈沖信號(hào),故它可對(duì)外輸出時(shí)鐘或用于定時(shí)目的。需注意:每當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器時(shí)將跳過一個(gè)ALE脈沖。對(duì)FLASH存儲(chǔ)器編程期間,該引腳亦用于輸入編程脈沖(PROG)。若必要,可通過對(duì)特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX及MOVC指令方能將ALE激活。此外,該引腳會(huì)被微弱拉高,單片機(jī)執(zhí)行外部程序時(shí),應(yīng)設(shè)置ALE禁止位無效。PSEN程序儲(chǔ)存允許(PSEN)輸出是外部程序存儲(chǔ)器之讀選通信號(hào),AT89S52由外部程序存儲(chǔ)器取指令(或數(shù)據(jù))時(shí),每個(gè)
12、機(jī)器周期兩次PSEN有效,即輸出兩個(gè)脈沖,在此期間,當(dāng)訪問外部數(shù)據(jù)存儲(chǔ)器,將跳過兩次PSEN信號(hào)。 EA/VPP外部訪問允許,要CPU僅訪問外部程序存儲(chǔ)器(地址為0000H-FFFFH),EA端須保持低電平(接地)。需注意:若加密位LB1被編程,復(fù)位時(shí)內(nèi)部會(huì)鎖存EA端狀態(tài)。若EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲(chǔ)器之指令。 FLASH存儲(chǔ)器編程時(shí),該引腳加上+12V的編程允許電源Vpp,當(dāng)然這須是該器件是使用12V編程電壓Vpp。XTAL1振蕩器反相放大器及內(nèi)部時(shí)鐘發(fā)生電路之輸入端。XTAL2振蕩器反相放大器之輸出端。單片機(jī)最小系統(tǒng)要使單片機(jī)工作起來,最基本的電路的構(gòu)成為1、
13、單片機(jī)電源: AT89S51單片機(jī)的工作電壓范圍:4.0V5.5V, 所以通常給單片機(jī)外接5V直流電源。連接方式為VCC(40腳):接電源+5V端VSS(20腳):接電源地端2、時(shí)鐘電路:?jiǎn)纹瑱C(jī)工作的時(shí)間基準(zhǔn),決定單片機(jī)工作速度。時(shí)鐘電路就是振蕩電路,向單片機(jī)提供一個(gè)正弦波信號(hào)作為基準(zhǔn),決定單片機(jī)的執(zhí)行速度。AT89S51單片機(jī)時(shí)鐘頻率范圍:0 33MHz。3、復(fù)位電路:確定單片機(jī)工作的起始狀態(tài),完成單片機(jī)的啟動(dòng)過程。單片機(jī)接通電源時(shí)產(chǎn)生復(fù)位信號(hào),完成單片機(jī)啟動(dòng),確定單片機(jī)起始工作狀態(tài)。手動(dòng)按鍵產(chǎn)生復(fù)位信號(hào),完成單片機(jī)啟動(dòng),確定單片機(jī)的初始狀態(tài)。 通常在單片機(jī)工作出現(xiàn)混亂或“死機(jī)”時(shí),使用手動(dòng)
14、復(fù)位可實(shí)現(xiàn)單片機(jī)“重啟”。2.2.功能模塊圖在本設(shè)計(jì)中需用到AT89S52芯片,1個(gè)數(shù)碼管,一個(gè)蜂鳴器,復(fù)位電路,8個(gè)按鍵,24個(gè)發(fā)光二極管。復(fù)位鍵 輸入時(shí)鐘電路 AT89S52單片機(jī) 輸出顯示圖2.2功能模塊2.3 顯示模塊顯示電路采用了1個(gè)LED數(shù)碼管,單片機(jī)I/O的應(yīng)用最典型的是通過I/O口與7段LED數(shù)碼管構(gòu)成顯示電路。7段LED數(shù)碼管,則在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點(diǎn)亮相應(yīng)的點(diǎn)劃來顯示出0-9的數(shù)字。LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對(duì)編程是很重要的。因?yàn)椴煌愋偷臄?shù)碼管,除了它們的硬
15、件電路有差異外,編程方法也是不同的。將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以本設(shè)計(jì)共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會(huì)發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將"b"和"c"段接上正電源,其它端接地或懸空,那么"b"和"c"段發(fā)光,此時(shí),數(shù)碼管顯示將顯示數(shù)字“1”。而將"a"、"b"、"d"、"e"和"g"段都接上正電源,
16、其它引腳懸空,此時(shí)數(shù)碼管將顯示“2”。 圖2.3 LED數(shù)碼管2.4 復(fù)位開關(guān)模塊MCS-51單片機(jī)的復(fù)位是靠外部電路實(shí)現(xiàn)的。MCS-51單片機(jī)工作之后,只要在它的RST引線上加載10ms以上的高電平,單片機(jī)就能有效地復(fù)位。MCS-51單片機(jī)通常采用上電自動(dòng)復(fù)位和按鍵復(fù)位兩種方式。最簡(jiǎn)單的復(fù)位電路如下圖:圖2.4 復(fù)位開關(guān)上電瞬間,RC電路充電,RST引線出現(xiàn)正脈沖,只要RST保持10ms以上的高電平,就能使單片機(jī)有效的復(fù)位。在應(yīng)用系統(tǒng)中,有些外圍芯片也需要復(fù)位。如果這些芯片復(fù)位端的復(fù)位電平與單片機(jī)的復(fù)位電平的要求一致,則可以將復(fù)位信號(hào)與之相連。2.5 振蕩器電路模塊MCS-51單片機(jī)內(nèi)部的振
17、蕩電路是一個(gè)增益反相放大器,引線 XTAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時(shí)鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。單片機(jī)內(nèi)部雖然有振蕩電路,但要形成時(shí)鐘,外部還需要附加電路。石英晶體振蕩和陶瓷振蕩均可采用。輸入至內(nèi)部時(shí)鐘信號(hào)要通過一個(gè)二分頻觸發(fā)器,因此對(duì)外部時(shí)鐘信號(hào)的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。51單片機(jī)的時(shí)鐘產(chǎn)生方式有兩種,分別為:內(nèi)部時(shí)鐘方式和外部時(shí)鐘方式。利用其內(nèi)部的振蕩電路XTAL1和XTAL2引線上外接定時(shí)元件,內(nèi)部振蕩電路便產(chǎn)生自激振蕩,用示波器可以觀察到XTAL2輸出的時(shí)鐘信號(hào)。在MCS-51單片機(jī)一般常用
18、內(nèi)部時(shí)鐘方式,也就是在XTAL1和XTAL2之間連接晶體振蕩器與電容構(gòu)成穩(wěn)定的自激振蕩器,晶體和電容決定了單片機(jī)的工作時(shí)間精度為1微秒。晶體可在1.2-12MHz之間選擇。MCS-51單片機(jī)在通常應(yīng)用情況下,使用振蕩頻率為6MHZ的石英晶體,而12MHZ頻率的晶體主要是在高速串行通信情況下才使用,在這里我用的是12MHZ石英晶體。對(duì)電容無嚴(yán)格要求,但它的取值對(duì)振蕩頻率輸出的穩(wěn)定性、大小及振蕩電路起振蕩速度有一點(diǎn)影響。C1和C2可在20-100PF之間取值,一般情況取30PF。外部時(shí)鐘方式是把外部振蕩信號(hào)源直接接入XTAL1或XTAL2。由于XTAL2邏輯電平不是TTL的,所以還要接一個(gè)上拉電阻
19、。2.6程序下載模塊該模塊完成的功能是把源程序代碼下載到AT89S51芯片中,它需要和微機(jī)上的ISP下載器軟件配合使用來完成這樣的功能。ISP為在線編程接口,J2為標(biāo)準(zhǔn)10P JTAG下載接口。ISP在線編程接口為89S51單片機(jī)提供了方便的在線編程方法。使用時(shí)將ISP下載線一端與PC并口相連接,一端與ISP接口相連,使用ISP下載軟件即可實(shí)現(xiàn)MCU在線編程。下載線插接說明:兩排十針下載口, 1號(hào)引腳的邊上有一個(gè)小方框;下載線的凸口為正方向,凸口的右側(cè)邊的第一個(gè)插孔為1號(hào)引腳,這一點(diǎn)一定要切記,不然的話程序下載不進(jìn)去。2.7 設(shè)計(jì)電路及連線 圖2.5電路連接圖三軟件設(shè)計(jì)3.1 軟件功能描述此單
20、片機(jī)模擬電梯用綠色發(fā)光二極管組成的箭頭來指示電梯當(dāng)前是處于上升狀態(tài)還是下降狀態(tài),用數(shù)碼管顯示當(dāng)前是處于哪一層,用紅色發(fā)光二極管指示電梯走到哪一層會(huì)停.電源接通后,若沒有人按下停止按鍵,它就以每層2秒的速度一直上下運(yùn)行,若有人按下某一層的停止按鍵,它就會(huì)在相應(yīng)的那一層停止4秒鐘,并伴有開門和關(guān)門的聲音提示。3.2 初始化按鍵查詢1層按鍵按下2層按鍵按下5層按鍵按下6層按鍵按下3層按鍵按下7層按鍵按下4層按鍵按下8層按鍵按下對(duì)應(yīng)中斷程序流程圖設(shè)計(jì)3.3 單片機(jī)C語言程序模擬電梯程序#include<reg51.h>sbit key3=P11;sbit key2=P10;sbit key
21、1=P12;sbit key4=P13;sbit key5=P14;sbit key6=P37;sbit key7=P36; /關(guān)門升降sbit key8=P35; /開門延時(shí)鍵sbit P24=P24;sbit P25=P25;sbit P26=P26;sbit P27=P27;sbit zhengzhuan=P20; /電動(dòng)機(jī)正轉(zhuǎn)sbit fanzhuan=P21; /電動(dòng)機(jī)反轉(zhuǎn)unsigned int i,j;unsigned char sanlou=0;unsigned charerlou=0;bit biaozhi=0;unsigned charyilou=0;unsigned ch
22、ar qusanlou=0;unsigned char querlou=0;unsigned char quyilou=0; unsigned char code tab=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90;/-延時(shí)1ms函數(shù)-void delay(unsigned int t) for(i=0;i<t;i+) for(j=0;j<121;j+) ; /-外按三樓函數(shù)-void display3(void) if(qusanlou=1) for(i=0;i<500;i+) for(j=0;j<121;j+)
23、 ; if(P26=0)/如果現(xiàn)在在一樓則顯示從一樓到三樓函數(shù) P2=0xb0; P0=tab1; for(i=0;i<500;i+) for(j=0;j<121;j+) if(key2=0) /判讀外二樓有沒有人按下 delay(10); while(key2=0); erlou=1; if(key8=0&&qusanlou=1);/同時(shí)要是之前的內(nèi)三樓鍵按下才有效 delay(10); while(key8=0); delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成
24、200跳出延時(shí)函數(shù) zhengzhuan=1; fanzhuan=0; /電機(jī)正轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000);/上一層樓的時(shí)間 P2=0xd0; P0=tab2; for(i=0;i<500;i+) for(j=0;j<121;j+) if(key8=0&&qusanlou=1); /同時(shí)要是內(nèi)三樓鍵按下才有效 delay(10); while(key8=0); delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=
25、200;/把i變成200跳出延時(shí)函數(shù) if(erlou=1) delay(1000); /在二樓停留多1s當(dāng)模擬有人進(jìn)出 zhengzhuan=0; fanzhuan=0; /電機(jī)停止 zhengzhuan=1; fanzhuan=0; /電機(jī)正轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000);/上一層樓的時(shí)間 P2=0xe0; P0=tab3; for(i=0;i<500;i+) for(j=0;j<121;j+) if(key8=0&&qusanlou=1); /同時(shí)要是內(nèi)三樓鍵按下才有效 delay(10
26、); while(key8=0); delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) if(P25=0) P2=0xd0; P0=tab2; zhengzhuan=1; fanzhuan=0; /電機(jī)正轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000); P2=0xe0; P0=tab3; if(P24=0)/如果現(xiàn)在還是顯示3樓 P2=0xe0; P0=tab3; sanlou=0; erlou=0; qusanlou=0
27、; zhengzhuan=0; fanzhuan=0; /電機(jī)停止/-外按二樓函數(shù),不過最后還是到先三樓去-void display2(void) if(querlou=1) for(i=0;i<500;i+) for(j=0;j<121;j+) ; if(P26=0) /如果現(xiàn)在在一樓則顯示從一樓到二樓再到三樓函數(shù) P2=0xb0; P0=tab1; for(i=0;i<500;i+) for(j=0;j<121;j+) if(key8=0&&querlou=1); /同時(shí)要是內(nèi)二樓鍵按下才有效 delay(10); while(key8=0); de
28、lay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) zhengzhuan=1; fanzhuan=0; /電機(jī)正轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000); /上一層樓的時(shí)間 P2=0xd0; P0=tab2; for(i=0;i<500;i+) for(j=0;j<121;j+) if(key8=0&&querlou=1); /同時(shí)要是內(nèi)二樓鍵按下才有效 delay(10); while(ke
29、y8=0); zhengzhuan=0; fanzhuan=0; /電機(jī)停止 delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) zhengzhuan=0; fanzhuan=0; /電機(jī)停止 delay(1000); delay(1000); delay(1000);/在二樓停留多1s當(dāng)模擬有人進(jìn)出 zhengzhuan=1; fanzhuan=0; /電機(jī)正轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000);/上一層樓的時(shí)
30、間 P2=0xe0; P0=tab3; for(i=0;i<500;i+) for(j=0;j<121;j+) if(key8=0&&querlou=1); /同時(shí)要是內(nèi)二樓鍵按下才有效 delay(10); while(key8=0); delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) erlou=0; biaozhi=biaozhi;/為了不讓在顯示完上升函數(shù)時(shí)再去顯示下降函數(shù) /- / 如果現(xiàn)在是在三樓的話 /- if(P24=0&&a
31、mp;biaozhi=0) /如果現(xiàn)在在三樓的話則從三樓到二樓再到一樓 P2=0xe0; P0=tab3; for(i=0;i<200;i+) for(j=0;j<121;j+) if(key8=0&&querlou=1); /同時(shí)要是內(nèi)二樓鍵按下才有效 delay(10); while(key8=0); delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) zhengzhuan=0; fanzhuan=1; /電機(jī)反轉(zhuǎn) delay(1000); del
32、ay(1000); delay(1000); delay(1000);/上一層樓的時(shí)間 P2=0xd0; P0=tab2; for(i=0;i<200;i+) for(j=0;j<121;j+) if(key8=0&&querlou=1); /同時(shí)要是內(nèi)二樓鍵按下才有效 delay(10); while(key8=0); zhengzhuan=0; fanzhuan=0; /電機(jī)停止 delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) zhengzhu
33、an=0; fanzhuan=0; /電機(jī)停止 delay(1000); /在二樓停留多2S當(dāng)模擬有人進(jìn)出 zhengzhuan=0; fanzhuan=1; /電機(jī)反轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000);/上一層樓的時(shí)間 P2=0xb0; P0=tab1; for(i=0;i<200;i+) for(j=0;j<121;j+) if(key8=0&&querlou=1); /同時(shí)要是內(nèi)二樓鍵按下才有效 delay(10); while(key8=0); delay(1000); /如果再次開門就延
34、時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) erlou=0; biaozhi=0; querlou=0; zhengzhuan=0; fanzhuan=0; /電機(jī)停止/-外按一樓函數(shù)-void display1(void) if(quyilou=1) for(i=0;i<500;i+) for(j=0;j<121;j+) ; if(P24=0) /如果現(xiàn)在在三樓則顯示從三樓到一樓函數(shù) P2=0xe0; P0=tab3; for(i=0;i<200;i+) for(j=0;j<121;j+)
35、 if(key2=0)/判讀外二樓有沒有人按下 delay(10); while(key2=0); erlou=1; if(key8=0&&quyilou=1); /同時(shí)要是內(nèi)一樓鍵按下才有效 delay(10); while(key8=0); delay(1000); /如果再次開門就延時(shí)1s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) zhengzhuan=0; fanzhuan=1; /電機(jī)反轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000);/上
36、一層樓的時(shí)間 P2=0xd0; P0=tab2; for(i=0;i<200;i+) for(j=0;j<121;j+) if(key8=0&&quyilou=1); /同時(shí)要是內(nèi)一樓鍵按下才有效 delay(10); while(key8=0); zhengzhuan=0; fanzhuan=0; /電機(jī)停止 delay(2000); /如果再次開門就延時(shí)2s if(key7=0) delay(10); while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) if(erlou=1) zhengzhuan=0; fanzhuan=0; /電機(jī)停止 d
37、elay(1000); /在二樓停留多1s當(dāng)模擬有人進(jìn)出 zhengzhuan=0; fanzhuan=1; /電機(jī)反轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000);/上一層樓的時(shí)間 P2=0xb0; P0=tab1; for(i=0;i<200;i+) for(j=0;j<121;j+) if(key8=0&&quyilou=1); /同時(shí)要是內(nèi)一樓鍵按下才有效 delay(10); while(key8=0); delay(2000); /如果再次開門就延時(shí)2s if(key7=0) delay(10);
38、 while(key7=0); i=200;/把i變成200跳出延時(shí)函數(shù) yilou=0; erlou=0; if(P25=0) P2=0xd0; P0=tab2; zhengzhuan=0; fanzhuan=1; /電機(jī)反轉(zhuǎn) delay(1000); delay(1000); delay(1000); delay(1000); P2=0xb0; P0=tab1; yilou=0; if(P26=0)/如果現(xiàn)在還是顯示3樓 P2=0xb0; P0=tab1; yilou=0; quyilou=0; zhengzhuan=0; fanzhuan=0; /電機(jī)停止/-void main (voi
39、d) P2=0xb0; P0=tab1; /一開始顯示一樓 while(1) if(key3=0) /判斷外三樓鍵 delay(10); while(key3=0); sanlou=1; qusanlou=0; if(sanlou=1) display3(); /顯示外三樓的函數(shù) /- if(key2=0) /判讀外二樓鍵 delay(10); while(key2=0); erlou=1; querlou=0; if(erlou=1) display2(); /顯示外二樓的函數(shù) /- if(key1=0) /判讀外一樓鍵 delay(10); while(key1=0); yilou=1; quyilou=0; if(yilou=1) display1(); /顯示外一樓的函數(shù) /- / 電梯內(nèi)鍵 /- if(key4=0)/判斷內(nèi)去三樓鍵 delay(10); while(key4=0); san
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年閉式冷卻塔合作協(xié)議書
- 2025年力與變形檢測(cè)儀合作協(xié)議書
- 2025年離子風(fēng)棒合作協(xié)議書
- 2025年靜脈注射丙種球蛋白合作協(xié)議書
- 2025年氯氟氰菊酯項(xiàng)目合作計(jì)劃書
- 2025年粉體無篩分離設(shè)備合作協(xié)議書
- 電商物流領(lǐng)域工作背景證明(7篇)
- 2025年新鄉(xiāng)危險(xiǎn)品考試模擬試題
- 商業(yè)合作補(bǔ)充條款協(xié)議
- 月度收入及年終獎(jiǎng)金詳細(xì)證明(8篇)
- 闌尾炎知識(shí)宣教
- 治具設(shè)計(jì)培訓(xùn)
- CSC-300系列數(shù)字式發(fā)變組保護(hù)裝置的調(diào)試說明
- 硫酸應(yīng)急預(yù)案-硫酸泄漏應(yīng)急預(yù)案演練總結(jié)
- 2025年中考英語復(fù)習(xí)1600詞背誦單-按字母排序
- 線路安規(guī)培訓(xùn)
- 比亞迪秦EV新能源汽車電機(jī)驅(qū)動(dòng)系統(tǒng)
- 老舊小區(qū)加裝電梯使用公約協(xié)議
- 新生兒護(hù)理安全用藥
- 2025年湖北省新華書店集團(tuán)有限公司招聘筆試參考題庫含答案解析
- 西醫(yī)骨科發(fā)展簡(jiǎn)史
評(píng)論
0/150
提交評(píng)論