基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)_第1頁
基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)_第2頁
基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)_第3頁
基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)_第4頁
基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)_第5頁
已閱讀5頁,還剩64頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、編號:024“達(dá)盛杯”電子畢業(yè)設(shè)計(jì)暨創(chuàng)新設(shè)計(jì)大獎賽參評作品參賽題目基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)單位名稱忻州師范學(xué)院計(jì)算機(jī)科學(xué)與技術(shù)系 參賽人員劉峰龍、張俊義 指導(dǎo)教師胡 國 華 二零零六年六月 基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)劉峰龍、張俊義設(shè)計(jì) 指導(dǎo)教師 胡國華(忻州師范學(xué)院 計(jì)算機(jī)科學(xué)與技術(shù)系 山西忻州 )摘 要: 本文主要介紹以EL-MUT-III型單片機(jī)教學(xué)實(shí)驗(yàn)系統(tǒng)為核心的,基于485總線的分布式模擬IC卡電子門鎖系統(tǒng)。系統(tǒng)由三臺EL-MUT-III型單片機(jī)模擬實(shí)現(xiàn),主機(jī)主要由EL-MUT-III型單片機(jī)、8051CPU模塊、RS-485總線模塊組成;從機(jī)主要

2、由EL-MUT-III型單片機(jī)、8051CPU模塊、RS-485總線模塊、IC卡模塊和步進(jìn)電機(jī)模塊組成。各從機(jī)的主要功能是對用戶進(jìn)行IC卡識別和接收用戶的密碼輸入,然后將用戶輸入的密碼通過RS-485總線傳輸?shù)街鳈C(jī),并接收主機(jī)的應(yīng)答信號,若密碼正確,則驅(qū)動步進(jìn)電機(jī)轉(zhuǎn)動來開門,若密碼錯誤,則可要求用戶重新輸入密碼,任一用戶可輸入三次密碼。主機(jī)的主要功能是通過RS-485總線接收各從機(jī)發(fā)送的密碼并對其進(jìn)行驗(yàn)證,然后發(fā)送相應(yīng)的應(yīng)答信號。本系統(tǒng)運(yùn)行穩(wěn)定,出錯情況較少。系統(tǒng)具有良好的擴(kuò)展性和通用性,可擴(kuò)展成具有不同特點(diǎn)的多個類似系統(tǒng),在高校實(shí)驗(yàn)教學(xué)中可廣泛使用。關(guān)鍵詞:單片機(jī) RS-485總線 多機(jī)通信

3、 電子門鎖The Distributed Simulated System of IC Card Electronic Lock Based on the RS-485 BusAbstract: This paper mainly introduces the distributed simulated System of IC card Electronic Lock, which takes EL-MUT-III single chip microcomputer as core and RS-485 bus as basic. the system is completed by thr

4、ee EL-MUT-III single chip microcomputer. The host machine consists of EL-MUT-III single chip microcomputer. 8051 CPU module and RS-485 bus module. The sub machine consists of EL-MUT-III single chip microcomputer, 8051 CPU, RS-485 bus, IC card and stepping motor. The main function of each sub machine

5、 is to carry out the IC card recognition and receive the password input from the user. Then it transmits the password to the host machine through RS-485 bus, and receives the response signal of the host machine. If the password is correct, it actuates the stepping motor to revolve. If the password i

6、s worry, it is necessary for the user to input the password again, but any user can input the password for only three times. the main function of the host machine is to receive and verity the password received from the sub machine, and transmits the response signal.The system operates stably and mak

7、es little mistake. it was good extension and versatility, and may expand many similar systems of different characteristics. So it can be widely applied in the experiment teaching in universities. Keywords: Single chip microcomputer; RS-485 bus; The communications of many computers; Electronic Lock;1

8、 選題論證(1)在硬件方面,我們配備了EL-MUT-III型單片機(jī)、8051CPU模塊、RS-485總線模塊組成;從機(jī)主要由EL-MUT-III型單片機(jī)、8051CPU模塊、RS-485總線模塊、IC卡模塊和步進(jìn)電機(jī)模塊等硬件設(shè)備,能夠滿足本實(shí)驗(yàn)的需求。(2)在技術(shù)方面,我們已經(jīng)掌握了開發(fā)此系統(tǒng)的80C51匯編指令,能夠滿足程序設(shè)計(jì)的需求。(3)在需求方面,由于目前現(xiàn)在的各大高校單片機(jī)的教學(xué)過程中普遍存在著原理難以理解的難題,我們希望能夠開發(fā)更多的實(shí)驗(yàn)來滿足各大高校的教學(xué)需求,從而提高單片機(jī)教學(xué)的效果。2 特點(diǎn)功能總述2.1 系統(tǒng)主要功能(1)采用RS-485總線實(shí)現(xiàn)多機(jī)通訊;(2)通過步進(jìn)電

9、機(jī)正轉(zhuǎn)、反轉(zhuǎn)來模擬開、關(guān)門;(3)采用IC卡存儲用戶的密碼并進(jìn)行用戶身份識別;(4)利用LCD顯示用戶提示信息;(5)利用LED顯示輸入密碼信息;(6)通過點(diǎn)亮發(fā)光二極管來實(shí)現(xiàn)預(yù)警。2.2 其他輔助功能(1)從機(jī)在輸入密碼時,對用戶的輸入信息提供修改的功能,功能鍵為實(shí)驗(yàn)箱鍵盤的ESC/CBRK鍵。(2)從機(jī)輸入密碼結(jié)束后,按實(shí)驗(yàn)箱鍵盤的ENTER鍵,發(fā)送輸入密碼信息。(3)使用定時器功能實(shí)現(xiàn)延時,以實(shí)現(xiàn)多機(jī)通訊的同步。3 系統(tǒng)總體方案、實(shí)現(xiàn)原理本系統(tǒng)主機(jī)硬件以8051CPU為主控制模塊,以 LED顯示模塊、LCD顯示模塊、485總線為受控模塊。從機(jī)硬件以8051CPU為主控模塊,以LED顯示模

10、塊、LCD顯示模塊、485總線、IC卡模塊為受控模塊。一、定義IC卡信息主要包括用戶信息和密碼兩部分,用戶信息是用來識別IC卡是否有效。密碼字節(jié)中存入了用戶自定義的密碼。二、設(shè)計(jì)電子門鎖系統(tǒng)系統(tǒng)開始運(yùn)行時,主機(jī)等待各從機(jī)的呼叫。從機(jī)讀取IC卡信息,若IC卡用戶信息正確,則向主機(jī)發(fā)送呼叫信號,主機(jī)在沒有跟其它從機(jī)通信時,收到呼叫信號就發(fā)送應(yīng)答信號并處于等待接受狀態(tài)。從機(jī)收到應(yīng)答信號,發(fā)送IC卡密碼信息,主機(jī)接受后,將數(shù)據(jù)儲存到數(shù)據(jù)單元中并處于等待接受狀態(tài)。用戶通過從機(jī)鍵盤輸入開門密碼,單片機(jī)對鍵盤進(jìn)行掃描和識別,將數(shù)據(jù)儲存到數(shù)據(jù)單元中并由LED顯示輸入的內(nèi)容。當(dāng)密碼輸入六位后,從機(jī)由485總線將

11、其發(fā)送給主機(jī)。主機(jī)將接收到的密碼數(shù)據(jù)與本機(jī)儲存的正確密碼進(jìn)行核對,如核對無誤則向從機(jī)發(fā)送正確信號,否則發(fā)送錯誤信號。從機(jī)接收到主機(jī)發(fā)送的正確信號后,驅(qū)動步進(jìn)電機(jī)正向轉(zhuǎn)動模擬開門,同時發(fā)光二極管綠燈亮,并由LCD顯示“密碼正確”提示信息;延時過后,驅(qū)動步進(jìn)電機(jī)反向轉(zhuǎn)動模擬關(guān)門,開關(guān)門的過程中都有LCD的提示信息。從機(jī)接收到主機(jī)發(fā)送的錯誤信號后,將提示用戶繼續(xù)輸入密碼,密碼可輸入三次。若三次輸入密碼錯誤,則主機(jī)會報(bào)警。每一次用戶輸入密碼錯誤,從機(jī)都通過LCD顯示相應(yīng)的提示信息。本系統(tǒng)的硬件電路簡單可靠,能準(zhǔn)確地實(shí)現(xiàn)題目要求的各種功能,采用485總線傳輸信號非常準(zhǔn)確,并能夠有效的延長傳輸距離。系統(tǒng)的

12、框圖如圖1所示。485總線LCD顯示LED顯示EL-MUT-III型單片機(jī)從機(jī)B鍵盤數(shù)碼管LCD顯示LED顯示EL-MUT-III型單片機(jī)主機(jī)IC卡模塊鍵盤步進(jìn)電機(jī)數(shù)碼管LCD顯示LED顯示EL-MUT-III型單片機(jī)從機(jī)A鍵盤數(shù)碼管485總線圖1 系統(tǒng)結(jié)構(gòu)框圖4 系統(tǒng)使用說明4.1 系統(tǒng)連線一、主機(jī)連線(1) 實(shí)驗(yàn)箱鍵盤的KA10KA12接8279的KA0KA2,RL10RL17接8279的RL0RL7。(2) 實(shí)驗(yàn)箱8255的PA0PA7接LCD的DB0DB7,PC7接BUSY,PC0接REQ,CS8255接CS0。(3)273模塊的片選信號CS273接CS1,0007接LED1LED8。

13、(4)8051CPU模塊的RXD接485總線的RO2,TXD接485總線的DI1。/RE2接實(shí)驗(yàn)箱K2(置低電平),DE1接實(shí)驗(yàn)箱K1(置高電平)。二、從機(jī)連線(1)實(shí)驗(yàn)箱鍵盤的KA10KA12接8279的KA0KA2,RL10RL17接8279的RL0RL7。(2)8051CPU模塊的P14接IC卡模塊CLK,P15接I0,P16接POWER,P17接SW。(3)從機(jī)A的8051CPU模塊的RXD接485總線的RO2,TXD接485總線的DI1。/RE2接實(shí)驗(yàn)箱K2(置低電平),DE1接接實(shí)驗(yàn)箱K1(置高電平)。(4)從機(jī)B的8051CPU模塊的P10接步進(jìn)電機(jī)模塊的A插孔,P11接B插孔,

14、P12接A插孔,P13接B插孔。(從機(jī)A的步進(jìn)電機(jī)模塊外接在第四臺實(shí)驗(yàn)設(shè)備箱上,從機(jī)A的8051CPU模塊的P10接步進(jìn)電機(jī)模塊的A插孔,P11接B插孔,P12接A插孔,P13接B插孔。)(5) 實(shí)驗(yàn)箱8255的PA0PA7接LCD的DB0DB7,PC7接BUSY,PC0接REQ,CS8255接CS0。(6)273模塊的片選信號CS273接CS1,0007接LED1LED8。三、主機(jī)與從機(jī)連線(1)從機(jī)B的8051CPU模塊的RXD接主機(jī)8051CPU模塊的TXD,從機(jī)B的8051CPU模塊的TXD接8051CPU模塊的RXD。(2)從機(jī)A的RS-485模塊的收發(fā)器一接主機(jī)的RS-485模塊的

15、收發(fā)器二,從機(jī)A的RS-485模塊的收發(fā)器二接主機(jī)的RS-485模塊的收發(fā)器一。四、寫卡程序連線(1) 實(shí)驗(yàn)箱鍵盤的KA10KA12接8279的KA0KA2,RL10RL17接8279的RL0RL7。(2) 實(shí)驗(yàn)箱8255的PA0PA7接LCD的DB0DB7,PC7接BUSY,PC0接REQ,CS8255接CS0。(3)8051CPU模塊的P10接IC卡模塊CLK,P11接I0,P12接POWER,P13接SW。4.2 操作步驟第一步:準(zhǔn)備好實(shí)驗(yàn)設(shè)備,按實(shí)驗(yàn)連線方法連接電路。第二步:準(zhǔn)備有效IC卡(方法為運(yùn)行ICWRITE.ASM程序,將IC卡的00-06單元中寫入#0ABH值以及用戶6位密碼

16、)。第三步:主機(jī)運(yùn)行程序djxzj.asm,從機(jī)A運(yùn)行程序djxcjA.asm,從機(jī)B運(yùn)行程序djxcjB.asm。第四步:用戶在從機(jī)A或從機(jī)B隨機(jī)插入有效IC卡。第五步:按LCD提示輸入六位密碼,按ENTER鍵確認(rèn),按ESC/CBRK鍵取消。第六步:若輸入密碼正確,步進(jìn)電機(jī)轉(zhuǎn)動開門,延時后,步進(jìn)電機(jī)反向轉(zhuǎn)動關(guān)門。第七步:若輸入密碼錯誤,可重新輸入密碼,密碼可輸入三次。三次輸入錯誤后主機(jī)報(bào)警。5 實(shí)驗(yàn)程序,并附加說明和注釋及軟件流程圖5.1 實(shí)驗(yàn)源程序1、從機(jī)A源程序(見附一)2、從機(jī)B源程序(見附二)3、主機(jī)源程序(見附三)4、寫卡源程序(見附四)5.2 從機(jī)流程圖(見圖2)5.3 主機(jī)流程

17、圖(見圖3)5.4系統(tǒng)發(fā)揮部分的設(shè)計(jì)思路與實(shí)現(xiàn)方法1、兩個以上的從機(jī)與主機(jī)組成分布式模擬IC卡電子門鎖系統(tǒng)從機(jī)可擴(kuò)張為多個,硬件連接方案如下:每一個從機(jī)的連線同上,由于本系統(tǒng)使用的單片機(jī)系統(tǒng)的485總線接口有限,故第三個以上的從機(jī)只能通過8051CPU的RXD、TXD與主機(jī)的連接來實(shí)現(xiàn)通信。程序的修改如下:在主機(jī)程序中,增加接收該從機(jī)的功能,即能接收從機(jī)發(fā)送的呼叫信號。從機(jī)程序只需修改該從機(jī)發(fā)往主機(jī)的呼叫信號即可。2、使用其它的傳輸方式(1)主、從機(jī)通過RXD、TXD直接相連。(程序不須改變)(2)主、從機(jī)通過232總線相連。(程序不須改變,連線改變)3、使用其它的身份識別方式通過紅外線模塊識

18、別用戶(已實(shí)現(xiàn),見附加程序之紅外線部分)。6 數(shù)據(jù)統(tǒng)計(jì)及分析在用戶輸入密碼時,可能出現(xiàn)以下情況:(1) 密碼正確;(2) 由于用戶的粗心而導(dǎo)致的密碼錯誤;(3) 非法用戶的進(jìn)入;我們在驅(qū)動步進(jìn)電機(jī)轉(zhuǎn)動以前就要來判斷密碼的正確性,如果密碼正確則驅(qū)動其轉(zhuǎn)動,如果是由于用戶的粗心導(dǎo)致的輸入密碼錯誤,我們允許其重新輸入或者按退格鍵來取消輸入。但是,如果是非法用戶,那么我們通過三次密碼的權(quán)限來起到預(yù)警的效果,如果三次都輸入錯誤,則發(fā)出非法進(jìn)入的警告。7 結(jié)果分析按設(shè)計(jì)連線要求連接好電路,并分別編譯、運(yùn)行主機(jī)程序與從機(jī)程序,并通過以下方案來測試程序:一、從機(jī)A或B分別插入IC卡1、先連續(xù)輸入三次錯誤密碼,

19、觀察LCD液晶顯示的內(nèi)容是否正確。2、先連續(xù)輸入二次錯誤密碼,再輸入一次正確密碼,觀察LCD液晶顯示的內(nèi)容是否正確。3、先輸入一次錯誤密碼,再輸入一次正確密碼,觀察LCD液晶顯示的內(nèi)容是否正確。4、輸入一次正確密碼,觀察LCD液晶顯示的內(nèi)容是否正確。以上驗(yàn)證程序的串行能力,經(jīng)驗(yàn)證,程序運(yùn)行正常。二、從機(jī)A插入IC卡,不輸密碼或者輸入一次或兩次錯誤密碼,然后不再輸入,接下來從機(jī)B插入IC卡。經(jīng)驗(yàn)證,從機(jī)B等待一小段時間后,主機(jī)自動與從機(jī)A斷開,B機(jī)與主機(jī)正常工作。經(jīng)過多次測試,主機(jī)與從機(jī)之間有良好的協(xié)調(diào)性,系統(tǒng)運(yùn)行穩(wěn)定,數(shù)據(jù)在主機(jī)與從機(jī)之間傳輸時幾乎沒有誤碼率,達(dá)到了系統(tǒng)實(shí)用的要求。8實(shí)驗(yàn)心得在

20、本實(shí)驗(yàn)中,實(shí)現(xiàn)多機(jī)通訊是一個重點(diǎn)、也是一個難點(diǎn)。實(shí)現(xiàn)雙機(jī)通訊是很簡單的,因?yàn)樗淮嬖诟偁幹鳈C(jī)資源的問題。如果是一臺主機(jī)和多臺從機(jī)通訊,則需要解決傳輸過程中搶占主機(jī)資源的問題,在這里我們通過定時器來實(shí)現(xiàn),即當(dāng)從機(jī)A與主機(jī)通訊時,如果從機(jī)B向主機(jī)發(fā)送信號,則主機(jī)收到此信號后,將不給從機(jī)發(fā)送任何信號,這樣當(dāng)從機(jī)B再接受不到任何信號時,讓其暫停發(fā)送,等待從機(jī)A,發(fā)送完成后再允許其發(fā)送。參考文獻(xiàn)1 EL-MUT-III單片機(jī)/微機(jī)實(shí)驗(yàn)系統(tǒng)使用說明及實(shí)驗(yàn)指導(dǎo)書2 何橋.單片機(jī)原理及應(yīng)用.北京:中國鐵道出版社,2004年第1版3 張毅剛.單片機(jī)原理及應(yīng)用.北京:高等教育出版社,2004年第1版4 高峰.單片

21、微型計(jì)算機(jī)原理與接口技術(shù).北京:科學(xué)出版社,2003年第1版主機(jī)是否應(yīng)答呼叫主機(jī)讀卡Y系統(tǒng)初始化是否有卡卡是否合法Y發(fā)送IC卡密碼信息輸入密碼信息并發(fā)送接受主機(jī)應(yīng)答信號密碼正確否步進(jìn)電機(jī)轉(zhuǎn)動開門、延時后關(guān)門密碼已輸三次NNNNNYY圖2 從機(jī)流程圖YNN發(fā)送錯誤信號密碼已比較三次?本機(jī)報(bào)警系統(tǒng)初始化是否有從機(jī)呼叫發(fā)送應(yīng)答信號接收從機(jī)發(fā)送的IC卡密碼密碼正確嗎?發(fā)送正確信號YNY接收從機(jī)發(fā)送的六位密碼圖3主機(jī)流程圖附一:;NAME:分布式電子門鎖系統(tǒng)-從機(jī)系統(tǒng)A* ;*變量定義ADD_W EQU B ;寫卡地址ADD_REQU B ;讀卡地址;* ;*IC卡輸入輸出引腳定義CLK BIT P1.

22、4 IO BIT P1.5 POWER BIT P1.6 SW BIT P1.7 ;*顯示模塊定義PA EQU 0CFA0H ;PB EQU 0CFA1HPCC EQU 0CFA2HPCTL EQU 0CFA3H STOBE0 EQU 70H ;PC0復(fù)位控制字STOBE1 EQU 71H ;PC0置位控制字NUM EQU 20H ;PORT EQU 0CFE8H ;PORTT EQU 0CFA8H ;CSEG AT 0000HLJMP START0CSEG AT 400BHLJMP CLOCKCSEG AT 4100H ;*主程序START0:CLR POWER lcall SMGQC ;L

23、ED清零STARTT: MOV DPTR, #PCTL ;置PA口輸出,PC口高4位輸入,低4位輸出 MOV A, #88H MOVX DPTR, A LCALL LCDQP ;LCD清屏 MOV A,#00H ;發(fā)光二極管全滅 LCALL DISP88 MOV TMOD,#20H ;初始化定時器 MOV TH1,#0F2H MOV TL1,#0F2H SETB TR1 MOV SCON,#0B0H ;初始化串行口 MOV PCON,#80H lcall MMQL ;初始化密碼字節(jié) LCALL QCK ;LCD顯示“請插卡” ;*IC卡檢測START1: MOV C,SWJC START1LC

24、ALL DELAY10MOV C,SWJC START1SETB POWERNOPNOPMOV R6,#01HLCALL READ_BYTENOPNOP cjne a,#0ABH,not0ABH;*讀卡內(nèi)的密碼并放于40-45H mov r3,#06H MOV R6,#02H;讀出地址hhhh:LCALL READ_BYTE;隨機(jī)地址讀出方式NOPNOP ;設(shè)斷點(diǎn)處mov 55H,adec r3inc r6CJNE R3,#00H,R3N01LJMP KAHFR3N01: MOV 50H,51H MOV 51H,52H MOV 52H,53H MOV 53H,54H MOV 54H,55HLJ

25、MP HHHhnot0ABH:AJMP START1;*LCD清屏KAHF: LCALL LCDQP LOOP: MOV DPTR,#PORT+1 ;8279命令字 MOV A,#0D2H ;清除 MOVX DPTR,A Ljmp TXACK mov R0,#10H ;定義從機(jī)向主機(jī)發(fā)送次數(shù);*從機(jī)向主機(jī)呼叫TXACK: MOV A,#0CEH MOV SBUF,A CLR TIWAIT11: JBC TI,RXACKR SJMP WAIT11RXACKR: CLR RI LJMP RXACK RXACK: JBC RI,IFAH DEC R0 CJNE R0,#00H,RXACK LCALL

26、 LCDQP LCALL QSD LCALL YANSHI LJMP TXACK IFAH: MOV A,SBUF CJNE A,#0CEH,TXACKTX00H: MOV A,#00H MOV SBUF,AWAIT1: JBC TI, START11 SJMP WAIT1;*若主機(jī)同意,則從機(jī)重新設(shè)置串口,并開啟定時器和中斷START11:MOV SCON,#90H;*發(fā)送密碼 mov 40H,#50H mov r3,#06H TXACK25: MOV A,#06H ;發(fā)呼叫信號06 MOV SBUF,AWAIT155: JBC TI,RXYES55 ;等待發(fā)送完一個字節(jié) SJMP WAIT

27、155RXYES55:JBC RI,NEXT15 ;等待乙機(jī)回答 SJMP RXYES55NEXT15: MOV A,SBUF ;判斷乙機(jī)是否同意接收,不同意繼續(xù)呼叫 CJNE A,#00H,TXACK25 MOV r0,40H MOV A,R0 MOV SBUF,AWAIT255:JBC TI,TXNEWS55 SJMP WAIT255TXNEWS55:JBC RI,IF0DDH5 SJMP TXNEWS55IF0DDH5: MOV A,SBUF CJNE A,#0FH,TXACK25 ;判斷乙機(jī)是否接收正確,不正確繼續(xù)呼叫 MOV DPTR,#0CFE9H inc 40H DEC R3 c

28、jne r3,#00H,TXACK25 LCALL QSRMM ;LCD顯示“請輸入密碼” lcall MMQL mov tmod,#01H mov tl1,#0AFH mov th1,#3CH MOV NUM,#0FFH mov 41H,#00H setb tr0 setb ea setb et0 HGH1: mov r3,#07H mov a,41H cjne a,#00H,hgh11 ajmp LOOP11HGH11: setb ea setb et0 ;*接下來從機(jī)判斷是否有按鍵LOOP11: mov a,NUM cjne a,#00H,START012 LCALL LCDQP ;若在

29、規(guī)定時間內(nèi)無鍵按下,則清屏并關(guān)中斷返回 clr ea clr et0 ljmp start0START012:MOV DPTR,#PORT+1 ;判斷有鍵按下沒有 MOVX A,DPTR ANL A,#0FH JZ LOOP11 ;有鍵按下? clr ea ;有鍵按下,先關(guān)中斷 clr et0 MOV A,#0A0H ;顯示消隱命令 MOVX DPTR,A MOV A,#40H ;讀FIFO命令 MOVX DPTR,A MOV DPTR,#PORT ;讀鍵值 MOVX A,DPTR cjne r3,#01H,not01 cjne a,#0C5h,notc5 mov 55H,54H mov 54

30、H,53H mov 53H,52H mov 52H,51H mov 51H,50H mov 50H,#00H inc r3 ACALL DISP ajmp START012 notc5: cjne a,#0D7H,START012 ljmp yesd7not01: ANL A,#3FH MOV R7,A ;狀態(tài)保存 MOV 50H,51H MOV 51H,52H MOV 52H,53H MOV 53H,54H MOV 54H,55HLOP1: MOV A,R7 ;查取數(shù)字鍵的字型碼 MOV DPTR,#TAB1 MOVC A,A+DPTR cjne a,#81H,not81 ;非數(shù)字鍵則跳轉(zhuǎn)

31、mov 55H,53H mov 54H,52H mov 53H,51H mov 52H,50H mov 51H,#00H mov 50H,#00H inc r3 ACALL DISP ljmp start012 not81: CJNE A,#80h,not80 LJMP errorNOT80: MOV 55H,a ACALL DISP dec r3 ;是數(shù)字鍵 ljmp START012yesd7: MOV 40H,#50h mov R3,#06h AJMP TXACK2;*開始發(fā)送一位密碼TXACK2: MOV A,#06H ;發(fā)呼叫信號06 MOV SBUF,AWAIT15: JBC TI

32、,RXYES56 ;等待發(fā)送完一個字節(jié) SJMP WAIT15RXYES56:JBC RI,NEXT1 ;等待乙機(jī)回答 SJMP RXYES56NEXT1: MOV A,SBUF ;判斷乙機(jī)是否同意接收,不同意繼續(xù)呼叫 CJNE A,#00H,TXACK2 MOV r0,40H MOV A,R0 MOV SBUF,AWAIT256:JBC TI,TXNEWS56 SJMP WAIT256TXNEWS56:JBC RI,IF0DDH SJMP TXNEWS56IF0DDH: MOV A,SBUF CJNE A,#0FH,TXACK2 ;判斷乙機(jī)是否接收正確,不正確繼續(xù)呼叫 MOV DPTR,#0

33、CFE9H inc 40H DEC R3 cjne r3,#00H,TXACK2 ljmp HGH2;* HGH2: lcall SMGQC ;若密碼夠六位,則清除數(shù)碼管和密碼字節(jié),同時清LCD LCALL LCDQP RXACK00:JBC RI,IF06H00 ;接收主機(jī)回答信號 SJMP RXACK00IF06H00:MOV A,SBUF CJNE A,#06H,TX15H00TX00H00:MOV A,#00H MOV SBUF,AWAIT100:JBC TI,RXBYTES00 SJMP WAIT100TX15H00:MOV A,#0F0H MOV SBUF,AWAIT200:JBC

34、 TI,HAVE100 SJMP WAIT200HAVE100:SJMP RXACK00RXBYTES00:JBC RI,HAVE200 SJMP RXBYTES00HAVE200:MOV A,SBUF MOV R7,A MOV A,#0FH MOV SBUF,AWAIT300:JBC TI,EE SJMP WAIT300EE: mov a,r7 cjne a,#01H,YY02;*此處若密碼錯誤則顯示“密碼錯誤”,并控制LED紅燈亮 inc 41H mov a,41H cjne a,#03H,not03 Ljmp YESS03not03: LCALL LCDQP LCALL MMQL MOV

35、 A,#55H ;四個紅燈亮 LCALL DISP88 LCALL MMCWqzs MOV A,#00H LCALL DISP88 MOV NUM,#0FFH MOV DPTR,#PORT+1 ;8279命令字 LJMP HGH1YEss03: MOV SCON,#0B0H LCALL LCDQP LCALL MMQL MOV A,#55H ;四個紅燈亮 LCALL DISP88 LCALL MIMCW MOV A,#00H LCALL DISP88 lcall delay LCALL LCDQP MOV DPTR,#PORT+1 ;8279命令字 LJMP START0;*此處若密碼正確則清

36、屏顯示“密碼正確,請取卡” YY02: cjne a,#02H,STARTA0 ;并控制LED綠燈亮 LCALL LCDQP MOV A,#0AAH ;四個綠燈亮 LCALL DISP88 LCALL MIMZQ LCALL DELAY LCALL LCDQP MOV A,#00H LCALL DISP88 lcall zzkm MOV SCON,#0B0H ;此處應(yīng)重新設(shè)置串口,并開門 MOV DPTR,#PORT+1 ;8279命令字 Ljmp BjDJsSTARTA0: Ljmp START0 ret;*;主程序段結(jié)束 ;*數(shù)碼管顯示子程序DISP: MOV DPTR,#PORT+1 M

37、OV A,#90H MOVX DPTR,A MOV R6,#06H MOV R1,#50H MOV DPTR,#PORTDL0: MOV A,R1 MOVX DPTR,A INC R1 DJNZ R6,DL0 RET;*顯示“ERROR”ERROR: MOV 50H,#79H MOV 51H,#31H MOV 52H,#31H MOV 53H,#5CH MOV 54H,#31H MOV 55H,#80H LCALL DISP MOV R3,#07HDD: LCALL DELAY LCALL SMGQC MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 53H

38、,#00H MOV 54H,#00H MOV 55H,#00H LJMP START012 TAB1: DB 3FH,06H,5BH,4FH,80H,81H DB 66H,6DH,7DH,07H,80H,80H DB 7FH,6FH,80H,80H,80H,80H DB 80H,80H,80H,80H,80H,80H DB 80H,80H,80H,80H ;*IC卡專用子程序READ_BYTE:LCALL STARTMOV A,#ADD_W LCALL WR_BYTE MOV A,R6 LCALL WR_BYTE LCALL START MOV A,#ADD_R LCALL WR_BYTE L

39、CALL RD_BYTE LCALL STOPRET ;-START:CLR CLKNOP NOP SETBIO NOP NOP SETB CLKNOP NOP CLR IO NOP NOP CLR CLK NOP RET ;- STOP: CLR CLK NOP NOP CLR IO NOP NOP SETB CLK NOP NOP SETB IO NOP NOP CLR CLK NOP NOP CLR IO RET ;-ACK_IC: CLR CLK NOP NOP CLR IO NOP NOP SETB CLK NOP NOP CLR CLK NOP SETB IO NOP RET ;-WR_BYTE:MOV

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論