

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p> 自動(dòng)存包柜的設(shè)計(jì)與仿真</p><p><b> 摘 要</b></p><p> 本課題是基于單片機(jī)的自動(dòng)存包柜設(shè)計(jì)。自動(dòng)存包柜是新一代的存包柜,具有功能實(shí)用、操作簡(jiǎn)單、管理方便、安全可靠等特點(diǎn),能夠更好的服務(wù)于不同市場(chǎng)的廣大群眾,使用者可以根據(jù)簡(jiǎn)明清晰的操作說(shuō)明自行完成存包取包工作。本系統(tǒng)由MCS-51單片機(jī)構(gòu)成核心控制系統(tǒng),整個(gè)系統(tǒng)由
2、主控部分、鍵盤顯示控制部分、執(zhí)行部分三部分組成,通過(guò)隨機(jī)密碼的產(chǎn)生和核對(duì)完成自動(dòng)存包取包過(guò)程。本設(shè)計(jì)中各元器件便于安裝且操作簡(jiǎn)單,能基本實(shí)現(xiàn)存包取包功能。</p><p> 關(guān)鍵詞:自動(dòng)存包柜;單片機(jī);隨機(jī)密碼</p><p> Design and Simulation of Automatic Lockers </p><p><b> ABST
3、RACT</b></p><p> This topic is microcontroller-based automatic lockers.Automatic lockers is a new generation of lockers, with a practical, simple operation, easy management, safe and reliable, able to
4、 better serve the broad masses of the different markets, users are based on a clear and concise instructions to complete the deposit bags to take the package. The system consists of MCS-51 microcontroller core control sy
5、stem, the entire system from the main section, the keyboard display control part of the implement</p><p> Key words :Automatic lockers; microcontroller; random password</p><p><b> 目 錄&l
6、t;/b></p><p><b> 1 緒 論1</b></p><p> 1.1 自動(dòng)存包柜的種類1</p><p> 1.2 自動(dòng)存包柜控制系統(tǒng)的基本原理及技術(shù)要求2</p><p> 1.3 系統(tǒng)總體設(shè)計(jì)目標(biāo)功能3</p><p> 2 系統(tǒng)方案概述及硬件設(shè)計(jì)3
7、</p><p> 2.1自動(dòng)存包柜系統(tǒng)框圖3</p><p> 2.2主機(jī)電路核心器件的選擇3</p><p> 2.3 8031的系統(tǒng)擴(kuò)展8</p><p> 3 輸入輸出電路12</p><p> 3.1鍵盤設(shè)計(jì)12</p><p> 3.2顯示系統(tǒng)設(shè)計(jì)13<
8、/p><p> 3.3 輸出系統(tǒng)功能擴(kuò)展14</p><p> 4 系統(tǒng)程序設(shè)計(jì)及仿真15</p><p> 4.1 主程序模塊設(shè)計(jì)15</p><p> 4.2 鍵輸入子程序模塊16</p><p> 4.3 系統(tǒng)仿真18</p><p><b> 結(jié) 束 語(yǔ)21
9、</b></p><p> 參 考 文 獻(xiàn)22</p><p><b> 附 錄23</b></p><p><b> 致 謝32</b></p><p> 自動(dòng)存包柜的設(shè)計(jì)與仿真</p><p><b> 1 緒 論</b&
10、gt;</p><p> 近年來(lái),隨著生活水平的提高,人們對(duì)于社會(huì)消費(fèi)品的質(zhì)量要求在不斷增加,對(duì)技術(shù)服務(wù)也提出了更高的要求。在超市、綜合商店、個(gè)人商店等人流量大的地方,常常需要對(duì)顧客隨帶物品進(jìn)行存儲(chǔ)。為了更好的為廣大顧客服務(wù),在一些商場(chǎng)、影院尤其是超市等公共場(chǎng)合通常有電腦控制的自動(dòng)存包柜,顧客進(jìn)入商場(chǎng)購(gòu)物時(shí)可寄存一些隨身攜帶的較重物件或多余的現(xiàn)金,十分便利。顧客可以根據(jù)簡(jiǎn)明清晰的操作說(shuō)明自行的完成存取物品的工作
11、,自助式存取可以避免開(kāi)放式存取帶來(lái)的不必要的糾紛,又可以節(jié)約人員開(kāi)支,達(dá)到減員增效的目的。</p><p> 自動(dòng)存包系統(tǒng)的設(shè)計(jì)要求有高的可靠性,包括系統(tǒng)結(jié)構(gòu)、硬件電路和運(yùn)行軟件的可靠性。安全性是設(shè)計(jì)自動(dòng)存包柜時(shí)必須考慮的另一個(gè)重要因素。安全性是指系統(tǒng)能夠保證人和財(cái)物的安全,電子存包柜要有緊急情況保護(hù)等措施。友好的人機(jī)界面對(duì)于系統(tǒng)來(lái)說(shuō)也是相當(dāng)重要的??梢暬娜藱C(jī)接口操作起來(lái)比較方便,用戶可以直觀的了解到存包柜的
12、各種信息,通過(guò)圖形進(jìn)行各種操作并清楚地顯示電子存包柜的各種信息。電腦控制的存包柜無(wú)需專職的管理人員且安全可靠,頗受顧客的信任[1]。</p><p> 1.1 自動(dòng)存包柜的種類</p><p> 自動(dòng)存包柜又名電子存包柜,電子寄存柜。主要由以下幾種類型:</p><p> ?。?)機(jī)設(shè)條碼式電子存包柜:存物時(shí),先按“存”鍵,寄存柜自動(dòng)打印一張密碼條,使用者抽出密
13、碼紙,對(duì)應(yīng)的箱門自動(dòng)打開(kāi),存好后關(guān)上箱門;取物時(shí),直接將條碼紙?jiān)趻呙杩趻呙?,?duì)應(yīng)的箱門會(huì)自動(dòng)打開(kāi),取物完成后關(guān)上箱門。</p><p> ?。?)指紋式電子存包柜:以使用者指紋作為寄存的憑證;存物時(shí),先按一下“存”鍵,然后在指紋采集窗里采集指紋,機(jī)器會(huì)把該指紋與分配給使用者使用的寄存箱的箱號(hào)結(jié)合起來(lái),并將信息自動(dòng)記錄下來(lái),同時(shí)自動(dòng)打開(kāi)該箱,供使用者存物,存完后使用者自己關(guān)好箱門;取物時(shí),先按一下“取”鍵,然后在指
14、紋采集窗里采集指紋,寄存柜將指紋數(shù)據(jù)與先前記錄下的進(jìn)行比對(duì),正確后才會(huì)打開(kāi)該箱供使用者取物。</p><p> ?。?)非接觸IC卡電子存包柜:以使用者所持IC卡(即射頻卡)作為寄存的憑證;存物時(shí),先按一下“存”鍵再刷卡(即讓存包柜讀取卡號(hào)),存包柜應(yīng)先識(shí)別是否為該場(chǎng)所的IC卡,若不是則拒絕存物;若是,機(jī)器會(huì)把該卡號(hào)與分配給使用者使用的寄存箱的箱號(hào)結(jié)合起來(lái),并將信息自動(dòng)記錄下來(lái),同時(shí)自動(dòng)打開(kāi)該箱,供使用者存物,存
15、完后自己關(guān)好箱門;取物時(shí),先按一下“取”鍵再刷卡,寄存柜將讀取的卡號(hào)與先前記錄下的進(jìn)行比對(duì),正確后打開(kāi)該箱供使用者取物(同時(shí)機(jī)器會(huì)自動(dòng)記錄當(dāng)時(shí)的時(shí)間、卡號(hào)以備查詢)。</p><p> ?。?)聯(lián)網(wǎng)型非接觸IC卡電子存包柜:聯(lián)網(wǎng)型非接觸IC卡電子存包柜基本功能與非接觸IC卡電子存包柜一致,另外增加了網(wǎng)絡(luò)通訊模塊,上位管理軟件等,以實(shí)現(xiàn)寄存狀態(tài)聯(lián)網(wǎng)監(jiān)控,分段收費(fèi),報(bào)表打印等功能[2]。</p><
16、;p> 1.2 自動(dòng)存包柜控制系統(tǒng)的基本原理及技術(shù)要求</p><p> 本系統(tǒng)采用MCS-51單片機(jī)做控制器,具有較高的自動(dòng)化程度,當(dāng)顧客需要存包的時(shí)候,可以自行到存包柜前按“ON/C”鍵,單片機(jī)接收到一個(gè)脈沖信號(hào),并通過(guò)系統(tǒng)I/O口發(fā)出相應(yīng)的信號(hào),數(shù)碼管顯示8位隨機(jī)密碼,然后一發(fā)光二極管亮,顧客即可存包。當(dāng)顧客需要取包時(shí),先按“=”鍵,系統(tǒng)進(jìn)入取包狀態(tài),然后輸入密碼,輸入完畢后按“+”鍵表示確定,系
17、統(tǒng)比較密碼一致后,對(duì)應(yīng)二極管滅,顧客即可將包取出。</p><p> 根據(jù)“自動(dòng)存包”這一目的要求,做如下設(shè)計(jì)安排:</p><p> 第一部分:CPU核心控制部分,由單片機(jī)8031、復(fù)位電路、時(shí)鐘電路等構(gòu)成,是整個(gè)系統(tǒng)的核心。</p><p> 第二部分:鍵盤顯示控制部分。對(duì)8個(gè)數(shù)碼管和2個(gè)按鍵進(jìn)行管理,8個(gè)數(shù)碼管用于顯示2位柜號(hào)兒和8位密碼,14個(gè)按鍵分別
18、為10個(gè)數(shù)字鍵和4個(gè)功能鍵。通過(guò)這些鍵盤,用戶就可以完成所有的操作。</p><p> 第三部分:執(zhí)行機(jī)構(gòu)部分。它是通過(guò)8031的并行口擴(kuò)展一片8255A芯片,并通過(guò)8255A控制8個(gè)燈的狀態(tài)(亮滅)來(lái)模擬柜子的存包取包的過(guò)程。</p><p> 軟件部分主要采用我們自己設(shè)定的一種與柜號(hào)兒相關(guān)聯(lián)的算法來(lái)產(chǎn)生一組8位的隨機(jī)密碼,而密碼的產(chǎn)生、核對(duì)過(guò)程就對(duì)應(yīng)存包、取包的過(guò)程。</p&
19、gt;<p> 本系統(tǒng)具有如下特色:(1)經(jīng)濟(jì)實(shí)用、操作簡(jiǎn)單且便于安裝。</p><p> (2)能產(chǎn)生一組8位隨機(jī)密碼,密碼使用一次有效;有三次容錯(cuò)功能和解鎖功能,因此系統(tǒng)安全可靠。</p><p> (3)利用軟件產(chǎn)生隨機(jī)密碼而不是硬件,使得硬件更為簡(jiǎn)潔、可靠、穩(wěn)定。</p><p> 1.3 系統(tǒng)總體設(shè)計(jì)目標(biāo)功能</p>&
20、lt;p> ?。?)完成矩陣鍵盤輸入命令進(jìn)行取包的任務(wù);(2)存包時(shí)系統(tǒng)能產(chǎn)生隨機(jī)密碼;(3)隨機(jī)數(shù)在單片機(jī)中的保存及刪除;(4)液晶數(shù)碼管的選擇及與單片機(jī)的接口電路設(shè)計(jì);(5)發(fā)光二極管模擬柜子的實(shí)現(xiàn)。</p><p> 2 系統(tǒng)方案概述及硬件設(shè)計(jì)</p><p> 2.1自動(dòng)存包柜系統(tǒng)框圖</p><p> 自動(dòng)存包柜由電子電路和機(jī)械兩部分組成,本設(shè)
21、計(jì)的存包柜主要實(shí)現(xiàn)電子電路方面的功能,它可以通過(guò)單片機(jī)完成密碼的隨機(jī)產(chǎn)生、密碼的確認(rèn)和顯示以及用發(fā)光二極管模擬柜子的開(kāi)閉狀態(tài)等功能。系統(tǒng)框圖如圖2-1所示:</p><p> 圖2-1 自動(dòng)存包柜的系統(tǒng)框圖</p><p> 從硬件上看,它的部分組成分別是:發(fā)光二極管,通過(guò)亮滅來(lái)模擬柜子的開(kāi)閉狀態(tài);電源,為電路提供一個(gè)5V 的工作電壓;單片機(jī),整個(gè)電路的核心部分;LED 數(shù)碼管,用于顯
22、示柜號(hào)和密碼;還有鍵盤部分,鍵盤有14個(gè)按鍵,其中的十個(gè)分別 為 0-9的數(shù)字鍵,其他四個(gè)分別為存包鍵(隨機(jī)產(chǎn)生密碼)、取包鍵(確認(rèn)密碼)、確定鍵、取消鍵。</p><p> 2.2主機(jī)電路核心器件的選擇</p><p> 單片機(jī)是在一塊硅片上集成了微處理器,存儲(chǔ)器和各種輸入、輸出接口,這樣的一塊芯片具有一臺(tái)計(jì)算機(jī)的屬性,因而被稱為單片微型計(jì)算機(jī),簡(jiǎn)稱單片機(jī)。單片機(jī)的優(yōu)點(diǎn)是體積小,重量
23、輕,抗干擾能力強(qiáng),對(duì)環(huán)境要求不高,價(jià)格低廉,可靠性高,靈活性好,開(kāi)發(fā)也較為容易[3]。</p><p> MCS-51單片機(jī)是美國(guó)Intel公司于1980年推出的產(chǎn)品,與MCS-48單片機(jī)相比,它的結(jié)構(gòu)更先進(jìn),功能更強(qiáng),在原來(lái)的基礎(chǔ)上增加了更多的電路單元和指令,指令數(shù)達(dá)111條,MCS-51單片機(jī)可以算是相當(dāng)成功的產(chǎn)品,一直到現(xiàn)在,MCS-51系列或其兼容的單片機(jī)仍是應(yīng)用的主流產(chǎn)品,我們也以這一代表性的機(jī)型進(jìn)行
24、系統(tǒng)的設(shè)計(jì)。MCS-51系列單片機(jī)主要包括8031、8051和8751等通用產(chǎn)品。</p><p> 8031內(nèi)部包括一個(gè)8位CPU、128個(gè)字節(jié)RAM,21個(gè)特殊功能寄存器、4個(gè)8位并行I/O口,1個(gè)全雙工串行口,2個(gè)16位定時(shí)器/計(jì)數(shù)器,需要外部EPROM芯片。</p><p> 8051是在8031的基礎(chǔ)上,片內(nèi)又集成有4K ROM,作為程序存儲(chǔ)器,是一個(gè)程序不超過(guò)4K字節(jié)的小系
25、統(tǒng)。</p><p> 8751是在8031的基礎(chǔ)上,增加4K字節(jié)的EPROM,它構(gòu)成了一個(gè)程序小于4KB的系統(tǒng)。用戶可以將程序固化在EPROM內(nèi),可以反復(fù)修改程序。但是它的價(jià)格比較昂貴。8031外擴(kuò)一片4KB EPROM就相當(dāng)于8751,它的最大優(yōu)點(diǎn)是價(jià)格便宜。</p><p> 經(jīng)過(guò)計(jì)算和考慮,我們這里所設(shè)計(jì)的自動(dòng)存包柜是一個(gè)比較簡(jiǎn)單的控制系統(tǒng),用8031就完全可以達(dá)到我們?cè)O(shè)計(jì)的要
26、求,實(shí)現(xiàn)存包柜的各項(xiàng)功能,所以我們選用8031作為我們的主機(jī)電路核心器件。</p><p> 8031單片機(jī)是Intel公司生產(chǎn)的MCS-51系列單片機(jī)中的一種,除無(wú)片內(nèi)ROM外,其余特性與MCS-51單片機(jī)基本一樣。</p><p> 8031的主要性能包括:(1)與MCS-51位控制器產(chǎn)品系列兼容。(2)寬工作電壓范圍,VCC可為2.7V~6V。(3)全靜態(tài)工作,可從0Hz至16H
27、z。(4)128×8位內(nèi)部RAM。(5)32條可編程I/O線。(6)兩個(gè)16位定時(shí)器/計(jì)數(shù)器。(7)中斷結(jié)構(gòu)具有5個(gè)中斷源和2個(gè)優(yōu)先級(jí)[4]。</p><p> 2.2.1 8031內(nèi)部結(jié)構(gòu)</p><p> 8031內(nèi)部有8個(gè)部件組成,即CPU、時(shí)鐘電路、數(shù)據(jù)存儲(chǔ)器、串行口、并行口(P0~P3)、定時(shí)計(jì)數(shù)器和中斷系統(tǒng),它們均由單一總線連接并被集成在一塊半導(dǎo)體芯片上,即組成了
28、單片微型計(jì)算機(jī)[5]。內(nèi)部結(jié)構(gòu)如圖2-2所示:</p><p> 圖2-2 8031的內(nèi)部結(jié)構(gòu)</p><p> ?。?)CPU中央處理器</p><p> 中央處理器是8031的核心,它決定了單片機(jī)的主要功能特性。中央處理器主要由運(yùn)算部件和控制部件組成。它的功能是產(chǎn)生控制信號(hào),把數(shù)據(jù)從存儲(chǔ)器或輸入口送到CPU,或?qū)PU數(shù)據(jù)寫入存儲(chǔ)器或送到輸出端口。還可以對(duì)數(shù)
29、據(jù)進(jìn)行邏輯和算術(shù)的運(yùn)算。</p><p><b> ?。?)時(shí)鐘電路</b></p><p> 8031內(nèi)部有一個(gè)頻率最大為12MHz的時(shí)鐘電路,它為單片機(jī)產(chǎn)生時(shí)鐘序列,但需要外接石英晶體做振蕩器和微調(diào)電容調(diào)整頻率。</p><p><b> (3)內(nèi)存</b></p><p> 內(nèi)部存儲(chǔ)器可
30、分做程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器,但在8031中無(wú)片內(nèi)程序存儲(chǔ)器。</p><p><b> ?。?)定時(shí)/計(jì)數(shù)器</b></p><p> 8031有兩個(gè)16位的定時(shí)計(jì)數(shù)器,每個(gè)定時(shí)器和計(jì)數(shù)器都可以設(shè)置成定時(shí)的方式和計(jì)數(shù)的方式,但只能用其中的一個(gè)功能,以定時(shí)或計(jì)數(shù)結(jié)果對(duì)計(jì)算機(jī)進(jìn)行控制。</p><p><b> ?。?)并行I/O口&l
31、t;/b></p><p> MCS-51有四個(gè)8位的并行I/O口,P0,P1,P2,P3,以實(shí)現(xiàn)數(shù)據(jù)的并行輸入輸出。</p><p><b> (6)串行口</b></p><p> 它有一個(gè)全雙工的串行口,它可以實(shí)現(xiàn)計(jì)算機(jī)間或單片機(jī)同其它外設(shè)之間的通信,該串行口功能較強(qiáng),可以作為全雙工異步通訊的收發(fā)器,也可以作為同步移位器用。&
32、lt;/p><p><b> ?。?)中斷控制系統(tǒng)</b></p><p> 8031有五個(gè)中斷源,既外部中斷兩個(gè),定時(shí)計(jì)數(shù)器中斷兩個(gè),串行中斷一個(gè),全部的中斷分為高和低的兩個(gè)輸出級(jí)[6]。</p><p> 2.2.2 8031引腳介紹</p><p> 采用40管腳雙列直插式DIP封裝,引腳如圖2-3所示:<
33、/p><p> 圖2-3 8031引腳圖</p><p><b> 引腳功能說(shuō)明:</b></p><p> Vcc 40引腳 主電源引腳接+5V電壓;</p><p> Vss 20引腳 接地;</p><p> XTAL1 19腳 接外部晶體的一個(gè)引腳。在單片機(jī)內(nèi)部,它是一個(gè)反相放
34、大器的輸入端,這個(gè)放大器構(gòu)成了片內(nèi)振蕩器。當(dāng)采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),此引腳應(yīng)接地;對(duì)CHMOS單片機(jī),此引腳作為驅(qū)動(dòng)端。 XTAL2(18腳)接外晶體的另一端。在單片機(jī)內(nèi)部,接至上述振蕩器的反相放大器的輸出端。采用外部振蕩器時(shí),對(duì)HMOS單片機(jī),該引腳接外部振蕩器的信號(hào),即把外部振蕩器的信號(hào)直接接到內(nèi)部時(shí)鐘發(fā)生器的輸入端;對(duì)XHMOS,此引腳應(yīng)懸浮。</p><p> RST/VPD 9腳
35、 當(dāng)振蕩器運(yùn)行時(shí),在此腳上出現(xiàn)兩個(gè)機(jī)器周期的高電平將使單片機(jī)復(fù)位。推薦在此引腳與VSS引腳之間連接一個(gè)約8.2k的下拉電阻,與VCC引腳之間連接一個(gè)約10μF的電容,以保證可靠地復(fù)位。VCC掉電期間,此引腳可接上備用電源,以保證內(nèi)部RAM的數(shù)據(jù)不丟失。當(dāng)VCC主電源下掉到低于規(guī)定的電平,而VPD在其規(guī)定的電壓范圍(5±0.5V)內(nèi),VPD就向內(nèi)部RAM提供備用電源。 ALE/PROG 30腳 當(dāng)訪問(wèn)外部存貯器時(shí),AL
36、E(允許地址鎖存)的輸出用于鎖存地址的低位字節(jié)。即使不訪問(wèn)外部存儲(chǔ)器,ALE端仍以不變的頻率周期性地出現(xiàn)正脈沖信號(hào),此頻率為振蕩器頻率的1/6。因此,它可用作對(duì)外輸出的時(shí)鐘,或用于定時(shí)目的。然而要注意的是,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),將跳過(guò)一個(gè)ALE脈沖。ALE端可以驅(qū)動(dòng)(吸收或輸出電流)8個(gè)LS型的TTL輸入電路。</p><p> PSEN 29腳 此腳的輸出是外部程序存儲(chǔ)器的讀選通信號(hào)。在從外部程序存儲(chǔ)器
37、取指令(或常數(shù))期間,每個(gè)機(jī)器周期兩次PSEN有效。但在此期間,每當(dāng)訪問(wèn)外部數(shù)據(jù)存儲(chǔ)器時(shí),這兩次有效的PSEN信號(hào)將不出現(xiàn)。PSEN同樣可以驅(qū)動(dòng)(吸收或輸出)8個(gè)LS型的TTL輸入。 </p><p> EA/VPP 31引腳 當(dāng)EA端保持高電平時(shí),訪問(wèn)內(nèi)部程序存儲(chǔ)器。當(dāng)EA保持低電平時(shí),則只訪問(wèn)外部程序存儲(chǔ)器,不管是否有內(nèi)部程序存儲(chǔ)器。對(duì)于常用的8031來(lái)說(shuō),無(wú)內(nèi)部程序存儲(chǔ)器,所以EA腳必須常接地,這樣才能
38、只選擇外部程序存儲(chǔ)器。 P0口 39腳32腳 是雙向8位三態(tài)I/O口,在外接存儲(chǔ)器時(shí),與地址總線的低8位及數(shù)據(jù)總線復(fù)用,能以吸收電流的方式驅(qū)動(dòng)8個(gè)LS型的TTL負(fù)載。 P1口 腳至8腳 是準(zhǔn)雙向8位I/O口。由于這種接口輸出沒(méi)有高阻狀態(tài),輸入也不能鎖存,故不是真正的雙向I/O口。P1口能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。</p><p> P2口 21腳至28腳 是準(zhǔn)雙向8位I
39、/O口。在訪問(wèn)外部存儲(chǔ)器時(shí),它可以作為擴(kuò)展電路高8位地址總線送出高8位地址。在對(duì)EPROM編程和程序驗(yàn)證期間,它接收高8位地址。P2可以驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載。 P3口 10腳至17腳 是準(zhǔn)雙向8位I/O口,在MCS-51中,這8個(gè)引腳還用于專門功能,是復(fù)用雙功能口。P3能驅(qū)動(dòng)(吸收或輸出電流)4個(gè)LS型的TTL負(fù)載[7]。 作為第一功能使用時(shí),就作為普通I/O口用,功能和操作方法與P1口相同。第二
40、功能如表1所示:</p><p> 表1 P3口各引腳的第二功能</p><p> 2.3 8031的系統(tǒng)擴(kuò)展</p><p> 8031具有很強(qiáng)的擴(kuò)展功能,允許擴(kuò)展各種外圍電路以補(bǔ)充片內(nèi)資源不足,適應(yīng)特定應(yīng)用的需要,擴(kuò)展內(nèi)容包括數(shù)據(jù)存儲(chǔ)器、程序存儲(chǔ)器、I/O接口等擴(kuò)展結(jié)構(gòu)。系統(tǒng)擴(kuò)展圖如圖2-4所示:</p><p> 圖2-4 80
41、31系統(tǒng)擴(kuò)展結(jié)構(gòu)圖</p><p> 在這里我們介紹外部地址鎖存器74LS373擴(kuò)展芯片8255A。 </p><p><b> 74LS373介紹</b></p><p> MCS-51單片機(jī)由于受引腳數(shù)的限制,數(shù)據(jù)線和地址線是復(fù)用的,由P0口兼用。為了將它們分離出來(lái),以便同單片機(jī)片外的擴(kuò)展芯片正確的連接,需要在單片機(jī)外部增加地址鎖存器
42、。我們這本設(shè)計(jì)中使用74LS373。74LS373是一種帶有三態(tài)門的8D鎖存器,其引腳如圖2-5所示:</p><p> 圖2-5 鎖存器74LS373的引腳</p><p><b> 其引腳的功能如下:</b></p><p> D7~D0:8位數(shù)據(jù)輸入線</p><p> Q7~Q0:8位數(shù)據(jù)輸出線</
43、p><p> LE:數(shù)據(jù)輸入鎖存選通信號(hào),高電平有效。當(dāng)該信號(hào)為高電平的時(shí)候,外部數(shù)據(jù)選通到內(nèi)部鎖存器,負(fù)跳變時(shí),數(shù)據(jù)鎖存到鎖存器中。</p><p> OE:數(shù)據(jù)輸出允許信號(hào),低電平有效。當(dāng)該信號(hào)為低電平的時(shí)候,三態(tài)門打開(kāi),鎖存器中數(shù)據(jù)輸出到數(shù)據(jù)輸出線。當(dāng)該信號(hào)為高電平的時(shí)候,輸出線為高阻態(tài)[8]。</p><p><b> 系統(tǒng)I/O接口擴(kuò)展<
44、/b></p><p> 由于我們采集的數(shù)據(jù)量較多,因此CPU的I/O口線不夠用,所以我們使用8255A擴(kuò)展I/O口,以滿足系統(tǒng)的要求。8255A是Intel公司生產(chǎn)的通用可編程并行I/O接口芯片。</p><p> 1 8255A內(nèi)部結(jié)構(gòu) </p><p> 8255A內(nèi)部由四部分電路組成。它們是A口、B口和C口,A組控制器和B組控制器,數(shù)據(jù)緩總線沖
45、器及讀寫控制邏輯,如圖2-6所示:</p><p> 圖2-6 8255A的內(nèi)部結(jié)構(gòu)</p><p> ?。?) A口、B口和C口。A口、B口和C口均為8位I/O數(shù)據(jù)口,但結(jié)構(gòu)上略有差別。A口由一個(gè)8位的數(shù)據(jù)輸出緩沖/鎖存器和一個(gè)8位的數(shù)據(jù)輸入緩沖/鎖存器組成。B口由一個(gè)8位的數(shù)據(jù)輸出緩沖/鎖存器和一個(gè)8位的數(shù)據(jù)輸入緩沖器組成。三個(gè)端口都可以和外設(shè)相連,分別傳送外設(shè)的輸入/輸出數(shù)據(jù)或控制
46、信息。</p><p> ?。?) A、B組控制電路。這是兩組根據(jù)CPU的命令字控制8255工作方式的電路。A組控制A口及C口的高4位,B組控制B口及C口的低4位。</p><p> ?。?) 數(shù)據(jù)總線緩沖器。它是一個(gè)8位的雙向三態(tài)驅(qū)動(dòng)器,用于與單片機(jī)的數(shù)據(jù)總線相連,傳送數(shù)據(jù)或控制信息。</p><p> ?。?) 讀/寫控制邏輯。這部分電路接收MCS-51送來(lái)的讀
47、/寫命令和選口地址,用于控制對(duì)8255A的讀/寫[9]。</p><p> 2 8255A的引腳功能</p><p> 8255A有40條引腳,采用雙列直插式封裝。引腳如圖2-7所示:</p><p> 圖2-7 8255A引腳圖</p><p> ?。?)數(shù)據(jù)總線(8條):</p><p> D0~D7:三
48、態(tài)雙向數(shù)據(jù)總線,8255A與CPU數(shù)據(jù)傳送的通道,當(dāng)CPU執(zhí)行輸入輸出指令時(shí),通過(guò)它實(shí)現(xiàn)8位數(shù)據(jù)的讀/寫操作,控制字和狀態(tài)信息也通過(guò)數(shù)據(jù)總線傳送。</p><p> (2)控制總線(6條):</p><p> RESET:復(fù)位信號(hào),輸入高電平有效。一般和單片機(jī)的復(fù)位相連,復(fù)位后,8255A所有內(nèi)部寄存器清0,所有口都為輸入方式。</p><p> CS:片選信
49、號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí)有效,表示芯片被選中,允許8255A與CPU進(jìn)行通訊。</p><p> RD:讀信號(hào)線,當(dāng)這個(gè)輸入引腳為低電平時(shí),允許8255A通過(guò)數(shù)據(jù)總線向CPU發(fā)送數(shù)據(jù)或狀態(tài)字。</p><p> WR:寫入信號(hào),當(dāng)這個(gè)輸入引腳為低電平時(shí),允許CPU將數(shù)據(jù)或控制字寫入8255A。</p><p> A0、A1:地址輸入線。這兩位的4種組合0
50、0、01、10、11分別用于選擇A、B、C口和控制寄存器。</p><p> (3)并行I/O總線(24條):這些總線用于和外設(shè)相連,分別與A、B、C口相對(duì)應(yīng),用于8255A和外設(shè)之間傳送數(shù)據(jù),共分三組:</p><p> PA0~PA7:端口A輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入鎖存器。</p><p> PB0~PB7:端口B輸
51、入輸出線,一個(gè)8位的I/O鎖存器,一個(gè)8位的輸入輸出緩沖器。</p><p> PC0~PC7:端口C輸入輸出線,一個(gè)8位的數(shù)據(jù)輸出鎖存器/緩沖器,一個(gè)8位的數(shù)據(jù)輸入緩沖器。</p><p> (4)電源線(2條):VCC為+5V電源線,允許變化±10%;GND為地線。</p><p><b> 3 輸入輸出電路</b><
52、/p><p> 自動(dòng)存包柜的設(shè)計(jì)中輸入輸出部分是十分重要的一個(gè)環(huán)節(jié),輸入輸出系統(tǒng)就是人與計(jì)算機(jī)之間建立聯(lián)系,交換信息的設(shè)備,即人機(jī)交互設(shè)備。在這里我們需要輸入存包取包命令,檢測(cè)箱內(nèi)是否有物體,在顧客需要的時(shí)候檢測(cè)密碼,并自動(dòng)打開(kāi)柜門,還需要顯示是否有空箱以及空箱的位置,來(lái)為顧客提供選擇。</p><p><b> 3.1鍵盤設(shè)計(jì)</b></p><
53、p> 鍵盤在單片機(jī)應(yīng)用系統(tǒng)中能實(shí)現(xiàn)向單片機(jī)輸入數(shù)據(jù)、命令等功能,是人工干預(yù)單片機(jī)的主要手段。該系統(tǒng)中鍵盤的主要功能是用于顧客選擇適當(dāng)?shù)陌翊姘冒存I來(lái)控制柜門的打開(kāi),鍵盤是用8031單片機(jī)經(jīng)74LS373擴(kuò)展一片8255A構(gòu)成鍵盤借口電路的。</p><p> 鍵盤的閉合與否,映在行線輸出電壓上就是呈現(xiàn)出高電平或低電平,相反如果高電平表示斷開(kāi)的話,那么低電平就表示鍵閉合,所以通過(guò)對(duì)行線電平的高低狀態(tài)的
54、檢測(cè),便可以確認(rèn)按鍵按下與否。常用的鍵盤接口分為獨(dú)立式按鍵接口和矩陣式鍵盤接口。我們?cè)谶@里選用矩陣式鍵盤接口,如圖3-1所示:</p><p> 圖3-1 矩陣式鍵盤</p><p> 矩陣式鍵盤工作原理:按鍵設(shè)置在行、列線交點(diǎn)上,行列線分別連接到按鍵開(kāi)關(guān)的兩端,行線通過(guò)上拉電阻接到+5V電源上。平時(shí)無(wú)按鍵按下時(shí),行線處于高電平狀態(tài),而當(dāng)有按鍵按下時(shí),行線電平狀態(tài)將由與此行線相連的列線
55、電平?jīng)Q定。列線電平如果為低電平,則行線電平為低電平;列線電平如果為高,則行線電平也為高電平。這是識(shí)別矩陣鍵盤按鍵是否被按下的關(guān)鍵所在。由于矩陣鍵盤中行、列 線為多鍵共用,各按鍵均影響該鍵在行和列的電平,因此各按鍵彼此將互相發(fā)生影響,所以必須將行、列線信號(hào)配合起來(lái)并作適當(dāng)?shù)奶幚?,才能確定閉合鍵的位置[10]。</p><p> 鍵盤實(shí)際是一組按鍵開(kāi)關(guān)的集合,是向系統(tǒng)提供操作人員干預(yù)命令和數(shù)據(jù)的接口設(shè)備這里我們選用
56、4*4矩陣鍵盤接口,用14個(gè)按鍵控制箱門的打開(kāi),其中,數(shù)字鍵10個(gè),分別為0~9,功能鍵4個(gè),“ON/C”表示存包鍵,“=”表示取包鍵,“+”表示確定鍵,“—”表示取消鍵。如圖3-2所示:</p><p> 圖3-2 4*4矩陣鍵盤</p><p> 該鍵盤工作方式采用的是外部中斷掃描,中斷式鍵盤掃描原理是:當(dāng)有鍵按下將會(huì)觸發(fā)一個(gè)中斷源,提醒處理器進(jìn)行鍵值掃描查詢。鍵盤的中斷方式一般有
57、定時(shí)中斷和外部中斷兩種,本系統(tǒng)采用的是外部中斷INT0。單片機(jī)先讓行線輸出低電平,當(dāng)有鍵按下時(shí)列線電平不全為高,將觸發(fā)外部中斷 INT0,單片機(jī)進(jìn)入中斷后先延時(shí)去抖動(dòng),再掃描查尋鍵盤,讀出鍵值,然后處理相應(yīng)的鍵值處理子程序,無(wú)鍵按下則不進(jìn)入中斷,單片機(jī)不掃描,從而節(jié)約了大量的資源[11]。</p><p><b> 3.2顯示系統(tǒng)設(shè)計(jì)</b></p><p> 為
58、了使操作人員及時(shí)掌握生產(chǎn)情況,在一般的微型計(jì)算機(jī)控制系統(tǒng)或者智能儀器當(dāng)中,都配有顯示程序。常用的顯示器件有:①顯示和記錄儀表,②CRT顯示終端,③LED或者LCD顯示器,④大屏幕顯示器。本次設(shè)計(jì)所采用的是LED數(shù)碼管。</p><p> LED數(shù)碼管是由發(fā)光二極管組成,由于材料的不同,可以發(fā)出各種單色光線。根據(jù)發(fā)光二極管內(nèi)部的連接方式不同,又有共陰極或共陽(yáng)極兩種形式。如圖3-3所示:</p>&l
59、t;p> 共陰極 共陽(yáng)極</p><p> 圖3-3 LED顯示器</p><p> LED數(shù)碼管具有結(jié)構(gòu)簡(jiǎn)單,體積小,功耗低,響應(yīng)速度快,易于匹配,壽命長(zhǎng),可靠性高等優(yōu)點(diǎn)。本次設(shè)計(jì)我們使用兩個(gè)4位數(shù)碼管來(lái)顯示8位密碼,數(shù)碼管如圖3-4所示:</p><p> 圖3-4 4位數(shù)碼顯示管</p&
60、gt;<p> 3.3 輸出系統(tǒng)功能擴(kuò)展</p><p> 由于本人能力有限,考慮不周,此次設(shè)計(jì)的存包柜與實(shí)際應(yīng)用的自動(dòng)存包柜相差甚遠(yuǎn),功能不全,而且還存在一些問(wèn)題。按實(shí)際應(yīng)用中,根據(jù)各種需要,可以在此設(shè)計(jì)基礎(chǔ)上進(jìn)行擴(kuò)展。如:</p><p> (1)限位開(kāi)關(guān):利用電磁鐵或可控硅、電磁耦合器,再加上一些機(jī)械裝置,就能實(shí)現(xiàn)柜門的自動(dòng)開(kāi)關(guān)。</p><p
61、> ?。?)光電開(kāi)關(guān):對(duì)存包柜進(jìn)行檢測(cè),實(shí)時(shí)顯示無(wú)物的箱號(hào)。</p><p> ?。?)打印機(jī):將產(chǎn)生的隨機(jī)密碼打印出來(lái)。</p><p> ?。?)語(yǔ)音服務(wù):用戶存取包時(shí),語(yǔ)音致詞“歡迎使用”、“請(qǐng)關(guān)門”、“謝謝使用”等。</p><p> ?。?)報(bào)警服務(wù):用戶忘記關(guān)門時(shí),提醒顧客關(guān)門。</p><p> 4 系統(tǒng)程序設(shè)計(jì)及仿真&
62、lt;/p><p> 為了使本系統(tǒng)的整個(gè)程序清晰明白,便于調(diào)試和修改,程序設(shè)計(jì)時(shí)把系統(tǒng)的各種功能分為若干部分,于每一部分功能編制相對(duì)獨(dú)立的程序塊,對(duì)各程序在運(yùn)行的時(shí)候各負(fù)其責(zé)。</p><p> 4.1 主程序模塊設(shè)計(jì)</p><p> 該模塊的功能包括顯示的初始化,判斷是否有空箱,鍵盤掃描,密碼掃描等功能。存儲(chǔ)柜通上電以后,單片機(jī)上電,首先進(jìn)行程序的初始化,包括
63、定時(shí)器,外部中斷等初始化,以及各參數(shù)初始值的設(shè)定。默認(rèn)存儲(chǔ)柜為初始狀態(tài),根據(jù)存包指令,掃面計(jì)數(shù)器的存儲(chǔ)包狀態(tài),用數(shù)碼管顯示存儲(chǔ)柜號(hào)和密碼。主流程圖如圖4-1所示:</p><p> 4-1 主程序流程圖</p><p> 4.2鍵輸入子程序模塊</p><p> 鍵盤采用掃描工作方式,輸入程序功能有以下4個(gè)方面:</p><p>
64、(1) 判斷鍵盤上有無(wú)鍵閉合,其方法為掃描口PA0~7輸出全“0”,讀PC口的狀態(tài),若PC0~3為全“1”(鍵盤上行線全為高電平)則鍵盤上沒(méi)有閉合鍵,若PC0~3不全為“1”,則有鍵處于閉合狀態(tài)。</p><p> (2) 去除鍵的機(jī)械抖動(dòng),其方法為判斷出鍵盤上有鍵閉合后,延遲一段時(shí)間再判別鍵盤的狀態(tài),若仍有鍵閉合,則認(rèn)為鍵上有一個(gè)鍵處于穩(wěn)定的閉合期,否則認(rèn)為是鍵的抖動(dòng)。</p><p>
65、; (3) 判別鍵閉合的鍵號(hào),方法對(duì)鍵盤的列線進(jìn)行掃描,掃描口PA0~7依次輸出:</p><p> 相應(yīng)的依次讀PC口的狀態(tài),若PC0~3為全“1”則列線為“0”的這一列上沒(méi)有鍵閉合。閉合鍵的鍵號(hào)等于為低電平的列號(hào)加上為低電平的行的首鍵號(hào)。</p><p> (4) 使CPU對(duì)鍵的一次閉合僅做一次處理,采用的方法為等待閉合鍵釋放后在作處理。</p><p>
66、 流程圖如圖4-2所示:</p><p> 圖4-2 鍵輸入子程序流程圖</p><p><b> 4.3 系統(tǒng)仿真</b></p><p> 本設(shè)計(jì)我們采用Proteus仿真,軟件調(diào)試先將事先編寫好的各模塊部分程序?qū)懭敕抡孳浖锏膯纹瑱C(jī)中,然后通過(guò)Proteus仿真軟件進(jìn)行仿真。如有錯(cuò)誤或?qū)崿F(xiàn)不了預(yù)想的功能,則需要對(duì)程序進(jìn)行修改以達(dá)到
67、設(shè)計(jì)的最終要求。此次設(shè)計(jì)中,燈亮表示柜中存有物品,燈滅表示柜空。</p><p> ?。?)各元器件的連接圖,如圖4-3所示</p><p> 圖4-3 各元器件的連接</p><p> (2)按“ON/C”鍵(即存包鍵),數(shù)碼管顯示8位隨機(jī)密碼,作為取包時(shí)的核對(duì)密碼,然后密碼消失,對(duì)應(yīng)的發(fā)光二極管亮,即可存包。仿真結(jié)果如圖4-4,4-5所示:</p>
68、;<p> 圖4-4 產(chǎn)生8位隨機(jī)密碼</p><p> 圖4-5 燈亮,對(duì)應(yīng)柜子可存包</p><p> ?。?)按“=”鍵(即取包鍵),顯示取包狀態(tài),輸入密碼后,按“+”確定,系統(tǒng)需要對(duì)密碼與原先保存的密碼進(jìn)行比較,如果密碼正確,對(duì)應(yīng)的發(fā)光二級(jí)管熄滅,即可取包。如圖4-6所示:</p><p> 圖4-6 密碼正確,燈滅,即可取包</p
69、><p><b> 結(jié) 束 語(yǔ)</b></p><p> 在做畢業(yè)設(shè)計(jì)這短短的幾個(gè)月當(dāng)中,我不僅鞏固了以前學(xué)到的專業(yè)知識(shí),更重要的是也學(xué)到了許多新知識(shí),在本系統(tǒng)中,基本模擬了超市存包的功能,以8031為核心CPU進(jìn)行系統(tǒng)任務(wù)調(diào)度,內(nèi)部的隨機(jī)數(shù)模塊、發(fā)光二極管模塊、箱子模擬模塊和鍵盤輸入模塊,通過(guò)系統(tǒng)主程序來(lái)調(diào)度實(shí)現(xiàn)系統(tǒng)所需要的功能。從而了解了51系列單片機(jī)的具體使用,
70、加深了對(duì) LED數(shù)碼管、發(fā)光二極管、矩陣鍵盤等常規(guī)元件的使用。也學(xué)會(huì)了設(shè)計(jì)一個(gè)系統(tǒng)的步驟、方法和設(shè)計(jì)思想。在畢業(yè)設(shè)計(jì)之初,首先尋找素材,確定選題,從中知道這次設(shè)計(jì)的目的、要求以及要完成的工作。開(kāi)題之后進(jìn)入資料 檢索階段,通過(guò)在網(wǎng)上及圖書(shū)館查找資料,了解了自動(dòng)存包控制系統(tǒng)的發(fā)展?fàn)顩r以及現(xiàn)狀,從中得到了許多對(duì)我們?cè)O(shè)計(jì)有用的東西,并最終確定一套方案。此方案是利用單片機(jī)來(lái)實(shí)現(xiàn)的,所以翻閱了大量的單片機(jī)書(shū)籍。因?yàn)橐郧暗膶W(xué)習(xí)是圍繞51系列的單片機(jī),
71、所以此次設(shè)計(jì)我選擇8031為CPU。在圖書(shū)館和和網(wǎng)站上查到了好多的單片機(jī)和傳感器方面的知識(shí),這對(duì)設(shè)計(jì)是很有必要的,它對(duì)后面的工作有很大的幫助。當(dāng)然設(shè)計(jì)總是在不斷的改進(jìn)和完善中完成的,每一個(gè)器件的選擇都要有很多的考慮。在本次設(shè)計(jì)中也不斷的更換新的器件</p><p><b> 參 考 文 獻(xiàn)</b></p><p> [1]劉德?tīng)I(yíng),張志霞,李志偉.單片機(jī)原理及接口技
72、術(shù)[M].北京:中國(guó)水利水電出版社,2006:1~ 54,90~121. </p><p> [2]潘新民,王燕芳.微型計(jì)算機(jī)控制技術(shù)[M].北京:電子工業(yè)出版社,2003:71~99,360~364.</p><p> [3]宋浩,田豐.單片機(jī)原理及應(yīng)用[M].北京:清華大學(xué)出版社,2005:1~39,134~179.</p><p> [4]薛棟梁.MCS
73、-51/151/251單片機(jī)原理與應(yīng)用[M].北京:中國(guó)水利水電出版社,2001: 254~ 261. </p><p> [5]王路茜.電子設(shè)計(jì)技術(shù)[J].維普中文期刊.2006年02期. </p><p> [6]方佩敏.新編傳感器原理應(yīng)用電路詳解[J].北京:電子工業(yè)出版社,1994:112~117.</p><p> [7]何立民.單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì)[
74、M].北京:北京航空航天大學(xué)出版社,2002:97~104,149~156.</p><p> [8]姜德譚,范茂軍.新編電子電路大全[M].北京:計(jì)量出版社,1985:90~121. </p><p> [9]丁元杰.單片微機(jī)原理及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2003:40~77. </p><p> [10]何立民.單片機(jī)應(yīng)用技術(shù)選編[M].北京:北
75、京航空航天大學(xué)出版社,1997:100~103.</p><p> [11]李廣第.單片機(jī)基礎(chǔ)[M].北京:北京航空航天大學(xué),1999:90~148. </p><p><b> 附 錄</b></p><p><b> 主程序清單</b></p><p><b> ORG 0
76、0H</b></p><p> JMP MAIN</p><p><b> ORG 23H</b></p><p> JMP COM-INT</p><p><b> 主程序開(kāi)始</b></p><p><b> ORG 30H&
77、lt;/b></p><p> MAIN: MOV SP,#30H</p><p> LCALL REST</p><p> LCALL COMM</p><p><b> JMP $</b></p><p><b> 初始化</b><
78、;/p><p> REST: MOV P0,#00H</p><p> MOV P2,#255</p><p> CLR BEEP</p><p> MOV P1,#255</p><p><b> RET</b></p><p>&l
79、t;b> 串口初始化</b></p><p> 設(shè)置串行口工作方式1,定時(shí)器1作為波特率發(fā)生器</p><p> 波特率設(shè)置為 2400 ;</p><p> COMM: MOV TMOD,#20H</p><p> MOV TL1,#0F3H</p><p> MOV T
80、H1,#0F3H</p><p><b> SETB EA</b></p><p><b> SETB ES</b></p><p> MOV PCON,#00H</p><p> MOV SCON,#50H</p><p> SETB TR1&
81、lt;/p><p><b> RET</b></p><p><b> 串口中斷服務(wù)程序</b></p><p> COM_INT: CLR ES</p><p><b> CLR RI</b></p><p> MOV A,SBUF<
82、;/p><p><b> MOV P1,A</b></p><p> MOV DPTR,#TAB</p><p> CJNE A,#0FFH,IN-1</p><p> MOV SBUF,#255</p><p> JNB TI,$</p><p>
83、;<b> CLR TI</b></p><p><b> SETB ES</b></p><p><b> RETI</b></p><p> IN-2: CJNE A,#2,IN-3</p><p> MOVC A,@A+DPTR</
84、p><p> MOV SBUF,A</p><p> JNB TI,$</p><p><b> CLR TI</b></p><p><b> SETB ES</b></p><p><b> RETI</b></p>
85、<p> IN-3: MOV A,#03H</p><p> MOVC A,@A+DPTR</p><p> MOV SBUF,A</p><p> JNB TI,$</p><p><b> CLR TI</b></p><p><b&g
86、t; SETB ES</b></p><p><b> RETI</b></p><p> TAB: DB '2','H','E','J'</p><p><b> END</b></p><p>
87、<b> 鍵輸入字程序清單:</b></p><p> KEYI: ACALL KS1</p><p> JNZ LK1</p><p> NI: ACALL DIR</p><p> AJMP KEYI</p><p> LK1:
88、 ACALL DIR</p><p> ACALL DIR</p><p> ACALL KS1</p><p> JNZ LK2</p><p> ACALL DIR</p><p> AJMP KEYI</p><p> LK
89、2: MOV R2,#0FEH</p><p> MOV R4,#00H</p><p> LK4: MOV DPTR,#7F01H</p><p> MOV A,R2</p><p> MOVX @DPTR,A </p><p> INC
90、 DPTR</p><p> INC DPTR</p><p> MOVX A,@DPTR</p><p> JB ACC.0,LONE</p><p> MOV A,#00H</p><p> AJMP LKP</p><p
91、> LONE: JB ACC.1,LTWO</p><p> MOV A,#08H</p><p> AJMP LKP</p><p> LTWO: JB ACC.2,LTHR</p><p> MOV A,#08H</p>
92、<p> AJMP LKP</p><p> LTHR: JB ACC.3,NEXT</p><p> MOV A,#18H</p><p> LKP: ADD A,R4</p><p> PUSH A</p>&l
93、t;p> LK3: ACALL DIR</p><p> ACALL KS1</p><p> JNZ LK3</p><p> POP A</p><p><b> RET</b></p><p> NEXT:
94、 INC R4</p><p> MOV A,R2</p><p> JNB ACC.7,KND</p><p> RL A</p><p> MOV R2,A</p><p> AJMP LK4</p><p>
95、 KND: AJMP KEYI</p><p> KS1: MOV DPTR,#7F01H</p><p> MOV A,#00H</p><p> MOVX @DPTR,A</p><p> INC DPTR</p><p&g
96、t; INC DPTR</p><p> MOVX A,@DPTR</p><p> CPL A</p><p> ANL A,#0FH</p><p><b> RET</b></p><p><b> 8255A工作
97、:</b></p><p> MOV A,#90H</p><p> MOV DPTR,#0FF7H</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0FF7CH</p><p> MOVX A,@DPTR</p>
98、<p> MOV DPTR,#0FF7DH</p><p> MOV A,#DATA1</p><p> MOVX @DPTR,A</p><p> MOV DPTR,#0FF7EH</p><p> MOV A,#DATA2</p><p> MOVX
99、 @DPTR,A</p><p><b> 顯示子程序:</b></p><p> MOV DPTR,#8000H</p><p> MOV A,#01H</p><p> MOVX @DPTR,A</p><p> ACALL F-BUSY</
100、p><p> MOV A,#30H</p><p> MOVX @DPTR,A</p><p> ACALL F-BUSY</p><p> MOV A,#0EH</p><p> MOV @DPTR,A</p><p> ACALL
101、 F-BUSY</p><p> MOV A,#4AH</p><p> MOV @DPTR,A</p><p> ACALL F-BUSY</p><p> STORE: SETB VSDA;</p><p> SETB VSCL;&
102、lt;/p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p> CLR VSDA;
103、</p><p><b> NOP;</b></p><p> CLR VSDA;</p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b&g
104、t;</p><p><b> NOP;</b></p><p> CLR VSCL;</p><p><b> RET;</b></p><p> STOP: CLR VSDA;</p><p> SETB
105、 VSCL;</p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p> SETB
106、 VSDA;</p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p> CL
107、R VSDA;</p><p> CLR VSCL;</p><p><b> RET;</b></p><p> MACK: CLR VSDA;</p><p> SETB VSCL;</p><p>&
108、lt;b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p> CLR VSCL;</p><p&
109、gt; SETB VSDA;</p><p><b> RET;</b></p><p> MNACK: SETB VSDA;</p><p> SETB VSCL;</p><p><b> NOP;</b></p><p>
110、;<b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p> CLR VSCL;</p><p> CLR VSDA;</p><p><b>
111、 RET;</b></p><p> CACK: SETB VSDA;</p><p> SETB VSCL;</p><p> CLR F0;</p><p> MOV C,VSDA;</p><p> JNC CEND;<
112、;/p><p> SETB F0;</p><p> CEND: CLR VSCL;</p><p><b> RET;</b></p><p> WRBYT: MOV R0,#08H;</p><p> WLP:
113、RLC,A;</p><p> JC WR1;</p><p> AJMP WR0;</p><p> WLP1: DJNZ R0,WLP;</p><p><b> RET;</b></p><p> WR1: SETB
114、 VSDA;</p><p> SETB VSCL;</p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;&l
115、t;/b></p><p> CLR VSCL;</p><p> CLR VSDA;</p><p> AJMP WLP1;</p><p> WR0: CLR VSDA;</p><p> SETB VSCL;</p>&l
116、t;p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p><b> NOP;</b></p><p> CLR VSCL;</p>&
117、lt;p> AJMP WLP1;</p><p> RDBYT: MOV R0,#08H;</p><p> RLP: SETB VSDA;</p><p> SETB VSCL;</p><p> MOV C,VSDA;</p><p>
118、; MOV A,R2;</p><p> RLC A;</p><p> MOV R2,A;</p><p> CLR VSCL;</p><p> DJNZ R0,RLP;</p><p><b> RET;</b></p
119、><p> WRNBYT: MOV R3,NUMBYT;</p><p> LCALL STA;</p><p> MOV A,SLA;</p><p> LCALL WRBYT;</p><p> LCALL CACK;</p><
120、p> JB F0,WRNBYT;</p><p> MOV R1,#MTD;</p><p> WRDA: MOV A,@R1;</p><p> LCALL WRBYT;</p><p> LCALL CACK;</p><p> JB
121、 F0,WRNBYT;</p><p> INC R1;</p><p> DJNZ R3,WRDA;</p><p> LCALL STOP;</p><p><b> RET;</b></p><p> RDNBYT: MOV
122、R3,NUMBYT;</p><p> LCALL STA;</p><p> MOV A,SLA;</p><p> LCALL WRBYT;</p><p> LCALL CACK;</p><p> JB F0,RDNBYT;</p>&l
溫馨提示
- 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ù)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 畢業(yè)設(shè)計(jì)----自動(dòng)存包柜系統(tǒng)設(shè)計(jì)
- 畢業(yè)設(shè)計(jì)---全自動(dòng)存包柜的設(shè)計(jì)
- 畢業(yè)論文--超市存包柜密碼鎖的設(shè)計(jì)
- 畢業(yè)論文_超市存包柜密碼鎖的設(shè)計(jì)
- 基于plc自動(dòng)存包柜的設(shè)計(jì)與開(kāi)發(fā)
- rfid自動(dòng)儲(chǔ)物柜的軟件設(shè)計(jì)畢業(yè)論文
- 圖像濾波的設(shè)計(jì)仿真與比較【自動(dòng)化畢業(yè)論文】
- 南師大自助存包柜招標(biāo)文件
- 進(jìn)銷存系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)畢業(yè)論文
- 進(jìn)銷存系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 畢業(yè)論文---電氣控制柜的設(shè)計(jì)
- 智能藥柜畢業(yè)論文
- 畢業(yè)論文:低壓配電柜設(shè)計(jì)
- mns柜體工藝設(shè)計(jì)畢業(yè)論文1
- 畢業(yè)論文:低壓配電柜設(shè)計(jì)
- 35kv開(kāi)關(guān)柜的設(shè)計(jì)與優(yōu)化畢業(yè)論文
- 汽車進(jìn)銷存系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)-畢業(yè)論文
- 低壓配電柜設(shè)計(jì)-電機(jī)與電器畢業(yè)論文
- 5035kv開(kāi)關(guān)柜設(shè)計(jì)與優(yōu)化設(shè)計(jì)畢業(yè)論文
- matlab仿真設(shè)計(jì)-畢業(yè)論文
評(píng)論
0/150
提交評(píng)論