基于arm的門(mén)禁系統(tǒng)設(shè)計(jì)_第1頁(yè)
已閱讀1頁(yè),還剩16頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、<p><b>  目 錄</b></p><p><b>  一、實(shí)驗(yàn)?zāi)康?</b></p><p><b>  二、實(shí)驗(yàn)說(shuō)明2</b></p><p><b>  三、實(shí)驗(yàn)設(shè)備2</b></p><p><b>  四、實(shí)驗(yàn)內(nèi)

2、容2</b></p><p>  4.1門(mén)禁系統(tǒng)的概述2</p><p>  4.2 門(mén)禁系統(tǒng)的方案2</p><p>  4.3 門(mén)禁系統(tǒng)的硬件部分3</p><p>  4.4 門(mén)禁系統(tǒng)的軟件部分6</p><p>  4.5 門(mén)禁系統(tǒng)的軟、硬件調(diào)試8</p><p>

3、;<b>  結(jié) 論9</b></p><p><b>  程 序10</b></p><p><b>  一、實(shí)驗(yàn)?zāi)康?lt;/b></p><p>  1.理解和掌握基于單片機(jī)的嵌入式系統(tǒng)的設(shè)計(jì)理念與設(shè)計(jì)方法。</p><p>  2.掌握Protel 原理圖設(shè)計(jì)方法。<

4、;/p><p><b>  二、實(shí)驗(yàn)說(shuō)明</b></p><p>  以住宅小區(qū)或商場(chǎng)停車(chē)場(chǎng)為基礎(chǔ),物聯(lián)網(wǎng)技術(shù)為依托,設(shè)計(jì)一套車(chē)輛出入口門(mén)禁系統(tǒng)。我們以單片機(jī)為控制核心,采用非接觸IC卡技術(shù)、TCP/IP網(wǎng)絡(luò)技術(shù),實(shí)現(xiàn)車(chē)輛出入道閘控制及停車(chē)信息的遠(yuǎn)程統(tǒng)計(jì)、查詢。本實(shí)驗(yàn)完成其中的非接觸IC卡讀寫(xiě)部分。系統(tǒng)電路結(jié)構(gòu)框圖如下圖所示。</p><p>&l

5、t;b>  三、實(shí)驗(yàn)設(shè)備</b></p><p><b>  1、計(jì)算機(jī)一臺(tái)</b></p><p><b>  2、單片機(jī)試驗(yàn)箱</b></p><p><b>  四、實(shí)驗(yàn)內(nèi)容</b></p><p>  4.1門(mén)禁系統(tǒng)的概述</p><

6、;p>  4.1.1 門(mén)禁系統(tǒng)概念</p><p>  出入口門(mén)禁控制系統(tǒng)采取以感應(yīng)卡來(lái)取代用鑰匙開(kāi)門(mén)的方式。使用者用一張卡可以打開(kāi)多把門(mén)鎖, 對(duì)門(mén)鎖的開(kāi)啟也可以有一定的時(shí)間限制。如果卡丟失了,不必更換門(mén)鎖,只需將其從控制主機(jī)中注銷(xiāo)。出入口門(mén)禁控制系統(tǒng)是通過(guò)對(duì)出入口的準(zhǔn)入情況進(jìn)行控制、管理和記錄的設(shè)備,對(duì)何人何時(shí)在何地進(jìn)行詳細(xì)跟蹤,以實(shí)現(xiàn)中心對(duì)出入口的24小時(shí)控制、監(jiān)視及管理。</p><

7、;p>  4.1.2 門(mén)禁系統(tǒng)的特點(diǎn)</p><p>  系統(tǒng)將IC卡技術(shù)、計(jì)算機(jī)控制技術(shù)與電子門(mén)鎖有機(jī)結(jié)合,用IC卡替代鑰匙,配合計(jì)算機(jī)實(shí)現(xiàn)智能化門(mén)禁控制和管理,有效的解決了傳統(tǒng)門(mén)鎖的使用繁瑣和無(wú)法信息記錄等不足,利用數(shù)據(jù)控制器采集的數(shù)據(jù)實(shí)現(xiàn)數(shù)字化管理可為內(nèi)部人力資源的有效管理等帶來(lái)意想不到的效果。</p><p>  電子鑰匙:授權(quán)后的IC卡即可當(dāng)作電子鑰匙,將此電子鑰匙感應(yīng)器前

8、一晃, 控制器對(duì)該卡進(jìn)行身份驗(yàn)證,驗(yàn)證合法后即控制電子門(mén)鎖自動(dòng)打開(kāi)。</p><p>  開(kāi)門(mén)權(quán)限:按門(mén)設(shè)置:可以根據(jù)持卡人身份權(quán)限設(shè)定有效開(kāi)門(mén)區(qū)域(控制器號(hào)碼)。系統(tǒng)可設(shè)有最高權(quán)限卡,該卡可以打開(kāi)系統(tǒng)轄區(qū)內(nèi)所有電子門(mén)鎖。</p><p>  自動(dòng)報(bào)警:非法使用卡或強(qiáng)行打開(kāi)門(mén)鎖等非正常情況下系統(tǒng)會(huì)將自動(dòng)發(fā)出報(bào)警信號(hào),系統(tǒng)將自動(dòng)記錄非常狀況的時(shí)間、門(mén)號(hào)、狀態(tài)等詳細(xì)信息,確保門(mén)鎖安全和事后查證

9、。</p><p>  4.2 門(mén)禁系統(tǒng)的方案</p><p>  4.2.1門(mén)禁系統(tǒng)的總體方案</p><p>  本系統(tǒng)由51系列單片機(jī)AT89S52、按鍵、蜂鳴器、T7122M-I讀卡等模塊構(gòu)成。實(shí)現(xiàn)了存儲(chǔ)一張管理卡和多張車(chē)輛卡的功能;同時(shí)管理車(chē)輛還可以通過(guò)按鍵更改管理卡,增加車(chē)輛卡,刪除車(chē)輛卡,清空所有車(chē)輛卡等。因?yàn)殚T(mén)禁刷卡控制刷卡距離隨著補(bǔ)嘗電容的改變而改

10、變(補(bǔ)嘗電容大約300PF),所以最大的刷卡距離約為5—12CM;對(duì)于非管理卡或車(chē)輛卡,本門(mén)禁控制器不與響應(yīng);每個(gè)按鍵控制器都有相應(yīng)的提示音進(jìn)行提示操作。正常使用時(shí),車(chē)輛卡靠近讀卡天線,門(mén)禁控制器讀入卡號(hào),并與存儲(chǔ)在內(nèi)部的卡號(hào)比較,如果有相同的卡號(hào),說(shuō)明此卡合法,門(mén)禁機(jī)響一長(zhǎng)音,提示成功,如果讀卡失敗,而不響應(yīng)??傮w系統(tǒng)結(jié)構(gòu)圖如圖3-1</p><p>  圖3-1 門(mén)禁系統(tǒng)總體結(jié)構(gòu)框圖</p>&

11、lt;p>  4.2.2 門(mén)禁系統(tǒng)的各個(gè)方案</p><p>  4.2.2.1 單片機(jī)控制芯片模塊</p><p>  At89s52芯片。 它是一種低功耗、高性能CMOS8位微控制器,具有 8K 在系統(tǒng)可編程Flash 存儲(chǔ)器。易失性存儲(chǔ)與工業(yè)80C51 產(chǎn)品指令和引腳完 全兼容。在單芯片上,擁有靈巧的8 位CPU 和在系統(tǒng) 可編程Flash,使得AT89S52為眾多嵌入式控制

12、應(yīng)用系統(tǒng)提 供高靈活、超有效的解決方案。 </p><p>  4.2.2.2 鍵盤(pán)控制模塊</p><p>  基于串并轉(zhuǎn)換電路的鍵盤(pán)形式,如圖3-3。7SLS164 是串并轉(zhuǎn)化芯片,它把SDA(P10)上的串行數(shù)據(jù)轉(zhuǎn)化為8 為的并行數(shù)據(jù),S1/S2/S3/S4/S5/S6/S7/S8作為鍵盤(pán)掃描線,P11 為鍵盤(pán)數(shù)據(jù)回送線。鍵盤(pán)掃描時(shí),從S1~S7 一次輸出低電平,然后檢測(cè)P11(回

13、送線),如果P11(回送線)為高電平則表示無(wú)鍵閉合,如果P11(回送線)等于0,將S1~S7 上的數(shù)據(jù)經(jīng)過(guò)簡(jiǎn)單處理得到對(duì)應(yīng)的鍵值。</p><p><b>  如圖3-2</b></p><p>  4.3 門(mén)禁系統(tǒng)的硬件部分</p><p>  4.3.1主控芯片部分</p><p><b>  1、原理圖&

14、lt;/b></p><p><b>  圖4-1</b></p><p>  4.3.2鍵盤(pán)控制部分</p><p>  采用串并轉(zhuǎn)換電路的鍵盤(pán)形式</p><p><b>  (1)原理圖</b></p><p>  圖4-2串并轉(zhuǎn)換電路的鍵盤(pán)形式</p>

15、;<p><b>  (2)工作原理</b></p><p>  7SLS164 是串并轉(zhuǎn)化芯片,它把SDA(P27)上的串行數(shù)據(jù)轉(zhuǎn)化為8 為的并行數(shù)據(jù),S1/S2/S3/S4/S5/S6/S7/S8作為鍵盤(pán)掃描線,P26為鍵盤(pán)數(shù)據(jù)回送線。</p><p>  鍵盤(pán)掃描時(shí),從S1~S7 一次輸出低電平,然后檢測(cè)P26(回送線),如果P26(回送線)為高電

16、平則表示無(wú)鍵閉合,如果P26(回送線)等于0,將S1~S7 上的數(shù)據(jù)經(jīng)過(guò)簡(jiǎn)單處理得到對(duì)應(yīng)的鍵值。</p><p><b>  (3)功能說(shuō)明</b></p><p>  KEY1:增加車(chē)輛卡</p><p>  KEY2:刪除車(chē)輛卡</p><p>  KEY3:刪除管理卡</p><p>  K

17、EY4:清除所有車(chē)輛卡</p><p>  4.3.3蜂鳴器控制部分</p><p>  1、蜂鳴器原理圖如下所示:</p><p>  圖4-3蜂鳴器原理圖</p><p><b>  2、工作原理</b></p><p>  單片機(jī)通過(guò)P37來(lái)控制蜂鳴器的工作與關(guān)閉。</p>&

18、lt;p>  當(dāng)P3.7=1時(shí),PNP三極管關(guān)閉,蜂鳴器停止工作。</p><p>  當(dāng)P3.7=0時(shí),PNP三級(jí)管導(dǎo)通,蜂鳴器開(kāi)始工作。</p><p>  從而單片機(jī)只需要P3.7輸出0或者1開(kāi)控制鑒別鳴器即可。</p><p><b>  3、功能說(shuō)明</b></p><p> ?。?)刷卡時(shí)蜂鳴器響一聲,

19、說(shuō)明讀到車(chē)輛卡。</p><p> ?。?)刷卡時(shí)蜂鳴器響兩塊,說(shuō)明讀到管理卡。</p><p> ?。?)相應(yīng)的按鍵時(shí)給于相應(yīng)的提示音。</p><p> ?。?)蜂鳴器沒(méi)有響應(yīng),說(shuō)明沒(méi)有讀到卡。</p><p>  4.3.4 T7122M-I工業(yè)級(jí)讀卡模塊</p><p><b>  1、應(yīng)用電路簡(jiǎn)圖&

20、lt;/b></p><p><b>  圖4-4</b></p><p><b>  2、數(shù)據(jù)輸出格式</b></p><p>  共輸出48Bits,即6個(gè)字節(jié)。第一字節(jié)為ID卡識(shí)別碼,第二至第五字節(jié)為卡號(hào),最后一個(gè)字節(jié)為前五個(gè)字節(jié)的校驗(yàn)和。校驗(yàn)和運(yùn)算變量類(lèi)型為BYTE類(lèi)型,運(yùn)算過(guò)程進(jìn)位被丟棄。</p>

21、;<p>  選擇同步串行輸出方式時(shí),每個(gè)字節(jié)中高位先輸出;選擇異步串行輸出時(shí),每個(gè)字節(jié)中低位先輸出。輸出波特率均為9600 Bits/S。</p><p><b>  3、數(shù)據(jù)輸出波形</b></p><p><b>  圖4-5</b></p><p><b>  4、功能說(shuō)明</b>

22、;</p><p> ?。?)通過(guò)讀卡天線,刷卡時(shí)讀取ID卡卡號(hào)。</p><p> ?。?)通過(guò)SO腳把卡號(hào)傳到單片機(jī)芯片管腳上。</p><p> ?。?)通過(guò)CP腳傳送低電平說(shuō)明有卡刷到。</p><p>  4.4 門(mén)禁系統(tǒng)的軟件部分</p><p>  程序循環(huán)中主要工作為判斷是否有刷卡,若有刷卡則斷判是什么

23、卡,然后進(jìn)行相應(yīng)的處理。</p><p>  門(mén)禁系統(tǒng)的總流程圖5-1: </p><p><b>  圖5-1</b></p><p>  管理卡功能子程序流程圖如圖5-2</p><p><b>  圖5-2</b></p><p>  4.5 門(mén)禁系統(tǒng)的軟、硬件調(diào)試&l

24、t;/p><p>  完成了硬件的設(shè)計(jì)、制作和軟件編程之后,要使系統(tǒng)能夠按設(shè)計(jì)正常運(yùn)行,必須進(jìn)行硬件調(diào)試和軟件調(diào)試。</p><p><b>  4.5.1硬件調(diào)試</b></p><p>  硬件調(diào)試的主要任務(wù)是排除硬件故障,其中包括設(shè)計(jì)錯(cuò)誤和工藝性故障。</p><p>  (1) 脫機(jī)檢查。按照電路原理圖用萬(wàn)用表逐步檢

25、測(cè)電路板中所有器件的各引腳,尤其是電源的連接是否正確;檢查各開(kāi)關(guān)按鍵是否能正常工作;為了保護(hù)芯片,應(yīng)先對(duì)各IC座(尤其是電源端)電位進(jìn)行檢查,確定其無(wú)誤后再插入芯片檢查[3]。</p><p>  (2) 聯(lián)機(jī)調(diào)試。暫時(shí)拔掉AT89S52芯片,將仿真器的40芯仿真插頭插入AT89S52的芯片插座進(jìn)行調(diào)試,檢驗(yàn)鍵盤(pán)電路是否滿足設(shè)計(jì)要求??梢酝ㄟ^(guò)一些簡(jiǎn)單的測(cè)試軟件來(lái)查看接口工作是否正常。例如,我們可以設(shè)計(jì)一個(gè)能過(guò)按鍵

26、控制蜂鳴器聲響檢測(cè)鍵盤(pán)電路的好壞。如果運(yùn)行測(cè)試結(jié)果與預(yù)期不符,很容易根據(jù)故障現(xiàn)象判斷故障原因并采取針對(duì)性措施排除故障。</p><p>  4.5.2 軟件調(diào)試</p><p>  軟件調(diào)試的任務(wù)是利用開(kāi)發(fā)工具進(jìn)行在線仿真調(diào)試,發(fā)現(xiàn)和糾正程序錯(cuò)誤,同時(shí)也能發(fā)現(xiàn)硬件故障。</p><p>  程序的調(diào)試應(yīng)一個(gè)模塊一個(gè)模塊地進(jìn)行,首先單獨(dú)調(diào)試各功能子程序,檢驗(yàn)程序是否能

27、夠?qū)崿F(xiàn)預(yù)期的功能,接口電路的控制是否正常等;最后逐步將各子程序連接起來(lái)總調(diào)。聯(lián)調(diào)需要注意的是,各程序模塊間能否正確傳遞參數(shù),特別要注意各子程序的現(xiàn)場(chǎng)保護(hù)與恢復(fù)。調(diào)試的基本步驟如下:</p><p> ?。?)編寫(xiě)蜂鳴程序程序,調(diào)試是蜂鳴器是否會(huì)響。</p><p> ?。?)編寫(xiě)簡(jiǎn)單程序調(diào)試刷卡時(shí)是讀卡模塊是否有讀入。</p><p> ?。?)編寫(xiě)鍵盤(pán)控制程序,調(diào)

28、試是否有鍵按下及其按鍵值。</p><p> ?。?)編寫(xiě)添加、刪除車(chē)輛卡程序,調(diào)試是否能實(shí)現(xiàn)。</p><p> ?。?)編寫(xiě)更改管理卡,清除所有車(chē)輛卡程序,調(diào)試是否能實(shí)現(xiàn)。</p><p> ?。?)總體調(diào)試,看能否實(shí)現(xiàn)存儲(chǔ)一張管理卡,多張車(chē)輛卡。通過(guò)按鍵能否實(shí)現(xiàn)添加、刪除車(chē)輛卡,更改管理卡,清除所有車(chē)輛卡等設(shè)計(jì)要求。</p><p> 

29、 4.5.3 軟、硬件設(shè)計(jì)注意事項(xiàng)</p><p> ?。?)讀卡模塊T7122M-I外部電源接觸不良或者嚴(yán)重的電磁干擾,則有可能偶然使讀卡模塊內(nèi)部軟件跑飛。</p><p> ?。?)天線周?chē)绻薪饘俅嬖?,則工作頻率將受影響,讀卡距離也受影響,嚴(yán)重時(shí)讀卡反應(yīng)遲鈍,甚至不能讀卡。避免的方法是所有的金屬材料盡量離開(kāi)天線線圈,特別是天線前面不能有金屬封板。金屬封板會(huì)屏蔽電磁波,致使讀卡完全失

30、效。天線后面如果有金屬封板,則應(yīng)該離開(kāi)天線線圈至少3厘米以上。</p><p> ?。?)讀卡模塊與模板注意是否有共地。</p><p> ?。?)如果使用的電源性能不良,將引起電壓不穩(wěn),波紋太大,對(duì)讀卡距離產(chǎn)生影響。</p><p> ?。?)外界的電磁雜波也會(huì)對(duì)讀卡產(chǎn)生干擾。</p><p><b>  結(jié) 論</b>

31、;</p><p>  通過(guò)本次綜合實(shí)驗(yàn),不但學(xué)習(xí)了單片機(jī)技術(shù)與嵌入式系統(tǒng)、C51程序編寫(xiě)等學(xué)科,掌握了KEIL8、protel 等軟件工具。更重要的是學(xué)會(huì)了分析問(wèn)題、運(yùn)用所學(xué)知識(shí)解決現(xiàn)實(shí)問(wèn)題的方法。</p><p>  在綜合完成之際,我要對(duì)所有幫助過(guò)我的人們表示誠(chéng)摯的謝意!</p><p>  首先,對(duì)我的指導(dǎo)老師致以衷心的感謝!從當(dāng)初開(kāi)始至今,從選題、報(bào)告的書(shū)

32、寫(xiě),到報(bào)告的組織、撰寫(xiě)、修改和完善,老師都給了我非常多的關(guān)心、理解、指導(dǎo)和幫助。</p><p>  最后,非常感謝我的舍友,感謝他們?cè)谏钌虾蛯?shí)驗(yàn)過(guò)程中曾給過(guò)我的啟迪與幫助。</p><p>  最后真誠(chéng)感謝于百忙中審閱報(bào)告并給予我指導(dǎo)的各位老師。謝謝大家!</p><p><b>  程 序</b></p><p>

33、  #include<reg51.h></p><p>  #include<intrins.h></p><p>  sbit cp=P1^0;</p><p>  sbit sck=P1^1;</p><p>  sbit so=P1^2;</p><p>  sbit beep=

34、P3^7;</p><p>  sbit led5=P0^5;</p><p>  sbit KD_KEY = P2^6;</p><p>  sbit KEY_SDA=P2^7;</p><p>  sbit KEY_CLK=P2^5;</p><p>  unsigned char chcardno[1

35、0][5]={0};</p><p>  unsigned char cardok;</p><p>  unsigned char j=0;</p><p>  unsigned char count;</p><p>  unsigned char a;</p><p>  unsigned char cardn

36、o[5]={0};</p><p>  unsigned char key_value;</p><p>  unsigned char b=1;</p><p>  //---------毫秒延時(shí)子程序----------</p><p>  void delay2(unsigned char ms)</p><p&g

37、t;  {unsigned char i;</p><p>  while(ms--)</p><p><b>  {</b></p><p>  for(i=0;i<120;i++);</p><p><b>  }</b></p><p><b>  }&

38、lt;/b></p><p>  //---------蜂鳴器--------------</p><p>  unsigned char feib(void)</p><p><b>  {</b></p><p><b>  beep=0;</b></p><p&g

39、t;<b>  led5=0;</b></p><p>  delay2(250);</p><p><b>  beep=1;</b></p><p><b>  led5=1;</b></p><p>  delay2(250);</p><p>&

40、lt;b>  }</b></p><p>  void send(unsigned char a) </p><p>  //判斷是不是有鍵按下</p><p><b>  {</b></p><p>  unsigned char i;</p><p>  for(i=0;i

41、<8;i++)</p><p><b>  {</b></p><p>  if(_crol_(a,i)&0x80)</p><p>  KEY_SDA=1;</p><p><b>  else</b></p><p>  KEY_SDA=0;</p&g

42、t;<p>  KEY_CLK=0;</p><p>  KEY_CLK=1;</p><p><b>  }</b></p><p><b>  }</b></p><p>  unsigned char key(void)</p><p>  //判斷是第幾

43、鍵按下</p><p><b>  {</b></p><p>  unsigned char buffer,display_bit,i;</p><p>  buffer=0xff; //賦初值為0xff</p><p>  delay2(250); //延時(shí)去抖動(dòng)</p><p>  disp

44、lay_bit=0xfe; //掃描鍵盤(pán)</p><p>  for(i=0;i<8;i++)</p><p><b>  {</b></p><p>  send(display_bit);</p><p>  if(!KD_KEY) //是此鍵按下嗎?</p><p><b>

45、  { </b></p><p>  buffer=display_bit; //是,則保存其鍵值</p><p>  return(i);</p><p>  break; //退出</p><p><b>  }</b></p><p>  display_bit=_crol_(d

46、isplay_bit,1);</p><p><b>  //檢測(cè)下一鍵</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //------同步串行口接收一字節(jié)-------</p><p>  

47、unsigned char rx1byte()</p><p><b>  {</b></p><p><b>  char i;</b></p><p>  char rxdata;</p><p>  for(i=9;--i;)</p><p><b>  {&

48、lt;/b></p><p>  rxdata<<=1;</p><p>  while(sck==0) //等待始終上升沿</p><p><b>  continue;</b></p><p>  if(so==1) //讀數(shù)據(jù)</p><p><b>

49、;  ++rxdata;</b></p><p>  while(sck==1)</p><p><b>  continue;</b></p><p><b>  }</b></p><p>  return rxdata;</p><p><b> 

50、 }</b></p><p>  //--------同步串行口接收-------</p><p>  unsigned char rx(void)</p><p><b>  {</b></p><p><b>  char i;</b></p><p>  

51、if(cp==1) //檢測(cè)CP腳是否出現(xiàn)低電平</p><p><b>  return;</b></p><p>  EA=0; //屏蔽中斷</p><p>  for(i=25;--i;) //保證CP的寬度大于時(shí)鐘寬度</p><p><b>  {</b&

52、gt;</p><p>  if(sck==0)</p><p><b>  {EA=1;</b></p><p><b>  return;</b></p><p><b>  }</b></p><p><b>  }</b>&

53、lt;/p><p>  while(sck==1) //等待時(shí)鐘線出現(xiàn)低電平</p><p><b>  continue;</b></p><p>  cardno[0]=rx1byte(); //讀第一個(gè)字節(jié)</p><p>  cardno[1]=rx1byte(); //讀第二個(gè)字節(jié)</p>

54、;<p>  cardno[2]=rx1byte();</p><p>  cardno[3]=rx1byte();</p><p>  cardno[4]=rx1byte();</p><p>  cardno[5]=rx1byte(); //讀第六個(gè)字節(jié)</p><p>  while(cp==0) //等待

55、CP腳恢復(fù)高電平</p><p><b>  continue;</b></p><p><b>  EA=1; </b></p><p>  //讀卡結(jié)束,校驗(yàn)卡號(hào)</p><p>  i=cardno[0]+cardno[1]+cardno[2]+cardno[3]+cardno[4];<

56、/p><p>  if(i=cardno[5])</p><p><b>  {</b></p><p><b>  cardok=1;</b></p><p><b>  }</b></p><p><b>  }</b></p

57、><p>  //---------------管理卡程序-----------</p><p>  unsigned char zjz (void)</p><p><b>  { </b></p><p><b>  char i=0;</b></p><p><b&

58、gt;  while(1)</b></p><p><b>  { </b></p><p><b>  rx();</b></p><p><b>  P0=0XFF;</b></p><p>  if(cardok==1)//判斷是否有刷卡</p>

59、<p><b>  { </b></p><p>  cardok=0;</p><p>  if(chcardno[0][5]==0)//判斷是否有管理卡</p><p><b>  { </b></p><p><b>  feib();</b></p

60、><p><b>  feib();</b></p><p>  chcardno[0][5]=cardno[5];//設(shè)計(jì)為管理卡</p><p><b>  }</b></p><p><b>  else</b></p><p><b>  

61、{ </b></p><p>  if(chcardno[0][5]==cardno[5])//判斷是否是管理卡</p><p><b>  { </b></p><p><b>  feib();</b></p><p><b>  feib();</b><

62、/p><p><b>  feib();</b></p><p>  delay2(250);</p><p><b>  while(1)</b></p><p><b>  {</b></p><p><b>  rx();</b>

63、</p><p>  if(cardok==1)//判斷是否有刷卡</p><p><b>  {</b></p><p><b>  feib();</b></p><p><b>  cardok=0;</b></p><p>  TR0=1; //

64、起動(dòng)定時(shí)器0</p><p><b>  count=0;</b></p><p><b>  break;</b></p><p><b>  }</b></p><p><b>  }</b></p><p><b>

65、  }</b></p><p><b>  else</b></p><p><b>  { </b></p><p>  for(a=1;a<=b;a++)</p><p><b>  {</b></p><p>  if(chcar

66、dno[a][5]==cardno[5])//判斷是否是車(chē)輛卡</p><p><b>  {</b></p><p><b>  feib();</b></p><p><b>  break;</b></p><p><b>  }</b></p

67、><p>  } </p><p><b>  } </b></p><p><b>  } </b></p><p><b>  }</b></p><p><b>  }</b>&l

68、t;/p><p><b>  }</b></p><p>  //----------定時(shí)器子程序---------</p><p>  void timer1(void) interrupt 3</p><p><b>  {</b></p><p>  TH0=(65536-

69、50000)/256;</p><p>  TL0=(65526-50000)%256;</p><p><b>  count++;</b></p><p>  key_value=key();</p><p>  switch(key_value)</p><p><b>  {&l

70、t;/b></p><p>  case 0: //按鍵1</p><p><b>  feib();</b></p><p>  chcardno[b][5]=cardno[5];//添加車(chē)輛卡</p><p>  cardno[5]=0;</p><p>

71、<b>  b++;</b></p><p><b>  break; </b></p><p>  case 1: //按鍵2</p><p><b>  feib();</b></p><p><b>  feib();<

72、;/b></p><p>  for(a=1;a<=b;a++)</p><p><b>  {</b></p><p>  if(chcardno[a][5]==cardno[5])</p><p><b>  {</b></p><p>  chcardno[

73、a][5]=chcardno[b][5];//刪除車(chē)輛卡</p><p><b>  }</b></p><p><b>  }</b></p><p><b>  break;</b></p><p>  case 2: //按鍵3<

74、;/p><p><b>  feib();</b></p><p><b>  feib();</b></p><p><b>  feib();</b></p><p>  chcardno[0][5]=0;//刪除管理卡</p><p><b>

75、;  break; </b></p><p>  case 3: //按鍵4</p><p><b>  feib();</b></p><p><b>  feib();</b></p><p><b>  feib();<

76、/b></p><p><b>  feib();</b></p><p>  for(a=1;a<=b;a++)</p><p><b>  {</b></p><p>  chcardno[a][5]=0; //清空所有車(chē)輛卡</p><p><

77、;b>  }</b></p><p><b>  break;</b></p><p><b>  }</b></p><p>  if(count==50)//定時(shí)5S是否到</p><p><b>  { </b></p><p>

78、<b>  TR0=0;</b></p><p><b>  EA=0;</b></p><p><b>  }</b></p><p><b>  }</b></p><p>  //--------------------主程序-----------

79、---</p><p>  void main(void)</p><p><b>  {</b></p><p>  TMOD=0x01; //定時(shí)器0</p><p>  TH0=(65536-50000)/256;//定時(shí)器0初始華</p><p>  TL0=(65526-50000

80、)%256;</p><p><b>  EA=1;</b></p><p><b>  ET0=1;</b></p><p><b>  P0=0XFF;</b></p><p><b>  zjz();</b></p><p>

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論