




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、電梯控制器設計一、題義分析及解決方案1題義與需求分析在STAR ES598 PCI單板機上實現電梯控制器設計A、鍵盤上的0鍵、1鍵、2鍵,3鍵,4鍵和5鍵表示電梯的1樓、6樓、7樓、8樓、9樓和10樓的請求按鍵。B、當電梯運轉時經過的樓層會在LED的左邊上動態顯示出來,LED的右邊顯示出當前用戶請求按鍵。 C、直流電動機的轉動模擬電梯運轉。當電動機不轉時,表示電梯停留在某樓層。 D、電梯初始停留在1樓,當6樓及以上樓層有按鍵請求時,此時,電機開始轉動,LED上會動態顯示經過的樓層并最終停留在該層。例:此時電梯停留在7層,1、當有10樓有請求時,LED的右邊會顯示目的樓層10樓,電梯開始轉動,L
2、ED的左邊依次顯示7、8、9、10,到達后電梯停止轉動,LED上的目的樓層顯示(右邊)會熄滅,LED左邊會顯示10。2、當有1樓有請求時,LED的右邊會顯示目的樓層1樓,電梯開始轉動,LED的左邊依次顯示7、6、5、4、3、2、1,到達后電梯停止轉動,LED上的目的樓層顯示(右邊)會熄滅,LED左邊會顯示1。2解決問題的方法及思路1)硬件部分單片機工作在單任務狀態,時間充裕,速度不是主要矛盾,所以用軟件實現計時控制,以減少硬件開銷。 接口用硬件實現。根據實驗平臺的具體情況,本課程設計選用了8279A芯片、0832芯片、直流電動機、LED發光二極管、十六進制小鍵盤。由于8279A的輸出電流與LE
3、D不匹配的問題,需要驅動電流,本實驗中選擇74LS240。2)軟件部分此實驗主要是軟件設計,軟件設計分兩部分控制:1、按鍵請求,在LED上顯示請求的樓層號。判斷請求的樓層號,調用運行函數2、判斷上下行,顯示經過的樓層號。到達后電機停止轉動,消除請求樓層號。二、硬件設計1 8279A1)8279A在本設計中的作用 在本設計中用8279A芯片控制鍵盤輸入和LED顯示。2) 8279A的功能分析a)8279A主要特性8279A芯片是一種通用的可編程序的鍵盤/顯示接口器件,單個芯片就能完成鍵盤輸入和LED顯示控制兩種功能。可與任何8位機接口。8279A芯片包括鍵盤輸入和顯示輸出兩個部分。若采用8279
4、作為鍵盤/顯示器接口,則可以實現對鍵盤、顯示器自動掃描,8279主要是管理鍵盤輸入和顯示器輸出的。8279可編程鍵盤顯示器接口芯片具有動態顯示驅動電路簡單、不占用CPU 的時間、可自動進行鍵盤掃描、與計算機接口方便、編程容易、系統靈活等特點當今已成為設計計算機應用系統,特別是實時性較高的測控系統的首選器件之一。b)8279A的內部結構圖2-1 8279A的內部結構圖中,IRQ:中斷請求輸出線,DB0DB7:雙向數據總路線(傳送命令、數據、狀態),、:讀寫控制輸入端,RESET:復位輸入端,CLK:時鐘輸入端,:片選,C和/D(A0):片內寄存器選址,OUTA0A1、OUTB0B3:8位顯示輸出
5、端,:熄滅顯示輸出端,SL0SL3:公用掃描輸出線,RL0RL7:鍵盤回饋輸入線,SHIFT:抵擋鍵輸入線,CNTL/STB:控制/選通輸入線。另外,8279的鍵盤接口部分內部有一個8×8位先進先出的堆棧(FIFO),用來存放鍵盤輸入代碼,顯示器接口部分內部有一個16×8位顯示RAM,用來顯示段數據,能為16位LED顯示器(或其它顯示器)提供多路掃描接口。c)8279A的引腳信號和功能8279可編程鍵盤顯示器接口芯片具有動態顯示驅動電路,不占用CPU 的時間、可自動進行鍵盤掃描、與計算機接口方便、編程容易、系統靈活等特點。 8279 是可編程的鍵盤/顯示接口芯片。它既具有按
6、鍵處理功能,又具有自動顯示功能,在單片機系統中應用很廣泛。8279內部有鍵盤 FIFO (先進先出堆棧)/傳感器,雙重功能的 8×8=64B RAM,鍵盤控制部分可控制 8×8=64 個按鍵或 8×8 陣列方式的傳感器。該芯片能自動消抖并具有雙鍵鎖定保護功能。顯示 RAM容量為 16×8,即顯示器最大配置可達 16 位 LED數碼顯示。d)8279的命令字及其格式 8279有三種工作方式:鍵盤工作方式、顯示工作方式和傳感器工作方式。鍵盤工作方式:雙鍵互鎖和N鍵輪回。雙鍵互鎖是指當有兩個以上按鍵同時按下時,只能識別最后一個被釋放的按鍵,并把其鍵值送入內部F
7、IFO RAM中。N鍵輪回是指當有多個按鍵同時按下時,所有按鍵的鍵值均可按掃描順序依次存入FIFO RAM中。顯示工作方式:是指CPU輸入至8279內部FIFO RAM的數據的輸出格式,有8個字符左端入口顯示、16個字符左端入口顯示、8個字符右端入口顯示、16個字符右端入口顯示四種方式。傳感器方式:是指掃描傳感器陣列時,一旦發現傳感器的狀態發生變化就置位INT向CPU申請中斷。選擇不同的工作方式均是通過CPU對8279送入命令來進行控制。8279共有8種命令,命令寄存器為8位,其中D7D5為命令特征位,D4D0為命令的控制位。CPU對8279寫入的命令數據為命令字,讀出的數據為狀態字。8279
8、共有八條命令,其功能及命令字格式分述如下。(1)鍵盤/顯示方式設置命令字命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 0 D D K K K其中:D7、D6、D5=000為方式設置命令特征位。DD(D4、D3):用來設定顯示方式,如表2-2所示。D4D3顯示方式008個字符顯示,左端入口0116個字符顯示,左端入口108個字符顯示,右端入口1016個字符顯示,右入口表2-2 顯示方式選擇所謂左入口 ,即顯示位置從最左一位(最高位)開始,以后逐次輸入的顯示字符逐個向右順序排列;所謂右入口,則是顯示位置從最右一位(最低位)開始,以后逐次輸入顯示字符時,已有的顯示字符依次向左移
9、動。KKK(D2、D1、D0):用來設定七種鍵盤/顯示掃描方式,如表2-3所示。D2D1D0鍵盤/顯示掃描方式000編碼掃描鍵盤,雙鍵鎖定001譯碼掃描鍵盤,雙鍵鎖定010編碼掃描鍵盤,N鍵輪回011譯碼掃描鍵盤,N鍵輪回100編碼掃描傳感器矩陣101譯碼掃描傳感器矩陣110選通輸入,編碼顯示掃描111選通輸入,譯碼顯示掃描表2-3 鍵盤/顯示掃描方式(2)時鐘編程命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 0 1 P P P P P其中:D7、D6、D5=001為時鐘命令特征位。PPPPP(D4、D3、D2、D1、D0)用來設定外部輸入CLK時鐘脈沖的分頻系數N。N取
10、值范圍為231。如CLK輸入時鐘頻率為2MHZ,PPPPP應被置為10100(N=20),才可獲得8279內部要求的100KHZ的時鐘頻率。(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命令特征位。該命令字只在傳感器方式時使用。在CPU讀傳感器RAM之前,必須用這條命令來設定所讀傳感器RAM中的地址。AAA(D2、D1、D0)為傳感器RAM中的八個字節地址。AI(D4)為自動增量特征位。當AI=1時,每次讀出傳感器RAM后地址自動加1使地址指向下一個存儲單元。
11、這樣,下一個數據便從下一個地址讀出,而不必重新設置讀FIFO/傳感器RAM命令。在鍵盤工作方式中,由于讀出操作嚴格按照先入先出順序,因此,不需使用這條命令。(4)讀顯示RAM命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 0 1 1 AI A A A A其中:D7、D6、D5=011為讀顯示RAM命令字的特征位。該命令字用來設定將要讀出的顯示RAM地址。AAAA(D3、D2、D1、D0)用來尋址顯示RAM中的存儲單元。由于位顯示RAM中有16個字節單元,故需要4位尋址。AI(D4)為自動增量特征位。AI=1時,每次讀出后地址自動加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之前用這個命令字來設定將要寫入的顯示RAM地址。AAAA(D3、D2、D1、D0)為將要寫入的顯示RAM中的存儲單元地址。AI(D4)為自動增量特征位。AI=1時,每次寫入后地址自動加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寫入屏蔽位。當A組的屏蔽位D3=1時,A組的顯示RAM禁止寫入。因此,從CPU寫入顯示器RAM數據時,不會影響A的顯示。這種情況通常在采用雙4位顯示器時使用。因為兩個四位顯示器是相互獨立的。為了給其中一個四位顯示器輸入數據而又不影響另一個四位顯示器,因此必須對另一組的輸入實行屏蔽。BL/A、BL/ B(D1、D0)為消隱設置位。用于對兩組顯示輸出消隱。若BL=1,對應組的顯示輸出被消隱。當BL=0,則恢復顯示。(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存儲器,當CF=1時,執行清除命令后,FIFO RAM被置空,使INT輸出線復位。同時,傳感器RAM的讀出地址也被置為0。CA (D0)為總清的特征位。它兼有CD和CF的聯合效能。在CF =1時,對顯示的清除方式由D3、D2的編碼決定。顯示RAM清除時間約需160us。在此期間狀態
15、字的最高位Du=1,表示顯示無效。CPU不能向顯示RAM寫入數據。(8)結束中斷/錯誤方式設置命令命令格式: D7 D6 D5 D4 D3 D2 D1 D0 1 1 1 E X X X X其中:D7、D6、D5=111為該命令的特征位。此命令有兩種不同的作用。作為結束中斷命令。在傳感器工作方式中使用。每當傳感器狀態出現變化時,掃描檢測電路就將其狀態寫入傳感器RAM,并啟動中斷邏輯,使INT變高,向CPU 請求中斷,并且禁止寫入傳感器RAM。此時,若傳感器RAM 讀出地址的自動遞增特性沒有置位(AI=0),則中斷請求INT在CPU第一次從傳感器RAM讀出數據時就被清除。若自動遞增特征已置位(AI
16、=1),則CPU對傳感器RAM 的讀出并不能清除INT,而必須通過給8279寫入結束中斷/錯誤方式設置命令才能使INT變低。因此,在傳感器工作方式中,此命令用來結束傳感器RAM的中斷請求。作為特定錯誤方式設置命令。在8279已被設定為鍵盤掃描N鍵輪回方式以后,如果CPU給8279又寫入結束中斷/錯誤方式設置命令(E=1),則8279將以一種特定的錯誤方式工作。這種方式的特點是:在8279的消抖周期內,如果發現多個按鍵同時按下,則FIFO狀態字中的錯誤特征位S/E將置1,并產生中斷請求信號和禁止寫入FIFO RAM。上述八種用于確定8279操作方式的命令字皆由D7D6D5特征位確定,輸入8279
17、后能自動尋址相應的命令寄存器。因此,寫入命令字時唯一的要求是使數據選擇信號A0 =1。e)8279的狀態字及其格式 8279的FIFO狀態字,主要用于鍵盤和選通工作方式,以指示FIFO RAM中的字符數和有無錯誤發生。其格式為: D7 D6 D5 D4 D3 D2 D1 D0 DU S/E O U F N N N其中:Du(D7)為顯示無效特征位。當 Du=1表示顯示無效。當顯示RAM由于清除顯示或全清命令尚未完成時,Du=1,此時不能對顯示RAM寫入。S/E(D6)為傳感器信號結束/錯誤特征位。該特征位在讀出FIFO 狀態字時被讀出。而在執行CF =1的清除命令時被復位。當8279工作在傳感
18、器工作方式時,若S/E=1,表示傳感器的最后一個傳感器信號已進入傳感器RAM;而當8279工作在特殊錯誤方式時,若S/E=1則表示出現了多鍵同時按下錯誤。O、U(D5、D4)為超出、不足錯誤特征位。對FIFO RAM 的操作可能出現兩種錯誤:超出或不足。當FIFO RAM 已經充滿時,其它的鍵盤數據還企圖寫入FIFO RAM ,則出現超出錯誤,超出錯誤特征位O(D5)置1;當FIFO RAM已經置空時,CPU還企圖讀出,則出現不足錯誤,不足錯誤特征位U(D4)置1。F(D3)表示FIFO RAM中是否已滿標志,若F=1表示已滿。NNN(D2、D1、D0)表示FIFO RAM中的字符數據個數。f
19、)數據輸入/輸出格式對8279輸入/輸出數據不僅要先確定數據地址口,而且數據存放也要按一定格式,其格式在鍵盤和傳感器方式有所不同。(1) 鍵盤掃描方式數據輸入格式鍵盤的行號、列號及控制鍵格式如下:圖2-2 鍵盤的行號、列號及控制鍵格式控制鍵CNTL、SHIFT為單獨的開關鍵。CNTL與其它鍵連用作特殊命令鍵,SHIFT可作上、下擋控制鍵。(2)傳感器方式數據輸入格式此種方式8位輸入數據為RL0RL7的狀態。格式如下: D7 D6 D5 D4 D3 D2 D1 D0RL7 RL6 RL5 RL4 RL3 RL2 RL1 RL02.74LS138譯碼器1) 74LS138譯碼器在本設計中的作用 掃
20、描計數器采用編碼工作方式2) 74LS138譯碼器的功能分析74LS138是3/8譯碼器,即對3個輸入信號進行譯碼。得到8個輸出狀態。G1,G2A,G2B,為數據允許輸出端,G2A,G2B低電平有效。G1高電平有效。A,B,C為譯碼信號輸出端,Y0Y7為譯碼輸出端,低電平有效。 圖2-3 74LS138 圖2-4 功能表 3) 74LS138譯碼器的技術參數 極限值 電源電壓-7V 輸入電壓 74LS138-7V 工作環境溫度 74LS138-070 貯存溫度- 65150 3. 74LS2401) 74LS240譯碼器在本設計中的作用本設計實驗中主要是為增加LED的驅動電流2) 74LS24
21、0譯碼器的功能分析74LS240 TTL 八反相三態緩沖器/線驅動器引出端符號: 1A,2A 輸入端 , 三態允許端(低電平有效) 1Y8Y 輸出端 圖2-5 74LS240邏輯圖 輸入輸出AYLLHLHXHLZ表2-5 74LS240功能表3) 74LS240譯碼器的技術參數 極限值: 電源電壓 . 7V 輸入電壓 . 5.5V 輸出高阻態時高電平電壓 . 5.5V 工作環境溫度 74LS240 . 070 存儲溫度 . -65150 4. 小鍵盤1) 小鍵盤在本設計中的作用本設計中,小鍵盤用于輸入請求樓層號。2) 小鍵盤的功能分析通常使用的鍵盤是矩陣結構的。對于4×4=16個鍵的
22、鍵盤,采用矩陣方式只要用8條引線和2個8位端口便完成鍵盤的連接。如圖,這個矩陣分為4行4列,如果鍵5按下,則第1行和第1列線接通而形成通路。如果第1行線接低電平,則鍵5的閉合,會使第1列線也輸出低電平。矩陣式鍵盤工作時,就是按行線和列線的電平來識別閉合鍵的。 圖2-5 4×4鍵盤矩陣圖行掃描法識別按鍵的原理如下:先使第0行接低電平,其余行為高電平,然后看第0行是否有鍵閉合。這是通過檢查列線電位來實現的,即在第0行接低電平時,看是否有哪條列線變成低電平。如果有某列線變為低電平,則表示第0行和此列線相交位置上的鍵被按下;如果沒有任何一條列線為低電平,則說明第0行沒有任何鍵被按下。此后,再
23、將第1行接低電平,檢測是否有變為低電平的列線。如此重復地掃描,直到最后一行。在掃描過程中,當發現某一行有鍵閉合時,也就是列線輸入中有一位為0時,便退出掃描,通過組合行線和列線即可識別此刻按下的是哪一鍵。實際應用中,一般先快速檢查鍵盤中是否有鍵按下,然后再確定按鍵的具體位置。為此,先使所有行線為低,然后檢查列線。這時如果列線有一位為0,則說明必有鍵被按下, 采用掃描法可進一步確定按鍵的具體位置。5.七段LED顯示器1) LED作用LED發光二級管(Light-Emitting Diode),在本設計中采用7段數字發光二級管,做為終端顯示。顯示時間的分秒。2)LED功能分析物理構造:LED發光二級
24、管,采用砷化鎵、鎵鋁砷、和磷化鎵等材料制成,其內部結構為一個PN結,具有單向導電性。 圖2-6 LED結構圖數字成像:將七個發光管進行組合,排列成數字圖形8,再根據需要控制七個管的亮與滅,即可顯示出定義數字。字型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數碼表3) LED技術參數表2-7 LED技術參數表6DAC0832數模轉換芯片:DAC0832的作用:本實驗中DA
26、C0832的作用是將系統中的數字信號轉換為電壓信號給直流電機供電。7. 硬件總邏輯圖及其說明 圖2-7 硬件接線圖圖中8279的地址由和A0決定,故數據口地址為7FFEH,命令口地址為7FFFH。所接的16個按鍵,掃描線接在74HC138的譯碼輸出端和上,當為0(SL2SL1SL0=000)時,掃描第1列按鍵,當為0(SL2SL1SL0=001)掃描第2列按鍵,故07號按鍵的鍵值為00H07H,815號按鍵鍵值為08H0FH。當某一按鍵被按下后,鍵值就自動進入緩沖區,當8279內部RAM不空時由INT輸出高電平告知CPU取走,故INT連接CPU的中斷輸入需加一反向器。8279鍵盤配置最大為8&
27、#215;8,若要配置64個按鍵,其它列掃描線可分別連至至上,形成8行8列的按鍵掃描電路。圖中顯示部分段選碼由8279的OUTA3OUTA0、OUTB3OUTB0通過驅動器74LS240提供,位選碼由SL2SL0 經3-8譯碼器通過驅動器74LS240提供。三、控制程序設計1. 控制程序設計思路 初始化板卡以及8279,電梯初始停留在1樓。先調用顯示函數,將停留樓層號在LED上顯示出來。初始停止電機轉動,開始掃描是否有按鍵請求,若沒有,則繼續掃描。直至有請求按鍵按下,此時將鍵值轉換為鍵號。調用運行函數,判斷請求的樓層號。再調用啟動函數,判斷上下行,判斷后,電機轉動,在LED上依次顯示經過的樓層
28、號。當電梯到達請求樓層,電機停止轉動,消除請求樓層號,此時,電梯停留在該樓層。等待按鍵請求,重復以上動作。 2.程序流程圖根據程序設計思路,畫出程序流程圖,并加以修改直至滿意為止。開始初始化初始化顯示是否有鍵按下?鍵值轉換鍵號上下行判斷顯示電機轉動是否到達目的樓層停止,消請求樓層信號YYNN圖3-1 主控程序流程圖3.控制程序.MODELTINYPCIBAR3EQU1CH;8位I/O空間基地址(它就是實驗儀的基地址, ;也為DMA & 32 BIT RAM板卡上的8237提供基地址)Vendor_IDEQU10EBH;廠商ID號Device_IDEQU8376;設備ID號.STACK1
29、00.DATAIO_Bit8_BaseAddress DW?msg0DB'BIOS不支持訪問PCI $'msg1DB'找不到Star PCI9052板卡 $'msg2DB'讀8位I/O空間基地址時出錯$'KEYCOUNT DB?STAY0DB?;電梯所停留的樓層STAY1DB?;電梯之后要到達的樓層DISD DB 0;顯示目的樓層號,初始為0DISD1 DB 0;記錄電梯到達目的樓層的LED編碼D10 DB 0;記錄電梯是否到達10樓ZHUANHDB? ;運動中間值ZHUANH1DB ?ZH0DB ?LED_TABDB 0C0H,0F9H,0A4
30、H,0B0H,99H,92H,82H,0F8H,080H,90H,0FFH;0-10的LED顯示所對應的編碼CMD_8279 DW 00B1H;8279命令字、狀態字地址DATA_8279 DW 00B0H;8279讀寫數據口的地址DA0832 DW 00D0H.CODESTART: MOV AX,DATAMOVDS,AXNOPCALLInitPCICALLModifyAddress;根據PCI提供的基地址,將偏移地址轉化為實地址CALL INIT8279;初始化子程序MOV AH,0MOV KEYCOUNT,0MOVSTAY0,1;電梯初始為1層MOVDX,DATA_8279MOVAL,0F
31、9H;顯示樓層數為1OUTDX,ALCALL DISPLAY1CALL DAC0832B ;使電機停止轉動START1:CALLIfExitJZSTART11;之前沒有鍵按下,ZF=1JMPExitSTART11:CALLSCAN_KEY;鍵掃描JNC START1;沒有按鍵CF=0XCHG AL,KEYCOUNT ; 此時AL中為數據端口的內容INC ALCMP AL,9JNZ START2MOV KEYCOUNT,0;初始化鍵值CALL INIT8279_1;8個數碼塊全有字符顯示后,再按鍵,清除顯示JMP START1START2: XCHGAL,KEYCOUNT CALL KEY_NU
32、M;鍵值轉換為鍵號JMPYYYY:CALLYUNXING0;有鍵請求判斷請求信號,根據請求信號使電機轉動JMP START1START_EXIT:JMP $;8279初始化INIT8279 PROCNEARMOVDX,CMD_8279;CMD_8279為寫命令地址、讀狀地址MOVAL,34H ;可編程時鐘設置,設置分頻系數(20分頻)OUT DX,AL;時鐘初置設置D4-D0對外部輸入時鐘的分頻數MOV AL,0;8*8字符顯示,左邊輸入,外部譯碼鍵掃描方式雙鍵互鎖OUT DX,AL;鍵盤/顯示方式設置命令字CALLINIT8279_1RETINIT8279 ENDPINIT8279_1PRO
33、CNEARCALLCLEAR;清顯示MOVAL,90H;從第一個數碼管開始移位顯示,從起始地址開始,每次讀出后, ;地址自動加1,D4(AI)=0表示要求只讀出一個單元的內容OUTDX,AL;寫顯示RAM命令格式RETINIT8279_1ENDPCLEARPROCNEARMOVDX,CMD_8279MOVAL,0DEH; 清除命令,D4D3D2=111將顯示RAM全部置1,D1=1,FIFO存儲器 ;被置空(無數據),且使中斷輸出線IRQ復位,同時使傳感器RAM的讀出地址復位為0OUTDX,ALWAIT1:INAL,DX;讀狀態字TESTAL,80H;D7位是否為1JNZWAIT1; 顯示RA
34、M清除完畢嗎?D7=1表示RAM處在清除命令的執行過程RETCLEARENDPSCAN_KEYPROCNEARMOVDX,CMD_8279INAL,DX;讀狀態,D2D1D0表示FIFO RAM中存放的字符個數,D3判斷其是;否已滿READ_FIFO:ANDAL,7JZNO_KEY;是否有鍵按下READ:MOV AL,40H;D4=0只讀出一個單元內容,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層有請求JZ L1CMP AL,1;第6層有請求JZ L6CMP AL,2;第7層有請求JZ L7CMP AL,3;第8層有請求JZ L8ACMP AL,4;第9層有請求JZ L9A CMP AL,5;第10層有請求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 ;跳轉的下降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 ;電梯需要上升時電機的轉動情況及對應的LED的變化情況MOV AL,STAY0INC ALPUSHDXMOV ZHUANH,ALCALLDAC0832 ;使電機轉動MOV AL,ZHUANHPOPDXA0:PUSH DXMOV ZH0,ALPOP DXMOV AL,ZH0MOV ZHUANH1,AL XLAT
40、OUT DX,AL;顯示相應樓層 MOV DISD1,ALCALLDISPLAY1CALL DL1S;延時1SMOV AL,ZHUANH1INC ALLOOP A0MOV DISD,0 ;目的樓層到達后,復位CALL DENGMIECALL DAC0832B ;使電機停止RETQIDONG0 ENDPQIDONG1 PROCNEAR ;電梯需要下降時電機的轉動情況及對應的LED的變化情況MOV AL,STAY0DEC ALPUSHDXMOV ZHUANH,AL ;記錄AL的值CALLDAC0832 ;使電機轉動MOV AL,ZHUANH POPDXA1:PUSH DXMOV ZHUANH1,A
41、LXLATOUT DX,AL ;顯示相應樓層MOV DISD1,AL ;記錄目的樓層的LED顯示的編碼CALL DISPLAY1CALL DL1S ;延時1SMOV AL,ZHUANH1DEC ALPOP DXLOOP A1MOV DISD,0CALL DENGMIE ;到達后目的樓層,燈滅掉CALL DAC0832B ;使電機停止轉動RETQIDONG1 ENDPDL1S PROCNEARPUSH AXPUSH DXMOV DX,1000;延時1SMOV AH,0FFH;星研公司提供的軟中斷INT 21HPOP DXPOP AXRETDL1SENDPDAC0832PROCNEARMOVDX,
42、DA0832MOVAL,021H;轉換電壓數字量OUTDX,ALRETDAC0832ENDPDAC0832B PROC NEARMOVDX,DA0832MOVAL,00HOUTDX,ALRETDAC0832B ENDPDENGMIE PROC NEAR CMP DISD,0 ;判斷是否到達目的樓層,到達后準備清空目的樓層顯示燈 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、;是否到達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等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 酒店客房培訓
- 2025合同范本:商鋪租賃合同協議書
- 2025年版權保留轉讓合同
- 護理培訓成果匯報
- 2025商業店鋪租賃合同范本2
- 2025租賃合同的擔保方式
- 2025網約車租賃服務合同
- 2025勞動合同范本標準模板
- 2025標準設備購買合同參考范本
- 2025合作伙伴合同書 企業合作伙伴合同撰寫
- 金屬非金屬露天礦山及尾礦庫重大事故隱患判定標準解讀
- 2024年東南亞紙巾商銷(AFH)市場深度研究及預測報告
- 餐廳服務員中級試題+答案
- 2024中考數學試題研究有關中點專題復習一 課件
- 廣西2024年廣西廣播電視技術中心招聘42人筆試歷年典型考題及考點附答案解析
- 重慶市潼南區六校2022-2023學年七年級下學期期中地理試題
- 中國子宮內膜增生管理指南(2022)解讀
- DZ∕T 0054-2014 定向鉆探技術規程(正式版)
- 手術室病理標本的固定
- 酸棗仁湯的劑型研究
- 19J102-1 19G613混凝土小型空心砌塊墻體建筑與結構構造
評論
0/150
提交評論