基于單片機AT89S51八層電梯控制系統(tǒng)設(shè)計.doc_第1頁
基于單片機AT89S51八層電梯控制系統(tǒng)設(shè)計.doc_第2頁
基于單片機AT89S51八層電梯控制系統(tǒng)設(shè)計.doc_第3頁
基于單片機AT89S51八層電梯控制系統(tǒng)設(shè)計.doc_第4頁
基于單片機AT89S51八層電梯控制系統(tǒng)設(shè)計.doc_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

基于單片機AT89S51的電梯控制系統(tǒng)設(shè)計摘要單片機即單片微型計算機,是集CPU、RAM、ROM、定時、計數(shù)和多種接口于一體的微控制器。其中51單片機是各種單片機中最為典型和最有代表性的一種,廣泛應(yīng)用于各個領(lǐng)域.電梯是集機械原理應(yīng)用、電氣控制技術(shù)、微處理器技術(shù)、系統(tǒng)工程學(xué)等多學(xué)科和技術(shù)分支于一體的機電設(shè)備,它是建筑中的永久垂直交通工具。本論文選擇AT89S51為核心控制元件,設(shè)計了一個八層電梯系統(tǒng),使用單片機匯編語言進行編程,實現(xiàn)運送乘客到任意樓層,并且顯示電梯的樓層和上下行。利用單片機控制電梯有成本低,通用性強,靈活性大及易于實現(xiàn)復(fù)雜控制等優(yōu)點。 關(guān)鍵詞:單片機、電梯、控制目 錄第一章 硬件系統(tǒng)實現(xiàn)1第1節(jié) 功能模塊圖1第2節(jié) AT89S51芯片1第3節(jié) 顯示模塊設(shè)計4第4節(jié) 復(fù)位開關(guān)模塊4第5節(jié) 振蕩器電路模塊4第6節(jié) 程序下載模塊5第7節(jié) 設(shè)計電路及連線6第二章 軟件設(shè)計7第1節(jié) 軟件功能描述7第2節(jié) 流程圖設(shè)計7第3節(jié) 程序設(shè)計9第三章 系統(tǒng)調(diào)試13第1節(jié) 硬件調(diào)試13第2節(jié) 軟件調(diào)試13結(jié)論15心得體會16參考文獻17第一章 硬件系統(tǒng)實現(xiàn)第1節(jié) 功能模塊圖在本設(shè)計中需用到AT89S51芯片,1個數(shù)碼管,一個蜂鳴器,復(fù)位電路,8個按鍵,24個發(fā)光二極管。圖1-1功能模塊第2節(jié) AT89S51芯片本設(shè)計主要采用AT89S51芯片。AT89S51是一個低功耗,高性能CMOS 8位單片機,片內(nèi)含4k Bytes ISP的可反復(fù)擦寫1000次的Flash只讀程序存儲器,器件采用ATMEL公司的高密度、非易失性存儲技術(shù)制造,兼容標準MCS-51指令系統(tǒng)及80C51引腳結(jié)構(gòu),芯片內(nèi)集成了通用8位中央處理器和ISP Flash存儲單元,功能強大的微型計算機的AT89S51可為許多嵌入式控制應(yīng)用系統(tǒng)提供高性價比的解決方案。AT89S51具有如下特點:40個引腳,4k Bytes Flash片內(nèi)程序存儲器,128 bytes的隨機存取數(shù)據(jù)存儲器(RAM),32個外部雙向輸入/輸出(I/O)口,5個中斷優(yōu)先級2層中斷嵌套中斷,2個16位可編程定時計數(shù)器,2個全雙工串行通信口,看門狗(WDT)電路,片內(nèi)時鐘振蕩器。此外,AT89S51設(shè)計和配置了振蕩頻率可為0Hz并可通過軟件設(shè)置省電模式??臻e模式下,CPU暫停工作,而RAM定時計數(shù)器,串行口,外中斷系統(tǒng)可繼續(xù)工作。掉電模式凍結(jié)振蕩器而保存RAM的數(shù)據(jù),停止芯片其它功能直至外中斷激活或硬件復(fù)位。同時該芯片還具有PDIP、TQFP和PLCC等三種封裝形式,以適應(yīng)不同產(chǎn)品的需求。表1-1 AT89S51芯片的主要功能兼容MCS-51指令系統(tǒng)4k可反復(fù)擦寫(1000次)ISP Flash ROM32個雙向I/O口4.5-5.5V工作電壓2個16位可編程定時/計數(shù)器時鐘頻率0-33MHz全雙工UART串行中斷口線128x8bit內(nèi)部RAM2個外部中斷源低功耗空閑和省電模式中斷喚醒省電模式3級加密位看門狗(WDT)電路軟件設(shè)置空閑和省電功能靈活的ISP字節(jié)和分頁編程雙數(shù)據(jù)寄存器指針引腳功能說明VCC:電源電壓。GND:地。P0口:P0口是一組8位漏極開路型雙向I/O口,也即地址/數(shù)據(jù)總線復(fù)用口。作為輸出口用時,每位能驅(qū)動8個TTL邏輯門電路,對端口寫“1”可作為高阻抗輸入端用。在訪問外部數(shù)據(jù)存儲器或程序存儲器時,這組口線同時轉(zhuǎn)換成地址(低8位)和數(shù)據(jù)總線復(fù)用,在訪問期間激活內(nèi)部上拉電阻。在Flash編程時,P0口接收指令字節(jié),而在程序校驗時,輸出指令字節(jié),校驗時,要求外接上拉電阻。P1口:P1是一個帶內(nèi)部上拉電阻的8位雙向I/O口,P1的輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口。作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。Flash編程和程序校驗期間,P1接收低8位地址。表1-2 P1端口引腳的第二功能端口引腳第二功能P1.5MOSI(用于ISP編程)P1.6MISO(用于ISP編程)P1.7SCK(用于ISP編程)P2口:P2是一個帶有內(nèi)部上拉電阻的8位雙向I/O口,P2的輸出緩沖可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對端口寫“1”,通過內(nèi)部的上拉電阻把端口拉到高電平,此時可作輸入口,作輸入口使用時,因為內(nèi)部存在上拉電阻,某個引腳被外部信號拉低時會輸出一個電流。在訪問外部程序存儲器或16位地址的外部數(shù)據(jù)存儲器(例如執(zhí)行MOVXDPTR指令)時,P2口送出高8位地址數(shù)據(jù)。在訪問8位地址的外部數(shù)據(jù)存儲器(如執(zhí)行MOVXRi指令)時,P2口線上的內(nèi)容(也即特殊功能寄存器(SFR)區(qū)中P2寄存器的內(nèi)容),在整個訪問期間不改變。Flash編程或校驗時,P2亦接收高位地址和其它控制信號。P3口:P3口是一組帶有內(nèi)部上拉電阻的8位雙向I/口。P3口輸出緩沖級可驅(qū)動(吸收或輸出電流)4個TTL邏輯門電路。對P3口寫入“1”時,它們被內(nèi)部上拉電阻拉高并可作為輸入端口。作輸入端時,被外部拉低的P3口將用作上拉電阻輸出電流。P3口除了作為一般的I/O口線外,更重要的用途是它的第二功能。表1-3 P3端口引腳的第二功能端口引腳第二功能P3.0RXD(串行輸入口)P3.1TXD(串行輸出口)P3.2/INT0(外中斷0)P3.3/INT1(外中斷1)P3.4T0(定時計數(shù)器0)P3.5T1(定時計數(shù)器1)P3.6/WR(外部數(shù)據(jù)存儲器寫選通)P3.7/RD(外部數(shù)據(jù)存儲器讀選通)RST:復(fù)位輸入。當(dāng)振蕩器工作時,RST引腳出現(xiàn)兩個機器周期以上高電平將使單片機復(fù)位。WDT溢出將使該引腳輸出高電平,設(shè)置SFR AUXR的DISRTO位(地址8EH)可打開或關(guān)閉該功能。DISRTO位缺省為RESET輸出高電平打開狀態(tài)。ALE/(/PROG):當(dāng)訪問外部程序存儲器或數(shù)據(jù)存儲器時,ALE(地址鎖存允許)輸出脈沖用于鎖存地址的低8位字節(jié)。即使不訪問外部存儲器,ALE仍以時鐘振蕩頻率的1/6輸出固定的正脈沖信號,因此它可對外輸出時鐘或用于定時目的。要注意的是:每當(dāng)訪問外部數(shù)據(jù)存儲器時將跳過一個ALE脈沖。對Flash存儲器編程期間,該引腳還用于輸入編程脈沖(/PROG)。如有必要,可通過對特殊功能寄存器(SFR)區(qū)中的8EH單元的D0位置位,可禁止ALE操作。該位置位后,只有一條MOVX和MOVC指令A(yù)LE才會被激活。此外,該引腳會被拉高,單片機執(zhí)行外部程序時,應(yīng)設(shè)置ALE無效。/PSEN:程序存儲允許(/PSEN)輸出是外部程序存儲器的讀選通信號,當(dāng)AT89S51由外部程序存儲器取指令(或數(shù)據(jù))時,每個機器周期兩次PSEN有效,即輸出兩個脈沖。當(dāng)訪問外部數(shù)據(jù)存儲器,沒有兩次有效的/PSEN信號。EA/VPP:外部訪問允許。欲使CPU僅訪問外部程序存儲器(地址為0000HFFFFH),EA端必須保持低電平(接地)。需注意的是:如果加密位LB1被編程,復(fù)位時內(nèi)部會鎖存EA端狀態(tài)。如EA端為高電平(接Vcc端),CPU則執(zhí)行內(nèi)部程序存儲器中的指令。Flash存儲器編程時,該引腳加上+12V的編程電壓Vpp。XTAL1:振蕩器反相放大器及內(nèi)部時鐘發(fā)生器的輸入端。XTAL2:振蕩器反相放大器的輸出端。第3節(jié) 顯示模塊顯示電路采用了1個LED數(shù)碼管,單片機I/O的應(yīng)用最典型的是通過I/O口與7段LED數(shù)碼管構(gòu)成顯示電路。7段LED數(shù)碼管,則在一定形狀的絕緣材料上,利用單只LED組合排列成“8”字型的數(shù)碼管,分別引出它們的電極,點亮相應(yīng)的點劃來顯示出0-9的數(shù)字。LED數(shù)碼管根據(jù)LED的接法不同分為共陰和共陽兩類,了解LED的這些特性,對編程是很重要的。因為不同類型的數(shù)碼管,除了它們的硬件電路有差異外,編程方法也是不同的。將多只LED的陰極連在一起即為共陰式,而將多只LED的陽極連在一起即為共陽式。以本設(shè)計共陰式為例,如把陰極接地,在相應(yīng)段的陽極接上正電源,該段即會發(fā)光。當(dāng)然,LED的電流通常較小,一般均需在回路中接上限流電阻。假如我們將b和c段接上正電源,其它端接地或懸空,那么b和c段發(fā)光,此時,數(shù)碼管顯示將顯示數(shù)字“1”。而將a、b、d、e和g段都接上正電源,其它引腳懸空,此時數(shù)碼管將顯示“2”。第4節(jié) 復(fù)位開關(guān)模塊MCS-51單片機的復(fù)位是靠外部電路實現(xiàn)的。MCS-51單片機工作之后,只要在它的RST引線上加載10ms以上的高電平,單片機就能有效地復(fù)位。MCS-51單片機通常采用上電自動復(fù)位和按鍵復(fù)位兩種方式。第5節(jié) 振蕩器電路模塊MCS-51單片機內(nèi)部的振蕩電路是一個增益反相放大器,引線XTAL1和XTAL2分別為反向振蕩放大器的輸入及內(nèi)部時鐘工作電路的輸入和來自反向振蕩器的輸出,該反向放大器可以配置為片內(nèi)振蕩器。單片機內(nèi)部雖然有振蕩電路,但要形成時鐘,外部還需要附加電路。石英晶體振蕩和陶瓷振蕩均可采用。輸入至內(nèi)部時鐘信號要通過一個二分頻觸發(fā)器,因此對外部時鐘信號的脈寬無任何要求,但必須保證脈沖的高低電平要求的寬度。51單片機的時鐘產(chǎn)生方式有兩種,分別為:內(nèi)部時鐘方式和外部時鐘方式。利用其內(nèi)部的振蕩電路XTAL1和XTAL2引線上外接定時元件,內(nèi)部振蕩電路便產(chǎn)生自激振蕩,用示波器可以觀察到XTAL2輸出的時鐘信號。在MCS-51單片機一般常用內(nèi)部時鐘方式,也就是在XTAL1和XTAL2之間連接晶體振蕩器與電容構(gòu)成穩(wěn)定的自激振蕩器,晶體和電容決定了單片機的工作時間精度為1微秒。晶體可在1.2-12MHz之間選擇。MCS-51單片機在通常應(yīng)用情況下,使用振蕩頻率為6MHZ的石英晶體,而12MHZ頻率的晶體主要是在高速串行通信情況下才使用,在這里我用的是12MHZ石英晶體。對電容無嚴格要求,但它的取值對振蕩頻率輸出的穩(wěn)定性、大小及振蕩電路起振蕩速度有一點影響。C1和C2可在20-100PF之間取值,一般情況取30PF。外部時鐘方式是把外部振蕩信號源直接接入XTAL1或XTAL2。由于XTAL2邏輯電平不是TTL的,所以還要接一個上拉電阻。第6節(jié) 程序下載模塊該模塊完成的功能是把源程序代碼下載到AT89S51芯片中,它需要和微機上的ISP下載器軟件配合使用來完成這樣的功能。ISP為在線編程接口,J2為標準10P JTAG下載接口。ISP在線編程接口為89S51單片機提供了方便的在線編程方法。使用時將ISP下載線一端與PC并口相連接,一端與ISP接口相連,使用ISP下載軟件即可實現(xiàn)MCU在線編程。下載線插接說明:兩排十針下載口,1號引腳的邊上有一個小方框;下載線的凸口為正方向,凸口的右側(cè)邊的第一個插孔為1號引腳,這一點一定要切記,不然的話程序下載不進去。第7節(jié) 設(shè)計電路及連線圖1-2電路連接圖1第二章 軟件設(shè)計第1節(jié) 軟件功能描述此單片機模擬電梯用綠色發(fā)光二極管組成的箭頭來指示電梯當(dāng)前是處于上升狀態(tài)還是下降狀態(tài),用數(shù)碼管顯示當(dāng)前是處于哪一層,用紅色發(fā)光二極管指示電梯走到哪一層會停.電源接通后,若沒有人按下停止按鍵,它就以每層2秒的速度一直上下運行,若有人按下某一層的停止按鍵,它就會在相應(yīng)的那一層停止4秒鐘,并伴有開門和關(guān)門的聲音提示。第2節(jié) 流程圖設(shè)計圖2-1主程序流該圖為電梯上升時的流程,任意按鍵按下時則進入相應(yīng)的中斷程序,否則一直進行1到8層按鍵的循環(huán)檢測。電梯下降時則進行8到1層按鍵的循環(huán)檢測。第3節(jié) 程序設(shè)計一、程序初始化TCOUNTEQU4CHCENGEQU4DHORG0000HLJMPSTARTORG000BHLJMPINT0XORG0030H;初始化;START:MOVTMOD,#01HMOVTH0,#3CHMOVTL0,#0B0H;50MSMOVIE,#82HSETBTR0MOVTCOUNT,#4CLR F0MOV20H,#0MOVR0,#30HMOVR1,#30QING:MOVR0,#00HINCR0DJNZR1,QING;把30H到4DH這30個單元清0MOVP0,#06HMOVP3,#0F8H二、主程序調(diào)用XUN:JBP1.0,ONELCALLYS10MSJBP1.0,ONE;判斷一層的停止按鍵是否按下CLRP2.0;若按下則把對應(yīng)的紅色發(fā)光二極管點亮ONE:JBP1.1,TWOLCALLYS10MSJBP1.1,TWO;判斷二層的停止按鍵是否按下CLRP2.1;若按下則把對應(yīng)的紅色發(fā)光二極管點亮TWO:JBP1.2,THRLCALLYS10MSJBP1.2,THRCLRP2.2THR:JBP1.3,FOULCALLYS10MSJBP1.3,FOUCLRP2.3FOU:JBP1.4,FIVLCALLYS10MSJBP1.4,FIVCLRP2.4FIV:JBP1.5,SIXLCALLYS10MSJBP1.5,SIXCLRP2.5SIX:JBP1.6,SEVLCALLYS10MSJBP1.6,SEVCLRP2.6SEV:JBP1.7,XUNLCALLYS10MSJBP1.7,XUNCLRP2.7LJMPXUN三、中斷程序調(diào)用INT0X:MOVTH0,#3CHMOVTL0,#0B0HINCTCOUNTMOVA,TCOUNTCJNEA,#5,ZHUAN2;50MS*5=250MSMOVTCOUNT,#00HJBF0,ZHUANLJMPZHUAN1ZHUAN:LJMPXIAJIANGZHUAN1:MOVP3,#0F8H;上升的箭頭MOVA,CENGCJNEA,#00H,SS2MOVP0,#06H;顯示JBP2.0,SS1_1INC30HMOVA,30HCJNEA,#1,SSX1_1CLRP3.4;一層門開的聲音開SSX1_1:CJNEA,#2,SSX1_2SETBP3.4;一層門開的聲音關(guān)SSX1_2:CJNEA,#16,SSX1_3CLRP3.4;一層門關(guān)的聲音開SSX1_3:CJNEA,#17,ZHUAN2;16*250MS=4S(總共次,但實際在這里停止的時間只有次MS)MOV30H,#0SETBP3.4;一層門關(guān)的聲音關(guān)SETBP2.0;熄滅對應(yīng)的紅色發(fā)光二極管SS1_1:INC31HMOVA,31HCJNEA,#9,ZHUAN2;8*250MS=2S(總共次,但實際上升一層只用次MS)MOV31H,#0INCCENGSS2:MOVA,CENGCJNEA,#01H,SS3MOVP0,#5BH;顯示JBP2.1,SS2_1INC32HMOVA,32HCJNEA,#1,SSX2_1CLRP3.4;二層門開的聲音開SSX2_1:CJNEA,#2,SSX2_2SETBP3.4;二層門開的聲音關(guān)SSX2_2:CJNEA,#16,SSX2_3CLRP3.4;二層門關(guān)的聲音開SSX2_3:CJNEA,#17,ZHUAN2;16*250MS=4S(總共次,但實際在這里停止的時間只有次MS)MOV32H,#0SETBP3.4;二層門關(guān)的聲音關(guān)SETBP2.1;熄滅對應(yīng)的紅色發(fā)光二極管SS2_1:INC33HMOVA,33HCJNEA,#9,ZHUAN2;8*250MS=2S(總共次,但實際上升一層只用次MS?MOV33H,#0LJMPZHUAN3第三章 系統(tǒng)調(diào)試第1節(jié) 硬件調(diào)試硬件調(diào)試是利用開發(fā)系統(tǒng)、基本測試儀器(萬用表、示波器等),檢查用戶系統(tǒng)硬件中存在的故障。硬件調(diào)試可分為靜態(tài)調(diào)試與動態(tài)調(diào)試兩步進行。靜態(tài)調(diào)試靜態(tài)調(diào)試是在用戶系統(tǒng)未工作時的一種硬件檢測。第一步:目測。檢查外部的各種元件或者是電路是否有斷點。第二步:萬用表測試。先用萬用表復(fù)核目測中有疑問的連接點,再檢測各種電源線與地線之間是否有短路現(xiàn)象。第三步:加電檢測。給板加電,檢測所有的插座或是器件的電源端是否符合要求的值。第四步:聯(lián)機檢查。因為只有用單片機開發(fā)系統(tǒng)才能完成對用戶系統(tǒng)的調(diào)試。動態(tài)調(diào)試動態(tài)調(diào)試是在用戶系統(tǒng)工作的情況下,發(fā)現(xiàn)和排除用戶系統(tǒng)硬件中存在的器件內(nèi)部故障、器件連接邏輯錯誤等的一種硬件檢查。動態(tài)調(diào)試的一般方法是由近及遠、由分到合。由分到合是指首先按邏輯功能將用戶系統(tǒng)硬件電路分為若干塊。當(dāng)調(diào)試電路時,與該元件無關(guān)的器件全部從用戶系統(tǒng)中去掉,這樣可以將故障范圍限定在某個局部的電路上。當(dāng)各塊電路無故障后,將各電路逐塊加入系統(tǒng)中,再對各塊電路功能及各電路間可能存在的相互聯(lián)系進行調(diào)試,由分到合的調(diào)試就可完成。由近及遠是將信號流經(jīng)的各器件按照距離單片機的邏輯距離進行由近及遠的分層,然后分層調(diào)試。第2節(jié) 軟件調(diào)試軟件調(diào)試是通過對用戶程序的匯編、連接、執(zhí)行來發(fā)現(xiàn)程序中存在的語法錯誤與邏輯錯誤并加以排除糾正的過程。(1)實驗平臺軟件調(diào)試在KEIL編譯器下進行,運行在Windows XP操作系統(tǒng)下。源程序編譯及仿真調(diào)試應(yīng)分段或以子程序為單位一個一個進行,最后可結(jié)合硬件實時調(diào)試。(2)實驗步驟1)按照系統(tǒng)硬件連線圖連好。2)把編寫好的程序進行匯編并輸入單片機AT89S51仿真器和對其進行初始化。3)先按下開啟鍵,觀察LED能否正常顯示,再觀察發(fā)光二極管形成的上升下降信號和LED顯示的數(shù)字增大減小是否一致,當(dāng)這些都符合指標后,再按下任意按鍵,看其是否達到預(yù)想的目的。接著試驗復(fù)位開關(guān),檢驗?zāi)芊裢瓿汕辶愕墓δ?,并作出相?yīng)調(diào)整。結(jié)論本系統(tǒng)就是充分利用了AT8

溫馨提示

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

評論

0/150

提交評論