電梯控制器設(shè)計(jì)22221_第1頁(yè)
電梯控制器設(shè)計(jì)22221_第2頁(yè)
電梯控制器設(shè)計(jì)22221_第3頁(yè)
電梯控制器設(shè)計(jì)22221_第4頁(yè)
電梯控制器設(shè)計(jì)22221_第5頁(yè)
已閱讀5頁(yè),還剩17頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、電梯控制器設(shè)計(jì)一、題義分析及解決方案1題義與需求分析在STAR ES598 PCI單板機(jī)上實(shí)現(xiàn)電梯控制器設(shè)計(jì)A、鍵盤上的0鍵、1鍵、2鍵,3鍵,4鍵和5鍵表示電梯的1樓、6樓、7樓、8樓、9樓和10樓的請(qǐng)求按鍵。B、當(dāng)電梯運(yùn)轉(zhuǎn)時(shí)經(jīng)過的樓層會(huì)在LED的左邊上動(dòng)態(tài)顯示出來,LED的右邊顯示出當(dāng)前用戶請(qǐng)求按鍵。 C、直流電動(dòng)機(jī)的轉(zhuǎn)動(dòng)模擬電梯運(yùn)轉(zhuǎn)。當(dāng)電動(dòng)機(jī)不轉(zhuǎn)時(shí),表示電梯停留在某樓層。 D、電梯初始停留在1樓,當(dāng)6樓及以上樓層有按鍵請(qǐng)求時(shí),此時(shí),電機(jī)開始轉(zhuǎn)動(dòng),LED上會(huì)動(dòng)態(tài)顯示經(jīng)過的樓層并最終停留在該層。例:此時(shí)電梯停留在7層,1、當(dāng)有10樓有請(qǐng)求時(shí),LED的右邊會(huì)顯示目的樓層10樓,電梯開始轉(zhuǎn)動(dòng),L

2、ED的左邊依次顯示7、8、9、10,到達(dá)后電梯停止轉(zhuǎn)動(dòng),LED上的目的樓層顯示(右邊)會(huì)熄滅,LED左邊會(huì)顯示10。2、當(dāng)有1樓有請(qǐng)求時(shí),LED的右邊會(huì)顯示目的樓層1樓,電梯開始轉(zhuǎn)動(dòng),LED的左邊依次顯示7、6、5、4、3、2、1,到達(dá)后電梯停止轉(zhuǎn)動(dòng),LED上的目的樓層顯示(右邊)會(huì)熄滅,LED左邊會(huì)顯示1。2解決問題的方法及思路1)硬件部分單片機(jī)工作在單任務(wù)狀態(tài),時(shí)間充裕,速度不是主要矛盾,所以用軟件實(shí)現(xiàn)計(jì)時(shí)控制,以減少硬件開銷。 接口用硬件實(shí)現(xiàn)。根據(jù)實(shí)驗(yàn)平臺(tái)的具體情況,本課程設(shè)計(jì)選用了8279A芯片、0832芯片、直流電動(dòng)機(jī)、LED發(fā)光二極管、十六進(jìn)制小鍵盤。由于8279A的輸出電流與LE

3、D不匹配的問題,需要驅(qū)動(dòng)電流,本實(shí)驗(yàn)中選擇74LS240。2)軟件部分此實(shí)驗(yàn)主要是軟件設(shè)計(jì),軟件設(shè)計(jì)分兩部分控制:1、按鍵請(qǐng)求,在LED上顯示請(qǐng)求的樓層號(hào)。判斷請(qǐng)求的樓層號(hào),調(diào)用運(yùn)行函數(shù)2、判斷上下行,顯示經(jīng)過的樓層號(hào)。到達(dá)后電機(jī)停止轉(zhuǎn)動(dòng),消除請(qǐng)求樓層號(hào)。二、硬件設(shè)計(jì)1 8279A1)8279A在本設(shè)計(jì)中的作用 在本設(shè)計(jì)中用8279A芯片控制鍵盤輸入和LED顯示。2) 8279A的功能分析a)8279A主要特性8279A芯片是一種通用的可編程序的鍵盤/顯示接口器件,單個(gè)芯片就能完成鍵盤輸入和LED顯示控制兩種功能??膳c任何8位機(jī)接口。8279A芯片包括鍵盤輸入和顯示輸出兩個(gè)部分。若采用8279

4、作為鍵盤/顯示器接口,則可以實(shí)現(xiàn)對(duì)鍵盤、顯示器自動(dòng)掃描,8279主要是管理鍵盤輸入和顯示器輸出的。8279可編程鍵盤顯示器接口芯片具有動(dòng)態(tài)顯示驅(qū)動(dòng)電路簡(jiǎn)單、不占用CPU 的時(shí)間、可自動(dòng)進(jìn)行鍵盤掃描、與計(jì)算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點(diǎn)當(dāng)今已成為設(shè)計(jì)計(jì)算機(jī)應(yīng)用系統(tǒng),特別是實(shí)時(shí)性較高的測(cè)控系統(tǒng)的首選器件之一。b)8279A的內(nèi)部結(jié)構(gòu)圖2-1 8279A的內(nèi)部結(jié)構(gòu)圖中,IRQ:中斷請(qǐng)求輸出線,DB0DB7:雙向數(shù)據(jù)總路線(傳送命令、數(shù)據(jù)、狀態(tài)),、:讀寫控制輸入端,RESET:復(fù)位輸入端,CLK:時(shí)鐘輸入端,:片選,C和/D(A0):片內(nèi)寄存器選址,OUTA0A1、OUTB0B3:8位顯示輸出

5、端,:熄滅顯示輸出端,SL0SL3:公用掃描輸出線,RL0RL7:鍵盤回饋輸入線,SHIFT:抵擋鍵輸入線,CNTL/STB:控制/選通輸入線。另外,8279的鍵盤接口部分內(nèi)部有一個(gè)8×8位先進(jìn)先出的堆棧(FIFO),用來存放鍵盤輸入代碼,顯示器接口部分內(nèi)部有一個(gè)16×8位顯示RAM,用來顯示段數(shù)據(jù),能為16位LED顯示器(或其它顯示器)提供多路掃描接口。c)8279A的引腳信號(hào)和功能8279可編程鍵盤顯示器接口芯片具有動(dòng)態(tài)顯示驅(qū)動(dòng)電路,不占用CPU 的時(shí)間、可自動(dòng)進(jìn)行鍵盤掃描、與計(jì)算機(jī)接口方便、編程容易、系統(tǒng)靈活等特點(diǎn)。 8279 是可編程的鍵盤/顯示接口芯片。它既具有按

6、鍵處理功能,又具有自動(dòng)顯示功能,在單片機(jī)系統(tǒng)中應(yīng)用很廣泛。8279內(nèi)部有鍵盤 FIFO (先進(jìn)先出堆棧)/傳感器,雙重功能的 8×8=64B RAM,鍵盤控制部分可控制 8×8=64 個(gè)按鍵或 8×8 陣列方式的傳感器。該芯片能自動(dòng)消抖并具有雙鍵鎖定保護(hù)功能。顯示 RAM容量為 16×8,即顯示器最大配置可達(dá) 16 位 LED數(shù)碼顯示。d)8279的命令字及其格式 8279有三種工作方式:鍵盤工作方式、顯示工作方式和傳感器工作方式。鍵盤工作方式:雙鍵互鎖和N鍵輪回。雙鍵互鎖是指當(dāng)有兩個(gè)以上按鍵同時(shí)按下時(shí),只能識(shí)別最后一個(gè)被釋放的按鍵,并把其鍵值送入內(nèi)部F

7、IFO RAM中。N鍵輪回是指當(dāng)有多個(gè)按鍵同時(shí)按下時(shí),所有按鍵的鍵值均可按掃描順序依次存入FIFO RAM中。顯示工作方式:是指CPU輸入至8279內(nèi)部FIFO RAM的數(shù)據(jù)的輸出格式,有8個(gè)字符左端入口顯示、16個(gè)字符左端入口顯示、8個(gè)字符右端入口顯示、16個(gè)字符右端入口顯示四種方式。傳感器方式:是指掃描傳感器陣列時(shí),一旦發(fā)現(xiàn)傳感器的狀態(tài)發(fā)生變化就置位INT向CPU申請(qǐng)中斷。選擇不同的工作方式均是通過CPU對(duì)8279送入命令來進(jìn)行控制。8279共有8種命令,命令寄存器為8位,其中D7D5為命令特征位,D4D0為命令的控制位。CPU對(duì)8279寫入的命令數(shù)據(jù)為命令字,讀出的數(shù)據(jù)為狀態(tài)字。8279

8、共有八條命令,其功能及命令字格式分述如下。(1)鍵盤/顯示方式設(shè)置命令字命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 D D K K K其中:D7、D6、D5=000為方式設(shè)置命令特征位。DD(D4、D3):用來設(shè)定顯示方式,如表2-2所示。D4D3顯示方式008個(gè)字符顯示,左端入口0116個(gè)字符顯示,左端入口108個(gè)字符顯示,右端入口1016個(gè)字符顯示,右入口表2-2 顯示方式選擇所謂左入口 ,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個(gè)向右順序排列;所謂右入口,則是顯示位置從最右一位(最低位)開始,以后逐次輸入顯示字符時(shí),已有的顯示字符依次向左移

9、動(dòng)。KKK(D2、D1、D0):用來設(shè)定七種鍵盤/顯示掃描方式,如表2-3所示。D2D1D0鍵盤/顯示掃描方式000編碼掃描鍵盤,雙鍵鎖定001譯碼掃描鍵盤,雙鍵鎖定010編碼掃描鍵盤,N鍵輪回011譯碼掃描鍵盤,N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描111選通輸入,譯碼顯示掃描表2-3 鍵盤/顯示掃描方式(2)時(shí)鐘編程命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P其中:D7、D6、D5=001為時(shí)鐘命令特征位。PPPPP(D4、D3、D2、D1、D0)用來設(shè)定外部輸入CLK時(shí)鐘脈沖的分頻系數(shù)N。N取

10、值范圍為231。如CLK輸入時(shí)鐘頻率為2MHZ,PPPPP應(yīng)被置為10100(N=20),才可獲得8279內(nèi)部要求的100KHZ的時(shí)鐘頻率。(3)讀FIFO/傳感器RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 0 AI X A A A其中:D7、D6、D5=010為讀FIFO/傳感器RAM命令特征位。該命令字只在傳感器方式時(shí)使用。在CPU讀傳感器RAM之前,必須用這條命令來設(shè)定所讀傳感器RAM中的地址。AAA(D2、D1、D0)為傳感器RAM中的八個(gè)字節(jié)地址。AI(D4)為自動(dòng)增量特征位。當(dāng)AI=1時(shí),每次讀出傳感器RAM后地址自動(dòng)加1使地址指向下一個(gè)存儲(chǔ)單元。

11、這樣,下一個(gè)數(shù)據(jù)便從下一個(gè)地址讀出,而不必重新設(shè)置讀FIFO/傳感器RAM命令。在鍵盤工作方式中,由于讀出操作嚴(yán)格按照先入先出順序,因此,不需使用這條命令。(4)讀顯示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 AI A A A A其中:D7、D6、D5=011為讀顯示RAM命令字的特征位。該命令字用來設(shè)定將要讀出的顯示RAM地址。AAAA(D3、D2、D1、D0)用來尋址顯示RAM中的存儲(chǔ)單元。由于位顯示RAM中有16個(gè)字節(jié)單元,故需要4位尋址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次讀出后地址自動(dòng)加1,指向下一地址。(5)寫顯示RAM命令命令格式

12、: D7 D6 D5 D4 D3 D2 D1 D0 1 0 0 AI A A A A其中:D7、D6、D5=100為寫顯示RAM命令字的特征位。在寫顯示RAM之前用這個(gè)命令字來設(shè)定將要寫入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫入的顯示RAM中的存儲(chǔ)單元地址。AI(D4)為自動(dòng)增量特征位。AI=1時(shí),每次寫入后地址自動(dòng)加1,指向下一次寫入地址。(6)顯示禁止寫入/消隱命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 0 1 X IW/A IW/B BL/A BL/B其中:D7、D6、D5=101為顯示禁止寫入/消隱命令特征位。IW/A、IW/ B(D3、D

13、2)為A、B組顯示RAM寫入屏蔽位。當(dāng)A組的屏蔽位D3=1時(shí),A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數(shù)據(jù)時(shí),不會(huì)影響A的顯示。這種情況通常在采用雙4位顯示器時(shí)使用。因?yàn)閮蓚€(gè)四位顯示器是相互獨(dú)立的。為了給其中一個(gè)四位顯示器輸入數(shù)據(jù)而又不影響另一個(gè)四位顯示器,因此必須對(duì)另一組的輸入實(shí)行屏蔽。BL/A、BL/ B(D1、D0)為消隱設(shè)置位。用于對(duì)兩組顯示輸出消隱。若BL=1,對(duì)應(yīng)組的顯示輸出被消隱。當(dāng)BL=0,則恢復(fù)顯示。(7)清除命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 0 CD CD CD CF CA 其中:D7、D6、D5=110為清除命令特征位

14、。清除顯示RAM方式如表2-4所示。D4D3D2清除方式10×將全部顯示RAM清為00H110將全部顯示RAM置為20H,A組輸出0010,B組輸出0000111將全部顯示RAM置為FFH0××D0=0不清除,D0=1按上述方法清除表2-4 顯示RAM清除方式CF(D1)用來置空FIFO存儲(chǔ)器,當(dāng)CF=1時(shí),執(zhí)行清除命令后,F(xiàn)IFO RAM被置空,使INT輸出線復(fù)位。同時(shí),傳感器RAM的讀出地址也被置為0。CA (D0)為總清的特征位。它兼有CD和CF的聯(lián)合效能。在CF =1時(shí),對(duì)顯示的清除方式由D3、D2的編碼決定。顯示RAM清除時(shí)間約需160us。在此期間狀態(tài)

15、字的最高位Du=1,表示顯示無效。CPU不能向顯示RAM寫入數(shù)據(jù)。(8)結(jié)束中斷/錯(cuò)誤方式設(shè)置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 E X X X X其中:D7、D6、D5=111為該命令的特征位。此命令有兩種不同的作用。作為結(jié)束中斷命令。在傳感器工作方式中使用。每當(dāng)傳感器狀態(tài)出現(xiàn)變化時(shí),掃描檢測(cè)電路就將其狀態(tài)寫入傳感器RAM,并啟動(dòng)中斷邏輯,使INT變高,向CPU 請(qǐng)求中斷,并且禁止寫入傳感器RAM。此時(shí),若傳感器RAM 讀出地址的自動(dòng)遞增特性沒有置位(AI=0),則中斷請(qǐng)求INT在CPU第一次從傳感器RAM讀出數(shù)據(jù)時(shí)就被清除。若自動(dòng)遞增特征已置位(AI

16、=1),則CPU對(duì)傳感器RAM 的讀出并不能清除INT,而必須通過給8279寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令才能使INT變低。因此,在傳感器工作方式中,此命令用來結(jié)束傳感器RAM的中斷請(qǐng)求。作為特定錯(cuò)誤方式設(shè)置命令。在8279已被設(shè)定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結(jié)束中斷/錯(cuò)誤方式設(shè)置命令(E=1),則8279將以一種特定的錯(cuò)誤方式工作。這種方式的特點(diǎn)是:在8279的消抖周期內(nèi),如果發(fā)現(xiàn)多個(gè)按鍵同時(shí)按下,則FIFO狀態(tài)字中的錯(cuò)誤特征位S/E將置1,并產(chǎn)生中斷請(qǐng)求信號(hào)和禁止寫入FIFO RAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279

17、后能自動(dòng)尋址相應(yīng)的命令寄存器。因此,寫入命令字時(shí)唯一的要求是使數(shù)據(jù)選擇信號(hào)A0 =1。e)8279的狀態(tài)字及其格式 8279的FIFO狀態(tài)字,主要用于鍵盤和選通工作方式,以指示FIFO RAM中的字符數(shù)和有無錯(cuò)誤發(fā)生。其格式為: D7 D6 D5 D4 D3 D2 D1 D0 DU S/E O U F N N N其中:Du(D7)為顯示無效特征位。當(dāng) Du=1表示顯示無效。當(dāng)顯示RAM由于清除顯示或全清命令尚未完成時(shí),Du=1,此時(shí)不能對(duì)顯示RAM寫入。S/E(D6)為傳感器信號(hào)結(jié)束/錯(cuò)誤特征位。該特征位在讀出FIFO 狀態(tài)字時(shí)被讀出。而在執(zhí)行CF =1的清除命令時(shí)被復(fù)位。當(dāng)8279工作在傳感

18、器工作方式時(shí),若S/E=1,表示傳感器的最后一個(gè)傳感器信號(hào)已進(jìn)入傳感器RAM;而當(dāng)8279工作在特殊錯(cuò)誤方式時(shí),若S/E=1則表示出現(xiàn)了多鍵同時(shí)按下錯(cuò)誤。O、U(D5、D4)為超出、不足錯(cuò)誤特征位。對(duì)FIFO RAM 的操作可能出現(xiàn)兩種錯(cuò)誤:超出或不足。當(dāng)FIFO RAM 已經(jīng)充滿時(shí),其它的鍵盤數(shù)據(jù)還企圖寫入FIFO RAM ,則出現(xiàn)超出錯(cuò)誤,超出錯(cuò)誤特征位O(D5)置1;當(dāng)FIFO RAM已經(jīng)置空時(shí),CPU還企圖讀出,則出現(xiàn)不足錯(cuò)誤,不足錯(cuò)誤特征位U(D4)置1。F(D3)表示FIFO RAM中是否已滿標(biāo)志,若F=1表示已滿。NNN(D2、D1、D0)表示FIFO RAM中的字符數(shù)據(jù)個(gè)數(shù)。f

19、)數(shù)據(jù)輸入/輸出格式對(duì)8279輸入/輸出數(shù)據(jù)不僅要先確定數(shù)據(jù)地址口,而且數(shù)據(jù)存放也要按一定格式,其格式在鍵盤和傳感器方式有所不同。(1) 鍵盤掃描方式數(shù)據(jù)輸入格式鍵盤的行號(hào)、列號(hào)及控制鍵格式如下:圖2-2 鍵盤的行號(hào)、列號(hào)及控制鍵格式控制鍵CNTL、SHIFT為單獨(dú)的開關(guān)鍵。CNTL與其它鍵連用作特殊命令鍵,SHIFT可作上、下?lián)蹩刂奇I。(2)傳感器方式數(shù)據(jù)輸入格式此種方式8位輸入數(shù)據(jù)為RL0RL7的狀態(tài)。格式如下: D7 D6 D5 D4 D3 D2 D1 D0RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL02.74LS138譯碼器1) 74LS138譯碼器在本設(shè)計(jì)中的作用 掃

20、描計(jì)數(shù)器采用編碼工作方式2) 74LS138譯碼器的功能分析74LS138是3/8譯碼器,即對(duì)3個(gè)輸入信號(hào)進(jìn)行譯碼。得到8個(gè)輸出狀態(tài)。G1,G2A,G2B,為數(shù)據(jù)允許輸出端,G2A,G2B低電平有效。G1高電平有效。A,B,C為譯碼信號(hào)輸出端,Y0Y7為譯碼輸出端,低電平有效。 圖2-3 74LS138 圖2-4 功能表 3) 74LS138譯碼器的技術(shù)參數(shù) 極限值 電源電壓-7V 輸入電壓 74LS138-7V 工作環(huán)境溫度 74LS138-070 貯存溫度- 65150 3. 74LS2401) 74LS240譯碼器在本設(shè)計(jì)中的作用本設(shè)計(jì)實(shí)驗(yàn)中主要是為增加LED的驅(qū)動(dòng)電流2) 74LS24

21、0譯碼器的功能分析74LS240 TTL 八反相三態(tài)緩沖器/線驅(qū)動(dòng)器引出端符號(hào): 1A,2A 輸入端 , 三態(tài)允許端(低電平有效) 1Y8Y 輸出端 圖2-5 74LS240邏輯圖 輸入輸出AYLLHLHXHLZ表2-5 74LS240功能表3) 74LS240譯碼器的技術(shù)參數(shù) 極限值: 電源電壓 . 7V 輸入電壓 . 5.5V 輸出高阻態(tài)時(shí)高電平電壓 . 5.5V 工作環(huán)境溫度 74LS240 . 070 存儲(chǔ)溫度 . -65150 4. 小鍵盤1) 小鍵盤在本設(shè)計(jì)中的作用本設(shè)計(jì)中,小鍵盤用于輸入請(qǐng)求樓層號(hào)。2) 小鍵盤的功能分析通常使用的鍵盤是矩陣結(jié)構(gòu)的。對(duì)于4×4=16個(gè)鍵的

22、鍵盤,采用矩陣方式只要用8條引線和2個(gè)8位端口便完成鍵盤的連接。如圖,這個(gè)矩陣分為4行4列,如果鍵5按下,則第1行和第1列線接通而形成通路。如果第1行線接低電平,則鍵5的閉合,會(huì)使第1列線也輸出低電平。矩陣式鍵盤工作時(shí),就是按行線和列線的電平來識(shí)別閉合鍵的。 圖2-5 4×4鍵盤矩陣圖行掃描法識(shí)別按鍵的原理如下:先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合。這是通過檢查列線電位來實(shí)現(xiàn)的,即在第0行接低電平時(shí),看是否有哪條列線變成低電平。如果有某列線變?yōu)榈碗娖?,則表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行沒有任何鍵被按下。此后,再

23、將第1行接低電平,檢測(cè)是否有變?yōu)榈碗娖降牧芯€。如此重復(fù)地掃描,直到最后一行。在掃描過程中,當(dāng)發(fā)現(xiàn)某一行有鍵閉合時(shí),也就是列線輸入中有一位為0時(shí),便退出掃描,通過組合行線和列線即可識(shí)別此刻按下的是哪一鍵。實(shí)際應(yīng)用中,一般先快速檢查鍵盤中是否有鍵按下,然后再確定按鍵的具體位置。為此,先使所有行線為低,然后檢查列線。這時(shí)如果列線有一位為0,則說明必有鍵被按下, 采用掃描法可進(jìn)一步確定按鍵的具體位置。5.七段LED顯示器1) LED作用LED發(fā)光二級(jí)管(Light-Emitting Diode),在本設(shè)計(jì)中采用7段數(shù)字發(fā)光二級(jí)管,做為終端顯示。顯示時(shí)間的分秒。2)LED功能分析物理構(gòu)造:LED發(fā)光二級(jí)

24、管,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內(nèi)部結(jié)構(gòu)為一個(gè)PN結(jié),具有單向?qū)щ娦浴?圖2-6 LED結(jié)構(gòu)圖數(shù)字成像:將七個(gè)發(fā)光管進(jìn)行組合,排列成數(shù)字圖形8,再根據(jù)需要控制七個(gè)管的亮與滅,即可顯示出定義數(shù)字。字型A B C Da b c d e f g bpOX00 0 0 01 1 1 1 1 1 0 03f10 0 0 10 1 1 0 0 0 0 00620 0 1 01 1 0 1 1 0 1 05b30 0 1 11 1 1 1 0 0 1 04f40 1 0 00 1 1 0 0 1 1 0 6650 1 0 11 0 1 1 0 1 1 0 6d60 1 1 00 0 1 1 1

25、 1 1 07d70 1 1 11 1 1 0 0 0 0 00781 0 0 01 1 1 1 1 1 1 07f91 0 0 11 1 1 0 0 1 1 06fA1 0 1 01 1 1 0 1 1 1 077B1 0 1 10 0 1 1 1 1 1 0 7cC1 1 0 01 0 0 1 1 1 0 039D1 1 0 10 1 1 1 1 0 1 05eE1 1 1 01 0 0 1 1 1 1 079F1 1 1 11 0 0 0 1 1 1 071表2-6 LED數(shù)碼表3) LED技術(shù)參數(shù)表2-7 LED技術(shù)參數(shù)表6DAC0832數(shù)模轉(zhuǎn)換芯片:DAC0832的作用:本實(shí)驗(yàn)中DA

26、C0832的作用是將系統(tǒng)中的數(shù)字信號(hào)轉(zhuǎn)換為電壓信號(hào)給直流電機(jī)供電。7. 硬件總邏輯圖及其說明 圖2-7 硬件接線圖圖中8279的地址由和A0決定,故數(shù)據(jù)口地址為7FFEH,命令口地址為7FFFH。所接的16個(gè)按鍵,掃描線接在74HC138的譯碼輸出端和上,當(dāng)為0(SL2SL1SL0=000)時(shí),掃描第1列按鍵,當(dāng)為0(SL2SL1SL0=001)掃描第2列按鍵,故07號(hào)按鍵的鍵值為00H07H,815號(hào)按鍵鍵值為08H0FH。當(dāng)某一按鍵被按下后,鍵值就自動(dòng)進(jìn)入緩沖區(qū),當(dāng)8279內(nèi)部RAM不空時(shí)由INT輸出高電平告知CPU取走,故INT連接CPU的中斷輸入需加一反向器。8279鍵盤配置最大為8&

27、#215;8,若要配置64個(gè)按鍵,其它列掃描線可分別連至至上,形成8行8列的按鍵掃描電路。圖中顯示部分段選碼由8279的OUTA3OUTA0、OUTB3OUTB0通過驅(qū)動(dòng)器74LS240提供,位選碼由SL2SL0 經(jīng)3-8譯碼器通過驅(qū)動(dòng)器74LS240提供。三、控制程序設(shè)計(jì)1. 控制程序設(shè)計(jì)思路 初始化板卡以及8279,電梯初始停留在1樓。先調(diào)用顯示函數(shù),將停留樓層號(hào)在LED上顯示出來。初始停止電機(jī)轉(zhuǎn)動(dòng),開始掃描是否有按鍵請(qǐng)求,若沒有,則繼續(xù)掃描。直至有請(qǐng)求按鍵按下,此時(shí)將鍵值轉(zhuǎn)換為鍵號(hào)。調(diào)用運(yùn)行函數(shù),判斷請(qǐng)求的樓層號(hào)。再調(diào)用啟動(dòng)函數(shù),判斷上下行,判斷后,電機(jī)轉(zhuǎn)動(dòng),在LED上依次顯示經(jīng)過的樓層

28、號(hào)。當(dāng)電梯到達(dá)請(qǐng)求樓層,電機(jī)停止轉(zhuǎn)動(dòng),消除請(qǐng)求樓層號(hào),此時(shí),電梯停留在該樓層。等待按鍵請(qǐng)求,重復(fù)以上動(dòng)作。 2.程序流程圖根據(jù)程序設(shè)計(jì)思路,畫出程序流程圖,并加以修改直至滿意為止。開始初始化初始化顯示是否有鍵按下?鍵值轉(zhuǎn)換鍵號(hào)上下行判斷顯示電機(jī)轉(zhuǎn)動(dòng)是否到達(dá)目的樓層停止,消請(qǐng)求樓層信號(hào)YYNN圖3-1 主控程序流程圖3.控制程序.MODELTINYPCIBAR3EQU1CH;8位I/O空間基地址(它就是實(shí)驗(yàn)儀的基地址, ;也為DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;廠商ID號(hào)Device_IDEQU8376;設(shè)備ID號(hào).STACK1

29、00.DATAIO_Bit8_BaseAddress DW?msg0DB'BIOS不支持訪問PCI $'msg1DB'找不到Star PCI9052板卡 $'msg2DB'讀8位I/O空間基地址時(shí)出錯(cuò)$'KEYCOUNT DB?STAY0DB?;電梯所停留的樓層STAY1DB?;電梯之后要到達(dá)的樓層DISD DB 0;顯示目的樓層號(hào),初始為0DISD1 DB 0;記錄電梯到達(dá)目的樓層的LED編碼D10 DB 0;記錄電梯是否到達(dá)10樓ZHUANHDB? ;運(yùn)動(dòng)中間值ZHUANH1DB ?ZH0DB ?LED_TABDB 0C0H,0F9H,0A4

30、H,0B0H,99H,92H,82H,0F8H,080H,90H,0FFH;0-10的LED顯示所對(duì)應(yīng)的編碼CMD_8279 DW 00B1H;8279命令字、狀態(tài)字地址DATA_8279 DW 00B0H;8279讀寫數(shù)據(jù)口的地址DA0832 DW 00D0H.CODESTART: MOV AX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根據(jù)PCI提供的基地址,將偏移地址轉(zhuǎn)化為實(shí)地址CALL INIT8279;初始化子程序MOV AH,0MOV KEYCOUNT,0MOVSTAY0,1;電梯初始為1層MOVDX,DATA_8279MOVAL,0F

31、9H;顯示樓層數(shù)為1OUTDX,ALCALL DISPLAY1CALL DAC0832B ;使電機(jī)停止轉(zhuǎn)動(dòng)START1:CALLIfExitJZSTART11;之前沒有鍵按下,ZF=1JMPExitSTART11:CALLSCAN_KEY;鍵掃描JNC START1;沒有按鍵CF=0XCHG AL,KEYCOUNT ; 此時(shí)AL中為數(shù)據(jù)端口的內(nèi)容INC ALCMP AL,9JNZ START2MOV KEYCOUNT,0;初始化鍵值CALL INIT8279_1;8個(gè)數(shù)碼塊全有字符顯示后,再按鍵,清除顯示JMP START1START2: XCHGAL,KEYCOUNT CALL KEY_NU

32、M;鍵值轉(zhuǎn)換為鍵號(hào)JMPYYYY:CALLYUNXING0;有鍵請(qǐng)求判斷請(qǐng)求信號(hào),根據(jù)請(qǐng)求信號(hào)使電機(jī)轉(zhuǎn)動(dòng)JMP START1START_EXIT:JMP $;8279初始化INIT8279 PROCNEARMOVDX,CMD_8279;CMD_8279為寫命令地址、讀狀地址MOVAL,34H ;可編程時(shí)鐘設(shè)置,設(shè)置分頻系數(shù)(20分頻)OUT DX,AL;時(shí)鐘初置設(shè)置D4-D0對(duì)外部輸入時(shí)鐘的分頻數(shù)MOV AL,0;8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式雙鍵互鎖OUT DX,AL;鍵盤/顯示方式設(shè)置命令字CALLINIT8279_1RETINIT8279 ENDPINIT8279_1PRO

33、CNEARCALLCLEAR;清顯示MOVAL,90H;從第一個(gè)數(shù)碼管開始移位顯示,從起始地址開始,每次讀出后, ;地址自動(dòng)加1,D4(AI)=0表示要求只讀出一個(gè)單元的內(nèi)容OUTDX,AL;寫顯示RAM命令格式RETINIT8279_1ENDPCLEARPROCNEARMOVDX,CMD_8279MOVAL,0DEH; 清除命令,D4D3D2=111將顯示RAM全部置1,D1=1,FIFO存儲(chǔ)器 ;被置空(無數(shù)據(jù)),且使中斷輸出線IRQ復(fù)位,同時(shí)使傳感器RAM的讀出地址復(fù)位為0OUTDX,ALWAIT1:INAL,DX;讀狀態(tài)字TESTAL,80H;D7位是否為1JNZWAIT1; 顯示RA

34、M清除完畢嗎?D7=1表示RAM處在清除命令的執(zhí)行過程RETCLEARENDPSCAN_KEYPROCNEARMOVDX,CMD_8279INAL,DX;讀狀態(tài),D2D1D0表示FIFO RAM中存放的字符個(gè)數(shù),D3判斷其是;否已滿READ_FIFO:ANDAL,7JZNO_KEY;是否有鍵按下READ:MOV AL,40H;D4=0只讀出一個(gè)單元內(nèi)容,D2D1D0讀傳感器RAM的初始地址OUT DX,AL;讀FIFO RAMMOV DX,DATA_8279IN AL,DXMOV KEYCOUNT,ALSTC;有鍵,CF置1SCAN_KEY1:RETNO_KEY:CLC;無鍵按下,清CFJMP

35、SCAN_KEY1SCAN_KEYENDPKEY_NUMPROCNEARANDAL,3FH;使鍵值的高兩位CNTL,SHIFT置0RETKEY_NUMENDPYUNXING0 PROCNEARLEA BX,LED_TABMOV DX,DATA_8279J: MOV STAY1,ALCMP AL,0;第1層有請(qǐng)求JZ L1CMP AL,1;第6層有請(qǐng)求JZ L6CMP AL,2;第7層有請(qǐng)求JZ L7CMP AL,3;第8層有請(qǐng)求JZ L8ACMP AL,4;第9層有請(qǐng)求JZ L9A CMP AL,5;第10層有請(qǐng)求JZ L10AL1:MOV DISD,1 MOV AL,STAY0CMP AL,

36、1JZ EXIT3ASUB AL,1MOV AH,0MOV CX,AXCALL QIDONG1 ;使電梯下降MOV STAY0,1JMP EXIT3L8A: JMP L8L6:MOV DISD,6 MOV AL,STAY0MOV AH,0CMP AL,6JNB L6_1;電梯需要下降MOV STAY1,6;電梯需要上升SUB STAY1,ALXCHG AL,STAY1MOV CX,AXCALL QIDONG0MOV STAY0,6JMP EXIT3L6_1:SUB AL,6MOV CX,AXCALL QIDONG1MOV STAY0,6JMP EXIT3L9A: JMP L9L10A: JMP

37、 L10EXIT3A: JMP EXIT3L7: MOV DISD,7MOV AL,STAY0MOV AH,0CMP AL,7JNB L7_1 ;跳轉(zhuǎn)的下降MOV STAY1,7SUB STAY1,ALXCHG AL,STAY1MOV CX,AXCALL QIDONG0MOV STAY0,7JMP EXIT3L7_1:SUB AL,7MOV CX,AXCALL QIDONG1MOV STAY0,7JMP EXIT3L8: MOV DISD,8 MOV AL,STAY0MOV AH,0CMP AL,8JNB L8_1MOV STAY1,8SUB STAY1,ALXCHG AL,STAY1MOV

38、CX,AXCALL QIDONG0MOV STAY0,8JMP EXIT3L8_1:SUB AL,8MOV CX,AXCALL QIDONG1MOV STAY0,8JMP EXIT3L9: MOV DISD,9MOV AL,STAY0MOV AH,0CMP AL,9JNB L9_1MOV STAY1,9SUB STAY1,ALXCHG AL,STAY1MOV CX,AXCALL QIDONG0MOV STAY0,9JMP EXIT3L9_1:SUB AL,9MOV CX,AXCALL QIDONG1MOV STAY0,9JMP EXIT3L10: MOV D10,1 MOV DISD,10MO

39、V AL,STAY0MOV AH,0CMP AL,10JZ EXIT3MOV STAY1,10SUB STAY1,ALXCHG AL,STAY1MOV CX,AXCALL QIDONG0MOV STAY0,10EXIT3:RETYUNXING0 ENDPQIDONG0 PROCNEAR ;電梯需要上升時(shí)電機(jī)的轉(zhuǎn)動(dòng)情況及對(duì)應(yīng)的LED的變化情況MOV AL,STAY0INC ALPUSHDXMOV ZHUANH,ALCALLDAC0832 ;使電機(jī)轉(zhuǎn)動(dòng)MOV AL,ZHUANHPOPDXA0:PUSH DXMOV ZH0,ALPOP DXMOV AL,ZH0MOV ZHUANH1,AL XLAT

40、OUT DX,AL;顯示相應(yīng)樓層 MOV DISD1,ALCALLDISPLAY1CALL DL1S;延時(shí)1SMOV AL,ZHUANH1INC ALLOOP A0MOV DISD,0 ;目的樓層到達(dá)后,復(fù)位CALL DENGMIECALL DAC0832B ;使電機(jī)停止RETQIDONG0 ENDPQIDONG1 PROCNEAR ;電梯需要下降時(shí)電機(jī)的轉(zhuǎn)動(dòng)情況及對(duì)應(yīng)的LED的變化情況MOV AL,STAY0DEC ALPUSHDXMOV ZHUANH,AL ;記錄AL的值CALLDAC0832 ;使電機(jī)轉(zhuǎn)動(dòng)MOV AL,ZHUANH POPDXA1:PUSH DXMOV ZHUANH1,A

41、LXLATOUT DX,AL ;顯示相應(yīng)樓層MOV DISD1,AL ;記錄目的樓層的LED顯示的編碼CALL DISPLAY1CALL DL1S ;延時(shí)1SMOV AL,ZHUANH1DEC ALPOP DXLOOP A1MOV DISD,0CALL DENGMIE ;到達(dá)后目的樓層,燈滅掉CALL DAC0832B ;使電機(jī)停止轉(zhuǎn)動(dòng)RETQIDONG1 ENDPDL1S PROCNEARPUSH AXPUSH DXMOV DX,1000;延時(shí)1SMOV AH,0FFH;星研公司提供的軟中斷INT 21HPOP DXPOP AXRETDL1SENDPDAC0832PROCNEARMOVDX,

42、DA0832MOVAL,021H;轉(zhuǎn)換電壓數(shù)字量OUTDX,ALRETDAC0832ENDPDAC0832B PROC NEARMOVDX,DA0832MOVAL,00HOUTDX,ALRETDAC0832B ENDPDENGMIE PROC NEAR CMP DISD,0 ;判斷是否到達(dá)目的樓層,到達(dá)后準(zhǔn)備清空目的樓層顯示燈 JZ S1 JMP S2S1: PUSH CXMOV CX,8DDL:MOVZHUANH,ALMOVAL,0FFHOUT DX,ALMOVAL,ZHUANHLOOP DDLPOP CX CMP D10,1 ;顯示10樓 JZ A10 JMP S101A10: MOV A

43、L,0F9H OUT DX,AL MOV AL,0C0H OUT DX,AL PUSH CXMOV CX,6DDL1:MOVZHUANH,ALMOVAL,0FFHOUT DX,ALMOVAL,ZHUANHLOOP DDL1MOV D10,0POP CX RET S101:MOV AL,DISD1 ;記錄目的樓層OUT DX,ALS11: PUSH CXMOV CX,7DDLL:MOVZHUANH,ALMOVAL,0FFHOUT DX,ALMOVAL,ZHUANHLOOP DDLLPOP CXRETS2: RETDENGMIE ENDP DISPLAY1 PROC NEAR CMP D10,1

44、;是否到達(dá)10樓 JZ DS10 JMP GO1DS10: PUSH CXMOV CX,5DSD:MOVZHUANH,ALMOVAL,0FFHOUT DX,ALLOOP DSDMOV AL,0F9HOUT DX,ALMOV AL,0C0HOUT DX,ALMOV AL,ZHUANHPOP CXRET GO1:PUSH CXMOV CX,6D:MOVZHUANH,ALMOVAL,0FFHOUT DX,ALLOOP DCALL DISPLAY2MOV AL,ZHUANHPOP CXRETDISPLAY1 ENDPDISPLAY2 PROC NEAR CMP DISD,0 JZ STOP1 CMP

45、DISD,1 JZ DD1 CMP DISD,6 JZ DD6 CMP DISD,7 JZ DD7 CMP DISD,8 JZ DD8 CMP DISD,9 JZ DD9 JMP ERRORSTOP1: MOV AL,0FFH JMP DDD DD1: MOV AL,0F9H JMP DDDDD6: MOV AL,82H JMP DDD DD7: MOV AL,0F8H JMP DDD DD8: MOV AL,80H JMP DDD DD9: MOV AL,90H JMP DDDERROR: MOV AL,0FFHDDD: OUT DX,AL RETDISPLAY2 ENDPIfExitPRO

46、CNEARPUSHAXPUSHDXMOVAH,06HMOVDL,0FFH ;DL=0FFH表示輸入,鍵值為ALINT21HPOPDXPOPAXJZIfExit1JMPExitIfExit1:RETIfExitENDPInitPCIPROCNEARMOVAH,00HMOVAL,03HINT10H;清屏MOVAH,0B1HMOVAL,01HINT1AHCMPAH,0JZInitPCI2LEADX,msg0InitPCI1:MOVAH,09HINT21HJMPExitInitPCI2:MOVAH,0B1HMOVAL,02HMOVCX,Device_IDMOVDX,Vendor_IDMOVSI,0INT1AHJNCInitPCI3;是否存在Star PCI9052板卡LEADX,msg1JMPInitPCI1InitPCI3:MOVDI,PCIBAR3MOVAH,0B1HMOVAL,09HINT1AH;讀取該卡PCI9052基地址JNCInitPCI4LEADX,msg2JMPInitPCI1InitPCI4:A

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝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ù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論