版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、一課程設(shè)計(jì)題目基于51單片機(jī)的三層電梯控制二課程設(shè)計(jì)的目的1學(xué)習(xí)P口的使用方法2掌握如何利用單片機(jī)控制LED動(dòng)態(tài)顯示3掌握動(dòng)態(tài)掃描顯示的基本原理,動(dòng)態(tài)顯示的控制電路及控制程序4掌握微機(jī)控制系統(tǒng)的鍵盤組成及工作原理5認(rèn)識(shí)微機(jī)控制系統(tǒng)的鍵盤設(shè)計(jì),了解單片機(jī)鍵盤的特點(diǎn)和應(yīng)用三設(shè)計(jì)要求設(shè)計(jì)一個(gè)自動(dòng)電梯模擬升降控制系統(tǒng),通過(guò)乘客的自行按鍵達(dá)到電梯的升降功能。結(jié)合硬件與軟件對(duì)應(yīng)。端口P0.0-0.6用來(lái)控制LED燈的亮與滅,其中從低位到高位分別為一層燈,二層燈,三層燈(前述三個(gè)信號(hào)為電梯內(nèi)請(qǐng)求信號(hào),乘客在電梯內(nèi)部方可置為有效),一層上燈,二層上燈,二層下燈,三層下燈(上述四個(gè)信號(hào)為電梯外部信號(hào),乘客在電梯
2、外部方可置為有效)P2口與鍵盤對(duì)應(yīng)連接,數(shù)碼管采用串行輸入方式,鍵盤從低位到高位分別為一層按鍵,二層按鍵,三層按鍵,一層上升按鍵,二層上升按鍵,二層下降按鍵,三層下降按鍵.P1.0與數(shù)碼管的時(shí)鐘輸入端相連,P1.1與數(shù)碼管的串行口相連,用來(lái)顯示電梯的上升下降和當(dāng)前所在樓層,電梯門是否開(kāi)啟三種狀態(tài),p表示上升,d表示下降,1,2,3表示當(dāng)前樓層,如果數(shù)碼管閃爍,表示電梯門開(kāi)啟,反之則關(guān)斷。四控制系統(tǒng)的總體設(shè)計(jì)方案微型計(jì)算機(jī)的出現(xiàn)使計(jì)算機(jī)在邏輯處理和工業(yè)控制等方面的非凡能力得到了更好的體現(xiàn)。尤其是其非凡的嵌入能力對(duì)于滿足嵌入式應(yīng)用需求具有獨(dú)特的優(yōu)勢(shì)。隨著城市建設(shè)的不斷發(fā)展,樓群建筑不斷增多,電梯在
3、當(dāng)今社會(huì)的生活中有著廣泛的應(yīng)用。電梯作為樓群建筑中垂直運(yùn)行的交通工具已與人們的日常生活密不可分。 實(shí)際上電梯是根據(jù)外部呼叫信號(hào)(呼梯信號(hào))以及自身控制規(guī)律等運(yùn)行的,而呼叫是隨機(jī)的,電梯實(shí)際上是一個(gè)人機(jī)交互式的控制系統(tǒng),單純用順序控制或邏輯控制 是不能滿足控制要求的,因此,大部分電梯控制系統(tǒng)都采用隨機(jī)邏輯方式控制。在目前廣泛使用的電梯控制系統(tǒng)中,絕大多數(shù)為繼電器控制型,所有的邏輯及控制關(guān)系完全由諸多繼電器互相配合來(lái)完成,該控制系統(tǒng)的缺點(diǎn)是:(1)隨著樓層的 增高,使用繼電器的數(shù)量越來(lái)越多,造價(jià)和體積也越來(lái)越大;(2)繼電器這種觸點(diǎn)式的電控元器件不宜長(zhǎng)時(shí)間頻繁工作,因而采用在電梯系統(tǒng)當(dāng)中常發(fā)生觸電
4、表面 燒結(jié)、控制失靈的故障。因此我們?cè)O(shè)計(jì)一個(gè)3層自動(dòng)電梯模擬升降控制系統(tǒng),通過(guò)乘客的自行按鍵達(dá)到升降功能。采用單片機(jī)作為控制核心進(jìn)行仿真。本次設(shè)計(jì)是應(yīng)用AT89C51芯片進(jìn)行設(shè)計(jì)制作的模擬電梯控制系統(tǒng),通過(guò)乘客的按鍵達(dá)到對(duì)電梯升降的控制,并且模擬電梯的運(yùn)行狀態(tài)。在設(shè)計(jì)方案中,通過(guò)對(duì)各個(gè)P口的合理安排和統(tǒng)一協(xié)調(diào),通過(guò)按鍵、和LED數(shù)碼管來(lái)實(shí)現(xiàn)對(duì)設(shè)計(jì)設(shè)計(jì)方案的仿真演示。另外在實(shí)驗(yàn)程序中通過(guò)對(duì)不同按鍵鍵碼在功能上的分配,在按鍵按下之后使CPU做相應(yīng)的工作,即LED數(shù)碼管顯示與之相應(yīng)的樓層和使彩燈顯示相應(yīng)的電梯狀態(tài)。最后,結(jié)合PCB板的實(shí)際接線情況進(jìn)行編程。使實(shí)驗(yàn)順利仿真。五控制系統(tǒng)的硬件系統(tǒng)設(shè)計(jì)5.
5、1.AT89C51單片機(jī)介紹微型計(jì)算機(jī)系統(tǒng)的硬件部分通常由五部分組成:中央處理器CPU 、數(shù)據(jù)存儲(chǔ)器RAM、程序存儲(chǔ)器ROM、定時(shí)/計(jì)數(shù)器、I/O接口。MCS-51單片機(jī)內(nèi)部的總體硬件結(jié)構(gòu):1、中央處理單元CPU(8位)用于數(shù)據(jù)處理、位操作(位測(cè)試、置位、復(fù)位)。2、只讀存儲(chǔ)器ROM(4KB或8KB)用于永久性存儲(chǔ)應(yīng)用程序,掩膜ROM、EPROM、EEPROM。3、隨機(jī)存取存取器RAM(128B 或256B)用于程序運(yùn)行中存儲(chǔ)工作變量和數(shù)據(jù)。4、并行輸入/輸出口 I / O(32線)4個(gè)8位并行I/O口P0、P1、P2、P3口用作系統(tǒng)總線、擴(kuò)展外存、I / O接口芯片。5、串行輸入/
6、輸出口 UART (二線)1個(gè)全雙工的異步串行口;用于串行通信。6、定時(shí)/計(jì)數(shù)器 T(16位增量可編程)2 個(gè)或三個(gè)16位定時(shí)器/計(jì)數(shù)器;它與CPU之間各自獨(dú)立工作,當(dāng)它計(jì)數(shù)滿時(shí)向CPU中斷。7、時(shí)鐘電路 fosc振蕩頻率fosc在1.212Mhz; 分為內(nèi)部振蕩器、外接振蕩電路。8、中斷系統(tǒng) 5源中斷、 2個(gè)中斷優(yōu)先級(jí); ,可編程進(jìn)行控制。5.2硬件系統(tǒng)原理框圖AT89C51單片機(jī)鍵盤彩燈控制Led數(shù)碼管#include<reg51.h>void Zero();void Delay_ms(unsigned int Time);void Display(unsigned int n
7、,unsigned char a);void Flash(unsigned int Time);void KBScan();void dl_ms();void Destination();void Up();void Down();unsigned char code TAB38=0,0,0,0,0,1,1,0,0,1,0,1,1,0,1,1,0,1,0,0,1,1,1,1;/*樓層數(shù)碼管顯示矩陣*/P2與查詢式鍵盤硬件相連sbit P2_0=P20;sbit P2_1=P21;sbit P2_2=P22;sbit P2_3=P23;sbit P2_4=P24;sbit P2_5=P25;sb
8、it P2_6=P26;sbit P2_7=P27;/P0與LED燈硬件相連sbit P0_0=P00;sbit P0_1=P01;sbit P0_2=P02;sbit P0_3=P03;sbit P0_4=P04;sbit P0_5=P05;sbit P0_6=P06;sbit P0_7=P07;sbit P1_0 = P10; /*用于產(chǎn)生時(shí)鐘信號(hào)*/sbit P1_1 = P11; /*用于產(chǎn)生串行輸入信號(hào)(顯示or清零)*/unsigned int lift=1; /*電梯所在樓層*/unsigned int status=1; /*電梯上行為1,下行為0*/unsigned char
9、 request3=0,0,0; /*13樓有無(wú)請(qǐng)求,有請(qǐng)求為1*/unsigned char dst=1; /*電梯的目的樓層*/清零程序void Zero() unsigned char k; P1_1=0; P1_0=0; for(k=0;k<40;k+) dl_ms(); P1_0=1; dl_ms(); P1_0=0; /延時(shí)程序,以毫秒為單位,用軟件計(jì)時(shí),輸入的參數(shù)void Delay_ms(unsigned int Time) unsigned int i=0,j=0; for(i=0;i<Time;+i) KBScan(); for(j=0;j<125;+j)
10、; /顯示某一樓層void Display(unsigned int n,unsigned char a) unsigned char k; unsigned char b=0,0,0,0,0,0,0,0; if(a=1) b7=1;b6=1;b5=0;b4=0;b3=1;b2=1;b1=1;b0=0; else if(a=0) b7=0;b6=1;b5=1;b4=1;b3=1;b2=0;b1=1;b0=0; Zero(); P1_0=0; for(k=0;k<8;k+) KBScan(); P1_1=bk; dl_ms(); P1_0=1; dl_ms(); P1_0=0; P1_0=
11、0; for(k=0;k<8;k+) KBScan(); P1_1=TABn-1k; dl_ms(); P1_0=1; dl_ms(); P1_0=0; /閃爍顯示到達(dá)樓層void Flash(unsigned int Time) unsigned char i; for(i=0;i<Time;i+) Zero(); Delay_ms(1000); KBScan(); Display(lift,status); Delay_ms(1000); KBScan(); Zero(); Delay_ms(1000); KBScan();/查詢式鍵盤掃描void KBScan() if(P2
12、!=0xff) dl_ms(); if(P2!=0xff) switch(P2) case 0xfe: P0_0=1;request0=1;break; /*電梯內(nèi)請(qǐng)求1樓*/case 0xfd: P0_1=1;request1=1;break; /*電梯內(nèi)請(qǐng)求2樓*/case 0xfb: P0_2=1;request2=1;break; /*電梯內(nèi)請(qǐng)求3樓*/case 0xf7: P0_3=1;request0=1;break; /*電梯外1樓請(qǐng)求向上*/case 0xef: P0_4=1;request1=1;break; /*電梯外2樓請(qǐng)求向上*/case 0xdf: P0_5=1;re
13、quest1=1;break; /*電梯外2樓請(qǐng)求向下*/case 0xbf: P0_6=1;request2=1;break; /*電梯內(nèi)3樓請(qǐng)求向下*/ default: break; /*錯(cuò)誤請(qǐng)求*/ /消抖延時(shí)void dl_ms() unsigned char i; for(i=0;i<30;+i);/獲取目的樓層void Destination() unsigned char j; /j循環(huán)控制變量 KBScan(); /有鍵按下 if(status=1) /若電梯向上走則從高樓層到低樓層掃描 /以此達(dá)到判斷優(yōu)先級(jí)的目的 for(j=3;j>=1;-j) if(requ
14、estj-1=1) dst=j; /則將目的樓層設(shè)為該樓 break; /并將其對(duì)應(yīng)的request置1,然后跳出 else if(status=0) /若電梯向下走則從低樓層到高樓層掃描 /以此達(dá)到判斷優(yōu)先級(jí)的目的 for(j=1;j<=3;+j) if(requestj-1=1) dst=j; break; /電梯向上走void Up() status=1; /置1表示電梯向上走 for(;lift<=dst;lift+) /電梯到達(dá)目的樓層之前往上走 Display(lift,1); /每到達(dá)一樓就顯示該樓層數(shù) KBScan(); Destination(); /讀取點(diǎn)陣鍵盤
15、 if(requestlift-1=1) /若請(qǐng)求到達(dá)的樓層在所在樓層和目的樓層之間則停下閃爍顯示并將其對(duì)應(yīng)的request清零 Delay_ms(3000); if(P0_5=1&&lift=2); else requestlift-1=0; switch(lift) case 1:P0_0=0;P0_3=0;break; case 2:P0_1=0;P0_4=0;break; case 3:P0_2=0;P0_6=0;break; default:break; Flash(3); Delay_ms(800); else Delay_ms(3000); lift-;/電梯向下
16、走void Down() status=0; /置1表示電梯向上走 for(;lift>=dst;lift-) /電梯到達(dá)目的樓層之前往上走 Display(lift,0); /每到達(dá)一樓就顯示該樓層數(shù) KBScan(); Destination(); /讀取點(diǎn)陣鍵盤 if(requestlift-1=1) /若請(qǐng)求到達(dá)的樓層在所在樓層和目的樓層之間則停下閃爍顯示并將其對(duì)應(yīng)的request清零 Delay_ms(3000); if(P0_4=1&&lift=2); else requestlift-1=0; switch(lift) case 1:P0_0=0;P0_3=
17、0;break; case 2:P0_1=0;P0_5=0;break; case 3:P0_2=0;P0_6=0;break; default:break; Flash(3); Delay_ms(800); else Delay_ms(3000); lift+;void main() P0=0; while(1) /電梯程序的循環(huán) Display(lift,status); Destination(); /查詢有無(wú)樓層請(qǐng)求到達(dá) if(dst>=lift) /請(qǐng)求的樓層比要到達(dá)的樓層高 Up(); /電梯向上走 else Down(); /否則電梯向下走 七. 軟硬件調(diào)試系統(tǒng)調(diào)試包括硬件
18、調(diào)試和軟件調(diào)試,而且兩者是密不可分的。我們?cè)O(shè)計(jì)好的硬件電路和軟件程序,只有經(jīng)過(guò)聯(lián)合調(diào)試,才能驗(yàn)證其正確性;軟硬件的是否達(dá)到設(shè)計(jì)任務(wù)的要求,也只有經(jīng)過(guò)調(diào)試,才能發(fā)現(xiàn)問(wèn)題并加以解決、完善,最終實(shí)現(xiàn)設(shè)計(jì)目的。7.1 硬件調(diào)試硬件調(diào)試僅這里作比較簡(jiǎn)單的介紹,不必費(fèi)太多的心思。7.2 軟件調(diào)試軟件調(diào)試一般包括分塊調(diào)試和聯(lián)機(jī)調(diào)試兩個(gè)階段。程序的分塊調(diào)試一般在單片機(jī)開(kāi)發(fā)裝置上進(jìn)行,可根據(jù)所調(diào)程序功能塊的入口參量初值編制一個(gè)特殊的程序段,并連同被調(diào)程序功能塊一起在開(kāi)發(fā)裝置上運(yùn)行;也可配合對(duì)應(yīng)硬件電路單獨(dú)運(yùn)行某程序功能塊,然后檢查是否正確,如果執(zhí)行結(jié)果與預(yù)想的不一致,可以通過(guò)單步運(yùn)行或設(shè)置斷點(diǎn)的方法,查出原因并
19、加以改正,直到運(yùn)行結(jié)果正確為止。這時(shí)該 程序功能塊已調(diào)試完畢,可去掉附加程序段。其它程序功能塊可按此法進(jìn)行調(diào)試。程序聯(lián)機(jī)調(diào)試就是將已調(diào)試好的各程序功能塊按總體結(jié)構(gòu)聯(lián)成一個(gè)完整程序,在所研制的硬件電路上運(yùn)行。從而試驗(yàn)程序整體運(yùn)行的完整性、正確性和與硬件電路的配合情況。軟件調(diào)試主要在電腦上進(jìn)行仿真模擬。先全部編譯文件,觀察是否有錯(cuò)誤和警告,在確定沒(méi)有錯(cuò)誤和警告的情況下,點(diǎn)擊DEBUG。進(jìn)去仿真階段。本次的實(shí)驗(yàn)難度系數(shù)其實(shí)并不大,關(guān)鍵是要看各部分負(fù)責(zé)的同學(xué)的協(xié)助與互動(dòng),當(dāng)然這也與老師的細(xì)心教導(dǎo)是分不開(kāi)的。除此之外,對(duì)系統(tǒng)軟件的熟悉和對(duì)程序編寫的熟練程度也很大意義上起到了加快實(shí)驗(yàn)速度,減少差錯(cuò),減輕工
20、作量的作用。對(duì)于這些過(guò)程與步驟的熟悉與了解能很好的幫助我們解決在實(shí)際應(yīng)用當(dāng)中碰到的諸多問(wèn)題,比如說(shuō)在程序當(dāng)中設(shè)計(jì)到延時(shí),但是具體延時(shí)的時(shí)間,我們要從幾個(gè)方面考慮,最后調(diào)試了很多次,試驗(yàn)了很多次的時(shí)間參數(shù),最后才找到了一個(gè)比較合適的延時(shí)參數(shù)。除了認(rèn)為的設(shè)定他的數(shù)值以外,我們還要熟悉和掌握芯片的自身功能,也就是它的運(yùn)算速度。只要知道了運(yùn)算速度,那么大致上的時(shí)間就可以根據(jù)計(jì)算認(rèn)為得到。還有在關(guān)于程序先后運(yùn)行順序的設(shè)置上也很有講究。如果安排不好程序執(zhí)行的步驟,將會(huì)造成電梯門沒(méi)關(guān)便開(kāi)始上升下降或者LED動(dòng)態(tài)顯示暫時(shí)熄滅不顯示等由于程序執(zhí)行順序所導(dǎo)致的問(wèn)題。所以,合理的安排步驟,并且配合這塊芯片本身的功能
21、,可以發(fā)揮出事半功倍的效果。但是在調(diào)試過(guò)程中還是出現(xiàn)了一些問(wèn)題比如延時(shí)程序設(shè)定時(shí)間太短,數(shù)組定義錯(cuò)誤,引腳對(duì)應(yīng)錯(cuò)誤等等我認(rèn)為對(duì)于我們這些初學(xué)者來(lái)說(shuō),出現(xiàn)這種錯(cuò)誤也是在情理之中的,關(guān)鍵的問(wèn)題是如何解決這些問(wèn)題,我們通過(guò)同組同學(xué)的討論和向外組同學(xué)和老師的請(qǐng)教,經(jīng)過(guò)了一次一次的調(diào)試,修改,歷經(jīng)整整2天的時(shí)間完成了程序,我們組員表示在這次的設(shè)計(jì)當(dāng)中學(xué)到了很多,下次我們會(huì)珍惜這機(jī)會(huì)的。八實(shí)驗(yàn)小結(jié)一周的課程設(shè)計(jì)馬上就要結(jié)束了,對(duì)于這周的課程設(shè)計(jì)大體也有了不少自己的學(xué)習(xí)經(jīng)驗(yàn)和對(duì)于這課程設(shè)計(jì)的心得,我們這小組做的是電梯升降序控制器,以下便是我的對(duì)其簡(jiǎn)單的小結(jié): 1.由于我們小組在之前有了明確的分工所以整體來(lái)說(shuō)
22、我們小組進(jìn)程還是比較順利的,在編程序方面在以xx同學(xué)為主力在第一天我們將其大致完成了,在電路圖方面我們小組由xx利用了Poteus軟件制作,雖然在之前我們并沒(méi)有學(xué)過(guò)這個(gè)軟件的使用方法,但經(jīng)過(guò)一天的自我學(xué)習(xí),我們最終還是按要求完成了制圖。 2.第二天由于程序的基本成型,并在電路板上進(jìn)行了實(shí)踐的操作,流程圖這一塊便有我來(lái)制作了,由于我們的程序比較大應(yīng)用的模塊比較多說(shuō)以,制作流程圖還是花了我不少的時(shí)間。 3.第三天我們將寫好的程序燒進(jìn)了單片機(jī),并給老師看過(guò)之后,老師指導(dǎo)我們修改了部分細(xì)節(jié)后,我們便開(kāi)始制作最后的收尾工作,xx同學(xué)將最后的圖紙完善,xxx,xxx同學(xué)進(jìn)行最后的實(shí)驗(yàn)排版,我對(duì)流程圖按照修改后的程序進(jìn)行了最后的修正。 4.當(dāng)然在最終的結(jié)果中還是存在些不足,但總的來(lái)說(shuō),我們這次收獲了更多。在
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年度醫(yī)療服務(wù)合同
- 2024年國(guó)際快遞服務(wù)代理與合作合同
- 2024年城市成品油配送服務(wù)合同
- 2024年度信息技術(shù)咨詢服務(wù)合同
- 2024年度設(shè)備維修保養(yǎng)服務(wù)合同
- 2024年度貨物采購(gòu)合同標(biāo)的質(zhì)量保證與安全生產(chǎn)責(zé)任書
- 做課件步驟教學(xué)課件
- 倉(cāng)庫(kù)個(gè)人年終工作總結(jié)
- 2024國(guó)際貨運(yùn)代理及供應(yīng)鏈管理服務(wù)合同
- 2024年建筑垃圾無(wú)害化處理合同
- 2024年《突發(fā)事件應(yīng)對(duì)法》知識(shí)考試題庫(kù)(含答案)
- 音樂(lè)鑒賞(西安交通大學(xué))智慧樹(shù)知到期末考試答案2024年
- MOOC 數(shù)據(jù)挖掘與python實(shí)踐-中央財(cái)經(jīng)大學(xué) 中國(guó)大學(xué)慕課答案
- 湖州市第七屆“期望杯”小學(xué)數(shù)學(xué)競(jìng)賽試題(六年級(jí))附參考答案
- 2024年護(hù)坡施工合同范本
- (2024年)量子計(jì)算機(jī)課件(精)
- 腦血管病介入治療
- 世界工廠的中國(guó)特色新時(shí)期工人狀況的社會(huì)學(xué)鳥瞰
- 2023中國(guó)路跑賽事藍(lán)皮書
- 辦公室辦文辦會(huì)培訓(xùn)課件
- 尾礦庫(kù)作業(yè)人員試題
評(píng)論
0/150
提交評(píng)論