




已閱讀5頁(yè),還剩42頁(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)介
基于單片機(jī) 控制的射頻 ID 卡 考勤機(jī)的設(shè)計(jì) 系 (部):信息科學(xué)與技術(shù) 系 專 業(yè) 班: 電子信息 工程 0602 班 姓 名: 袁 園 學(xué) 號(hào): 20061186065 指導(dǎo)教師: 陳 青 2010 年 5 月基于單片機(jī) 控制 的 射頻 ID 卡 考勤機(jī)的設(shè)計(jì) Design of Radio Frequency ID Cards Attendance Based on Single-chip I 摘 要 射頻識(shí)別技術(shù)是一項(xiàng)利用射頻信號(hào)通過(guò)空間耦合 (交變磁場(chǎng)或電磁場(chǎng) )實(shí)現(xiàn)無(wú)接觸信息傳遞并通過(guò)所傳 遞的信息達(dá)到識(shí)別目的的技術(shù)。射頻識(shí)別是 非接觸式的自動(dòng)識(shí)別 ,它通過(guò)射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象并獲取相關(guān)數(shù)據(jù),識(shí)別工作無(wú)須人工干預(yù),可工作于各種惡劣環(huán)境。 射頻識(shí)別 技術(shù)中 , 標(biāo)簽與讀寫(xiě)器通過(guò)無(wú)線射頻信號(hào)交換信息 。 與條形碼技術(shù)相比, 射頻識(shí)別技術(shù) 可以節(jié)省更多的時(shí)間和人力、物力,降低生產(chǎn)成本,提高工作效率 。 由于 RFID標(biāo)簽具有非接觸識(shí)別、可識(shí)別高速運(yùn)動(dòng)物體、抗惡劣環(huán)境、保密性強(qiáng)、可同時(shí)識(shí)別多個(gè)識(shí)別對(duì)象等突出特點(diǎn),射頻標(biāo)簽已被廣泛應(yīng)用于工業(yè)、商業(yè)、交通運(yùn)輸、物流 、 物品管理系統(tǒng) 、 畜禽檢疫管理等眾多領(lǐng)域 。 一般而言射頻識(shí)別使用的通 信協(xié)議為 Wiegand協(xié)議(韋根協(xié)議)該協(xié)議內(nèi)容并不復(fù)雜,應(yīng)用廣泛。 另外,對(duì)于數(shù)據(jù)量較大的 系統(tǒng),涉及到數(shù)據(jù)存儲(chǔ)問(wèn)題,必須將數(shù)據(jù)存儲(chǔ)區(qū)與數(shù)據(jù)處理區(qū)分開(kāi),這 樣有利于系統(tǒng)的模塊化以及后續(xù)的維護(hù)。 本設(shè)計(jì)以 一 個(gè) RFID集成模塊 為例,由單片機(jī) AT89C52控制器完成了 公司的門(mén)禁系統(tǒng) 并把 人員考勤 信息 記錄 在片外數(shù)據(jù)存儲(chǔ)區(qū)中以及通過(guò) 液晶顯示 查詢 結(jié)果 。本設(shè)計(jì)詳細(xì)分析了基于單片機(jī)控制的 RFID考勤機(jī) 的方案和原理, 分塊 給出了系統(tǒng)的硬件設(shè)計(jì)及軟件編程思路 。 同時(shí)本設(shè)計(jì)可與上位機(jī)的數(shù)據(jù)庫(kù)連接,具有實(shí)用價(jià)值。 關(guān)鍵詞: 單片機(jī) AT89C52 射頻識(shí)別 韋根協(xié)議 數(shù)據(jù)存儲(chǔ) 液晶顯示 II Abstract Radio frequency identification technology is usage of a radio frequency signal through space coupling (alternating magnetic field or electromagnetic field) to achieve non-contact transmission of information and through the message to identify the purpose. RFID is non-contact automatic identification, it gets target and relevant data through the radio frequency signal automatically, identifies without human intervention, can work in a variety of harsh environments. In RFID technology, labels and readers exchange the information through radio frequency signals. Compared with bar code technology, RFID technology can save more time and manpower and material resources, reduce production costs, improve efficiency. As the RFID tag has a non-contact identification, it can identify high-speed objects, anti-poor environment, confidentiality, identify multiple targets simultaneously, such salient features making it widely used in industry, commerce, transportation, logistics, materials management systems, livestock quarantine management and many other fields. Generally speaking, Wiegand protocol is used as communication protocol which is not complicated and widely used. In addition, large data system is related to data storage problems. It must separate data storage areas from data processing areas, which is beneficial to the systems modular and subsequent maintenance. Regarding an RFID integrated module as sample, the design, controlled by single-chipAT89C52, complete the companys attendance system and record the personnel attendance information in the data storage area as well as carry out on liquid crystal display (LCD). It gives the detailed analysis of programs and principles of the RFID Attendance based on single-chip, and the hardware design and software programming ideas. At the same time, the design which can connect with PC database has practical value. Key words: single-chipAT89C52 RFID Wiegand protocol data storage LCD III 目 錄 摘要 . I Abstract . II 緒 論 . 1 1 整體方案設(shè)計(jì) . 2 1.1 系統(tǒng)總體基本構(gòu)成 . 2 1.1.1 系統(tǒng)實(shí)現(xiàn)方法 . 2 1.1.2 系統(tǒng)結(jié)構(gòu) . 2 1.2 系統(tǒng)工作原理 . 3 2 硬件電路設(shè)計(jì) . 4 2.1 系統(tǒng)硬件主要構(gòu)成 . 4 2.1.1 單片機(jī) AT89C52 . 4 2.1.2 穩(wěn)壓芯片 L7805 . 6 2.1.3 射頻識(shí)別集成模塊 RF01D . 6 2.1.4 片 外數(shù)據(jù)存儲(chǔ)器 AT24C16 . 8 2.1.5 點(diǎn)陣液晶屏 TS12864 . 9 2.2 系統(tǒng)硬件電路模塊 . 10 2.2.1 MCU小系 統(tǒng) . 10 2.2.2 電源模塊 . 12 2.2.3 射頻識(shí)別模塊 . 12 2.2.4 預(yù)警模塊 . 13 2.2.5 數(shù)據(jù)存儲(chǔ)模塊 . 13 2.2.6 開(kāi)關(guān)控制模塊 . 13 2.2.7 液晶顯示模塊 . 14 3 軟件設(shè)計(jì) . 15 3.1 主程序流程圖 . 15 3.2 各個(gè)模塊的設(shè)計(jì) . 16 IV 3.2.1 顯示模塊 . 16 3.2.2 時(shí)鐘模塊 . 18 3.2.3 射頻識(shí)別模塊 . 20 3.2.4 數(shù)據(jù)存儲(chǔ)模塊 . 22 3.2.5 開(kāi)關(guān)控制模塊 . 25 4 系統(tǒng)安裝與調(diào)試 . 26 4.1 系統(tǒng)硬件的安裝 . 26 4.2 系統(tǒng)硬件的調(diào)試 . 26 4.3 系統(tǒng)軟件的調(diào)試 . 27 4.3.1 顯示模塊的調(diào)試 . 27 4.3.2 時(shí)鐘模塊的調(diào)試 . 27 4.3.3 射頻識(shí)別模塊的調(diào)試 . 28 4.3.4 數(shù)據(jù)存儲(chǔ)模塊的調(diào)試 . 28 4.3.5 開(kāi)關(guān)控制模塊的調(diào)試 . 28 結(jié)論 . 29 致謝 . 30 參考文獻(xiàn) . 31 附錄 1 系統(tǒng)原理圖 . 32 附錄 2 硬件實(shí)物圖 . 33 附錄 3 系統(tǒng)軟件總程序 . 34 1 緒 論 單片機(jī)正以低廉的成本、強(qiáng)大的功能、較高的可靠性廣泛應(yīng)用于家電設(shè)備、儀器儀表、工業(yè)控制及城市建設(shè)各個(gè)領(lǐng)域中 。 縱觀我們現(xiàn)在生活的各個(gè)領(lǐng)域,從導(dǎo)彈的導(dǎo)航裝置,到飛機(jī)上各種儀表的控制,從計(jì)算機(jī)的網(wǎng)絡(luò)通訊與數(shù)據(jù)傳輸,到工業(yè)自動(dòng)化過(guò)程的實(shí)時(shí)控制和數(shù)據(jù)處理,以及我們生活中廣泛使用的各種智能 IC卡、電子寵物等,這些都離不開(kāi)單片機(jī) 1,3。 隨著技術(shù)進(jìn)步,無(wú)線通訊和無(wú)線網(wǎng)絡(luò) 也 迅速 在我們?nèi)粘I钪械母鱾€(gè)方面擴(kuò)展 。而 近年來(lái), RFID無(wú)線射頻識(shí)別技術(shù)的研究與應(yīng)用也 正飛速發(fā)展。 射頻識(shí)別技術(shù)具有很多優(yōu)勢(shì):通 過(guò)射頻信號(hào)自動(dòng)識(shí)別目標(biāo)對(duì)象,無(wú)需可見(jiàn)光源;具有穿透性,可以透過(guò)外部材料直接讀取數(shù)據(jù),保護(hù)外部包裝,節(jié)省開(kāi)箱時(shí)間;射頻產(chǎn)品可以在惡劣環(huán)境下工作,對(duì)環(huán)境要求低;讀取距離遠(yuǎn),無(wú)需與目標(biāo)接觸就可以得到數(shù)據(jù);支持寫(xiě)入數(shù)據(jù),無(wú)需重新制作新的標(biāo)簽;使用防沖突技術(shù),能夠同時(shí)處理多個(gè)射頻標(biāo)簽,適用于批量識(shí)別場(chǎng)合;可以對(duì) RFID標(biāo)簽所附著的物體進(jìn)行追蹤定位,提供位置信息。由于 RFID芯片的小型化和高性能芯片的實(shí)用化,射頻識(shí)別標(biāo)簽不僅幫助不同領(lǐng)域的管理者追蹤物品的位置和搬運(yùn)情況,還可以實(shí)時(shí)報(bào)告標(biāo)簽上附帶的其他信息,比如溫度和壓力 等。射頻標(biāo)簽是通過(guò)連接到數(shù)據(jù)網(wǎng)絡(luò)上的讀寫(xiě)器來(lái)提供此類信息的,迄今為止射頻識(shí)別標(biāo)簽主要作為條碼的延伸而應(yīng)用于工廠自動(dòng)化或者庫(kù)存管理等領(lǐng)域。但最終說(shuō)來(lái),尺寸更小的射頻識(shí)別標(biāo)簽將應(yīng)用于更先進(jìn)的領(lǐng)域內(nèi) 17,18。 本 課題 的核心在于射頻識(shí)別 , 同時(shí)也包括 數(shù)據(jù)存儲(chǔ)和顯示 ,通過(guò)對(duì)射頻信號(hào)的編碼和識(shí)別記錄相關(guān)信息 并進(jìn)行數(shù)據(jù)存儲(chǔ)和輸出顯示 ,這 使我們能夠 進(jìn)一步 掌握 射頻識(shí)別的 原理和設(shè)計(jì)方法,對(duì) 其有深入 的了解和認(rèn)識(shí) 。并且通過(guò) 實(shí)踐, 我們對(duì)所學(xué)過(guò)的理論知識(shí)有了 更深刻的理解 。 另外, 設(shè)計(jì) 該課題 使我 掌握 了 51 單片機(jī) 的軟硬件開(kāi)發(fā)工具的使用方 法,為 今 后從事相關(guān)行業(yè)的工作積累了經(jīng)驗(yàn)。目前我國(guó)的信息行業(yè)發(fā)展迅速, 無(wú)線通信更是在發(fā)展的前沿 , 但同時(shí)應(yīng)該清楚的認(rèn)識(shí)到我國(guó)的 信息 技術(shù)雖然發(fā)展迅速但和世界先進(jìn)水平還有一定的差距。因此 本 課題不論是對(duì)自己的就業(yè)還是對(duì)我國(guó) 射頻識(shí)別 技術(shù)的發(fā)展都有非?,F(xiàn)實(shí)與積極的意義 。 2 1 整體方案設(shè)計(jì) 1.1 系統(tǒng)總體基本構(gòu)成 本系統(tǒng) 以單片機(jī) AT89C52為控制核心,由 電源模塊、 射頻識(shí)別 模塊、 預(yù)警模塊、數(shù)據(jù)存儲(chǔ)模塊、開(kāi)關(guān)控制模塊和 LCD 液晶 顯示模塊組成,它們共同完成 射頻信號(hào)識(shí)別,信息讀取、記錄、查詢, 報(bào)警 以及顯示輸出 的任務(wù)。其中 電 源模塊用于穩(wěn)壓;射頻識(shí)別 模塊由 RF01D 與 單片機(jī) 相連接 ,射頻信號(hào)通過(guò)觸發(fā)外部中斷與單片機(jī)進(jìn)行通信 ; 預(yù)警模塊由蜂鳴器和 LED 燈構(gòu)成,用于區(qū)分本地卡與對(duì)外來(lái)卡,并對(duì)外來(lái)卡進(jìn)行報(bào)警; 數(shù)據(jù)存儲(chǔ)模塊 是 由 AT24C16 芯片構(gòu)成,進(jìn)行 刷卡 信息的記錄 和存儲(chǔ) ;開(kāi)關(guān)控制模塊由 4個(gè)按鍵組成,控制刷卡和時(shí)間調(diào)整 ;顯示模塊 由 TS12864 液晶構(gòu) 成,用來(lái)進(jìn)行 刷卡信息 的顯示 5,7。 1.1.1 系統(tǒng)實(shí)現(xiàn)方法 電源模塊以穩(wěn)壓芯片為核心,穩(wěn)定電壓的輸出; 射頻識(shí)別 模塊 由 天線接收和射頻信號(hào)解碼電路集成用以采集拾取 ID卡信息并編碼輸出 ; 預(yù)警模 塊是在單片機(jī)控制下進(jìn)行本地卡和外來(lái)卡的區(qū)分和報(bào)警; 數(shù)據(jù)存儲(chǔ)模塊可實(shí)現(xiàn)對(duì) 刷卡信息的記錄和 存儲(chǔ);開(kāi)關(guān)控制模塊主要是用來(lái)控制 卡片信息的 顯示 、查詢 和 時(shí)間的調(diào)整 ; LCD液晶 顯示模塊可根據(jù)單片機(jī)的控制顯示 刷卡的不同信息 。 1.1.2 系統(tǒng)結(jié)構(gòu) 圖 1-1 系統(tǒng)框圖 我所設(shè)計(jì)的電路基本思想 是這樣 的, 天線將刷卡的信息傳送到射頻識(shí)別模塊,在單片機(jī)控制下經(jīng)過(guò)密碼對(duì)比區(qū)分該卡是本地卡還是外來(lái)卡,若為外來(lái)卡則預(yù)警模 MCU小系統(tǒng) 射頻識(shí)別 模塊 開(kāi)關(guān)控制 模塊 電源 模塊 液晶顯示 模塊 數(shù)據(jù)存儲(chǔ) 模塊 3 塊啟動(dòng)報(bào)警;若為本地卡則預(yù)警模塊報(bào)安全并記錄刷卡時(shí)間 存儲(chǔ)在數(shù) 據(jù)存儲(chǔ)模塊中 ,同時(shí)將結(jié)果顯示輸出在 LCD液晶屏上 。 通過(guò)開(kāi)關(guān)控制模塊來(lái)查詢刷卡記錄并進(jìn)行翻頁(yè)查詢以及時(shí)間的校準(zhǔn) 8。 本系統(tǒng)的總體結(jié)構(gòu)如圖 1-1所示。 1.2 系統(tǒng)工作原理 天線將刷卡信息傳送給射頻識(shí)別模塊后輸出解碼信息給單片機(jī),單片機(jī)經(jīng)密碼對(duì)比區(qū)分卡的類別并將刷卡信息進(jìn)行存儲(chǔ)記錄最后送至 LCD液晶屏顯示。另外,開(kāi)關(guān)控制模塊控制 考勤信息的查詢和時(shí)間的校準(zhǔn) 。由于 刷卡時(shí)需要記錄相關(guān)信息,而單片機(jī)不支持程序操作 片內(nèi) ROM區(qū) , 因此需要對(duì)數(shù)據(jù)進(jìn)行片外存儲(chǔ),鑒于 89C52單片機(jī)的外部接口資源有限, 可以 采用 AT24C16芯 片進(jìn)行串行數(shù)據(jù)傳輸 12。 用開(kāi)關(guān)控制系統(tǒng)進(jìn)入查詢模式或時(shí)間校準(zhǔn)模式 13。 在查詢模式下,通過(guò)按鍵進(jìn)行上下 翻屏, 并從外部數(shù)據(jù)存儲(chǔ)其中調(diào)用數(shù)據(jù), 查詢不同卡的多次刷卡信息 。在時(shí)間校準(zhǔn)模式下,通過(guò)按鍵的組合來(lái)調(diào)整當(dāng)時(shí)的年份、月份、日期、小時(shí)以及分鐘以完成時(shí)間的調(diào)整與校正。 4 2 硬件電路設(shè)計(jì) 2.1 系統(tǒng)硬件主要構(gòu)成 整個(gè)系統(tǒng)硬件主要由 MCU小系統(tǒng) 、 電源模塊、 射頻識(shí)別模塊 、 預(yù)警模塊、 開(kāi)關(guān)控制模塊 、數(shù)據(jù)存儲(chǔ)模塊 及 顯示模塊 組成 。 主要的芯片和集成模塊有單片機(jī) AT89C52,穩(wěn)壓芯片 L7805, 射頻 感應(yīng)讀卡機(jī) RF01D,數(shù)據(jù)存儲(chǔ)芯片 AT24C16, ST12864點(diǎn)陣液晶屏。 2.1.1 單片機(jī) AT89C52 ( 1) 概述 AT89C52是美國(guó) ATMEL公司生產(chǎn)的低電壓、高性能 CMOS8位單片機(jī),片內(nèi)含 8K bytes的可反復(fù)擦寫(xiě)的 Flash只讀程序存儲(chǔ)器和 256bytes的隨機(jī)存取數(shù)據(jù)存儲(chǔ)器,器件采用ATMEL公司的高密度、非易失性存儲(chǔ)技術(shù)生產(chǎn),與標(biāo)準(zhǔn) MCS-51指令系列及 8052產(chǎn)品引腳兼容,片內(nèi)置通用 8位中央處理器和 Flash存儲(chǔ)單元,功能強(qiáng)大的 AT89C52單片機(jī)適用于許多較為復(fù)雜的控制應(yīng)用場(chǎng)合。 單片機(jī) 89C52引腳 圖如圖 2-1所示 。 圖 2-1 單片機(jī) AT89C52引腳 圖 ( 2) 硬件結(jié)構(gòu) AT89C52提供以下標(biāo)準(zhǔn)功能: 8K字節(jié) Flash閃速存儲(chǔ)器, 256字節(jié)內(nèi)部 RAM, 32個(gè)I/O口線, 3個(gè) 16位定時(shí) /計(jì)數(shù)器,一個(gè) 6向量?jī)杉?jí)中斷結(jié)構(gòu),一個(gè)全雙工串行通信口,片內(nèi)振蕩器及時(shí)鐘電路。 AT89C52的內(nèi)部結(jié)構(gòu)如圖 2-2所示。 5 圖 2-2 AT98C51內(nèi)部結(jié)構(gòu) 圖 ( 3) 引腳 功能 : 表 2-1 P3口第二功能 Vcc: 電源 線接入 。 GND: 電源 地 線接入 。 P0口: 8位雙向 I/O口, 即地址 /數(shù)據(jù)總線復(fù)用口。 P1口: 8位雙向 I/O口, 內(nèi) 置上拉電阻 。 P2口: 8位雙向 I/O口, 內(nèi) 置上拉電阻 。 P3口: 8位雙向 I/O口, 內(nèi) 置上拉電阻。P3口除了作為一般的 I/O口外, 還有 第二功能,如表 2-1所示。 RST: 復(fù)位輸入。 端口引腳 第二功能 P3.0 RXD(串行輸入口 ) P3.1 TXD(串行輸 出口 ) P3.2 INT0(外中斷 0) P3.3 INT1(外中斷 1) P3.4 T0(定時(shí) /計(jì)數(shù)器 0) P3.5 T1(定時(shí) /計(jì)數(shù)器 1) P3.6 WR(外部數(shù)據(jù)存儲(chǔ)器寫(xiě)選通 ) P3.7 RD(外部數(shù)據(jù)存儲(chǔ)器讀選通 ) 6 ALE/PROG: 地址鎖存允許端, 用于鎖存地址的低 8位字節(jié)。 PSEN: 程序儲(chǔ)存允許輸出是外部程序存儲(chǔ)器的讀選通信號(hào) 。 EA/VPP:外部訪問(wèn)允許。 EA=0訪問(wèn)外部程序存儲(chǔ)器 ; EA=1訪問(wèn) 內(nèi)部程序存儲(chǔ)器中的指令。 XTAL1: 振蕩器反相放大器的及內(nèi)部時(shí)鐘發(fā)生器的輸入端。 XTAL2: 振蕩器反相放大器的輸出端。 2.1.2 穩(wěn)壓芯片 L7805 L7805(其封裝如圖 2-3所示) 為 L7800系列產(chǎn)品。 在 L7800系列三端陽(yáng)性 調(diào)節(jié)器 可以采用 TO-220和 TO-220FP, TO-220FM, TO-3和 D2PAK的 封裝,幾個(gè)固定的輸出電壓,使其 具有了 廣泛的應(yīng)用。這些 調(diào)節(jié)器 可以提供本地 片上調(diào)節(jié) ,消除單點(diǎn) 調(diào)節(jié) 相關(guān)的分 圖 2-3 L7805引腳圖 配問(wèn)題。每種 類型采用內(nèi)部電流限流,熱停機(jī)和安全區(qū)保護(hù),使 基本上堅(jiān)不可摧。如果提供足夠的散熱,就可以提供超過(guò) 1A輸出電流。雖然設(shè)計(jì)主要是作為 穩(wěn)定 電壓的 穩(wěn)壓器,這些器件可用于外部元件取得可調(diào)電壓和電流。 2.1.3 射頻識(shí)別集成 模塊 RF01D ( 1) 概述 RF01D 感應(yīng)式讀卡機(jī)模塊是針對(duì) 125KHz 非接觸式 RFID 晶片而設(shè)計(jì)的讀卡機(jī)模塊,它能針對(duì)目前市面上 125KHz非接觸式 RFID 晶片如瑞士 EM 公司 H4001、 4102;臺(tái)科 TK4001、 4102 以及凌航科技 GK4001 晶片或其它規(guī)格相近產(chǎn)品進(jìn)行資料讀取與資料判斷,使用者可以發(fā)展此感應(yīng)式讀卡機(jī)建立相關(guān)應(yīng)用系統(tǒng),產(chǎn)品主要應(yīng)用范圍為人員考勤管理、門(mén)禁管制系統(tǒng)、玩具、動(dòng)物或物品 辯識(shí)及產(chǎn)品管理,此讀卡機(jī)模塊主要優(yōu)點(diǎn)有: 獨(dú)立性高,后段控制規(guī)劃容易,安裝簡(jiǎn)單 ; 資料讀取穩(wěn)定性高 ; 系統(tǒng)安全性高 , RFID 資料不重復(fù)且難以復(fù)制可以安全使用 ; 可規(guī)劃輸出控制標(biāo)準(zhǔn)介面格式(跳線 設(shè)置)。 ( 2) 硬件 結(jié)構(gòu) 感應(yīng)式讀卡機(jī)模塊硬 件 結(jié) 構(gòu)如圖 2-4所示。 7 RF 變換處理電路為 125KHz解碼電路 ,即用來(lái)解碼的比較器電路。 當(dāng)由 H4001系列芯片制作的非接觸式卡片進(jìn)入天線(感應(yīng)線圈)電磁場(chǎng)工作 范 圍內(nèi) ,引起電場(chǎng)振幅變化時(shí) ,RF 變換處理電路將這種振幅變化處理成脈沖 圖 2-4 感應(yīng)式讀卡機(jī)模塊硬件結(jié)構(gòu) 波型變化,并送至存儲(chǔ)器等候 CPU單片 機(jī) 的調(diào)用 15。 由 4.000MHz晶體振蕩器產(chǎn)生的基頻信號(hào),經(jīng) 32分頻、放大后,送至天線(感應(yīng)線圈),用以產(chǎn)生具有一定功率的、頻率穩(wěn)定的 125KHz 射頻信號(hào) ,處在該射頻信號(hào)的場(chǎng)強(qiáng)范圍內(nèi)的非接觸式卡片,便可以在該場(chǎng)強(qiáng)中獲得能量,再利用非接觸式卡片內(nèi) IC電路自帶的電源轉(zhuǎn)換處理模塊,將電磁場(chǎng)能量轉(zhuǎn)換為直 流電源,以 提 供整個(gè)非接觸式卡片電路用電。 ( 3) 讀卡機(jī)模塊電器特性 讀卡機(jī)模塊引出腳功能說(shuō)明 (表 2-2所示) : 表 2-2 讀卡機(jī)模塊引出腳功能 引腳號(hào) 名稱 功能描述 1 5VDC 5V直流輸入 2 CLK Wiegand26=D1; ABA=Clock; Rs232=NC 3 DAT Wiegand26=D0; ABA=DATA; Rs232=TXD 4 CP ABA 5 SW1 模式選擇 1 6 SW2 輸出模式選擇 2 7 SW3 輸出模式選擇 3 8 SW4 模式選擇 4 9 LED LED信號(hào)輸出 10 GND 地線輸入 8 A1 ANT 天線線圈連接 A2 ANT 天線線圈連接 編碼脈沖 由 SW2-SW3 的輸入決定輸出格式 如下表所示 : 表 2-3 SW2-SW3 控制的脈沖 輸出格式 SW2 SW3 輸出格式 0 1 RS232 1 0 Wiegand26 2.1.4 片外數(shù)據(jù)存儲(chǔ)器 AT24C16 ( 1) 概述 AT24C16是電可擦除可編程 ROM,采用 2048x8bit 的組織結(jié)構(gòu)以及兩線串行接口。電壓可允許低至 1.8V,待機(jī)電流和工作電流分別為 1uA和 1mA。 AT24C16 具有頁(yè)寫(xiě)能力,每頁(yè)為 16字節(jié)。 AT24C16具有 8-pin PDIP 和 8-pin SOP兩 種封裝形式。 ( 2) 硬件結(jié)構(gòu) AT24C16的硬件結(jié)構(gòu)如圖 2-5所示 。 圖 2-5 AT24C16 硬件結(jié)構(gòu) ( 3) AT24C16 電氣特性 AT24C16的引腳功能如表 2-4所示。 9 表 2-4 AT24C16 引腳功能 引腳號(hào) 名稱 功能描述 1 A0 A2、 A1、 A0 是器件地址輸入引 腳。 24C16 未使用器件地址引腳,總線上最多可以連接一個(gè) 16K 器件, A2、 A1、 A0 為空腳,可接地。 2 A1 3 A2 4 SDA 串行地址和數(shù)據(jù)輸入 /輸出。 SDA 是雙向串行數(shù)據(jù)傳輸引腳,漏極開(kāi)路,需外接上拉電阻到 VCC。 5 SCL 串行時(shí)鐘輸入。 SCL同步數(shù)據(jù)傳輸,上升沿?cái)?shù)據(jù)寫(xiě)入,下降沿?cái)?shù)據(jù)讀出。 6 WP 寫(xiě)保護(hù)。該引腳提供硬件數(shù)據(jù)保護(hù)。接地時(shí)允許數(shù)據(jù)正常讀寫(xiě)操作;接 VCC 時(shí)寫(xiě)保護(hù),只讀。 7 GND 地線接入 8 VCC 正電源線接入 2.1.5 點(diǎn)陣液晶屏 TS12864 ( 1) 概述 液晶顯示模塊是 128 64點(diǎn)陣的漢字圖形型液晶顯示模塊,可顯示漢字及圖形,內(nèi)置 8192個(gè)中文漢字( 16 16點(diǎn)陣)、 128 個(gè)字符( 8 16點(diǎn)陣)及 64 256點(diǎn)陣顯示 RAM( GDRAM)。可與 CPU直接接口,提供兩種界面來(lái)連接微處理機(jī): 8-位并行及串行兩種連接方式。具有多種功能:光標(biāo)顯示、畫(huà)面移位、睡眠模式等。 ( 2) 硬件結(jié)構(gòu) TS12864硬件結(jié)構(gòu)如圖 2-6所示。 圖 2-6 TS12864 硬件結(jié)構(gòu)圖 ( 3) 點(diǎn)陣液晶屏 TS12864電氣特性 TS12864引腳功能如表 2-5所示。 10 表 2-5 TS12864 引腳功能 引腳號(hào) 名稱 功能描述 1 VSS 接電源地線 2 VDD 接電源正極 3 VO 提供 LCD驅(qū)動(dòng)電壓 4 RS H:顯示數(shù)據(jù) ; L:顯示指令 5 R/W H:讀信號(hào); L:寫(xiě)信號(hào) 6 E 使能信號(hào)端 7-14 DB0-DB7 數(shù)據(jù)總線 15 PSB 模式選擇。 H:并行數(shù)據(jù); L:串行數(shù)據(jù) 16 NC 懸空 17 /RES 復(fù)位信號(hào)端 18 NC 懸空 19 LED(+) LED背光燈正極 20 LED(-) LDE背光燈負(fù)極 2.2 系統(tǒng)硬件電路模塊 整個(gè) 系統(tǒng)硬件主要由 MCU小系統(tǒng)、電源模塊、 射頻識(shí)別模塊、 預(yù)警模塊、 開(kāi)關(guān)控制模塊、數(shù)據(jù)存儲(chǔ)模塊 及 顯示模塊 組成 2,4。其中 MCU小系統(tǒng)以 AT89C52為核心配以復(fù)位電路和振蕩電路構(gòu)成;電源模塊以 L7805為核心構(gòu)成整個(gè)系統(tǒng)的穩(wěn)壓電源部分; 射頻識(shí)別模塊包含天線部分和射頻識(shí)別集成電路部分;預(yù)警模塊由 LED燈和蜂鳴器組成;開(kāi)關(guān)控制模塊由 4個(gè)獨(dú)立按鍵組成;數(shù)據(jù)存儲(chǔ)模塊以 AT24C16芯片為核心,對(duì)數(shù)據(jù)進(jìn)行片外存儲(chǔ);顯示模塊為 ST12864點(diǎn)陣液晶屏。 2.2.1 MCU 小系統(tǒng) ( 1) 單片機(jī) AT89C52 AT89C52作為主芯片對(duì)整個(gè)系統(tǒng)進(jìn)行控制。 ( 2) 復(fù)位電路 在上電或復(fù)位過(guò)程中,控制 CPU的復(fù)位狀態(tài):這段時(shí)間內(nèi)讓 CPU保持復(fù)位狀態(tài),11 而不是一上電或剛復(fù)位完畢就工作,防止 CPU發(fā)出錯(cuò)誤的指令、執(zhí)行錯(cuò)誤操作,也可以提高電磁兼容性能。 單片機(jī)復(fù)位電路設(shè)計(jì)的好壞 ,直接影響到整個(gè)系統(tǒng)工作的可靠性。許多用戶在設(shè)計(jì)完單片機(jī)系統(tǒng) ,并在實(shí)驗(yàn)室調(diào)試成功后 ,在現(xiàn)場(chǎng)卻出現(xiàn)了“死機(jī)”、“程序走飛”等現(xiàn)象 ,這主要是單片機(jī)的復(fù)位電路設(shè)計(jì)不可靠引起的。 單片機(jī)在啟動(dòng)時(shí)都需要復(fù)位,以使 CPU及系統(tǒng)各部件處于確定的初始狀態(tài),并從初態(tài)開(kāi)始工作。 51系 列單片機(jī)的復(fù)位信號(hào)是從 RST引腳輸入到芯片內(nèi)的施密特觸發(fā)器中的。當(dāng)系統(tǒng)處于正常工作狀態(tài)時(shí),且振蕩器穩(wěn)定后,如果 RST引腳上有一個(gè)高電平并維持 2個(gè)機(jī)器周期 (24個(gè)振蕩周期 )以上,則 CPU就可以響應(yīng)并將系統(tǒng)復(fù)位。單片機(jī)系統(tǒng)的復(fù)位方式有:手動(dòng)按鈕復(fù)位和上電復(fù)位 。 1 手動(dòng)按鈕復(fù)位 手動(dòng)按鈕復(fù)位需要人為在復(fù)位輸入端 RST上加入高電平(圖 2-7所示 )。一般采用的辦法是在 RST端和正電源 VCC之間接一個(gè)按鈕。當(dāng)人為按下按鈕時(shí),則 VCC的 +5V電平就會(huì)直接加到 RST端。手動(dòng)按鈕復(fù)位的電路如所 示。由于人的動(dòng)作再快也會(huì)使按鈕保持接通達(dá)數(shù)十毫秒,所以,完全能夠滿足復(fù)位的時(shí)間要求。 圖 2-7 手動(dòng)復(fù)位電路 2 上電復(fù)位 上電復(fù)位電路 ( 如圖 2-8所示 ) ,只要在 RST復(fù)位輸入引腳上接一電容至 VCC端,下接一個(gè)電阻到地即可。對(duì)于 CMOS型單片機(jī),由于在 RST端內(nèi)部有一個(gè)下拉電阻,故可將外部電阻去掉,而將外接電容減至 1F。上電復(fù)位的工作過(guò)程是在加電時(shí),復(fù)位電路通過(guò)電容加給 RST端一個(gè)短暫的高電平信號(hào),此高電平信號(hào)隨著VCC對(duì)電容的充電過(guò)程而逐漸回落,即 RST端的高電平 圖 2-8 上電復(fù)位電路 持續(xù)時(shí)間取決于電容的充電時(shí)間。為了保證系統(tǒng)能夠可靠地復(fù)位, RST端的高電平信號(hào)必須維持足夠長(zhǎng)的時(shí)間 。 上電時(shí), VCC的上升時(shí)間約為 10ms,而振蕩器的起振時(shí)間取決于振蕩頻率,如晶12 振頻率為 10MHz,起振時(shí)間為 1ms;晶振頻率為 1MHz,起振時(shí)間則為 10ms。在圖 2的復(fù)位電路中,當(dāng) Vcc掉電時(shí),必然會(huì)使 RST端電壓迅速下降到 0V以下,但是,由于內(nèi)部電路的限制作用,這個(gè)負(fù)電壓將不會(huì)對(duì)器件產(chǎn)生損害。另外,在復(fù)位期間,端口引腳處于隨機(jī)狀態(tài),復(fù)位后,系統(tǒng)將端口置為全“ l”態(tài)。如果系統(tǒng)在上 電時(shí)得不到有效的復(fù)位,則程序計(jì)數(shù)器 PC將得不到一個(gè)合適的初值,因此, CPU可能會(huì)從一個(gè)未被定義的位置開(kāi)始執(zhí)行程序 1,4,7。 ( 3) 振蕩電路 每個(gè)單片機(jī)系統(tǒng)里都有晶振 ,在單片機(jī)系統(tǒng)里晶振的作用非常大,他結(jié)合單片機(jī)內(nèi)部的電路,產(chǎn)生單片機(jī)所必須的時(shí)鐘頻率,單片機(jī)的一切指令的執(zhí)行都是建立在這個(gè)基礎(chǔ)上的,晶振的提供的時(shí)鐘頻率越高,那單片機(jī)的運(yùn)行速度也就越快。 振蕩電路(如圖 2-9所示) 的作用是為系統(tǒng)提供基本的時(shí)鐘信號(hào)。通常一個(gè)系統(tǒng)共用 圖 2-9 振蕩電路 一個(gè)晶振,便于各部分保持同步。有些通訊系 統(tǒng)的基頻和射頻使用不同的晶振,而通過(guò)電子調(diào)整頻率的方法保持同步。 2.2.2 電源模塊 電源模塊 以 L7805 芯片為核心,輔以相關(guān)電路構(gòu)成,其主要作用就是對(duì)外部電壓進(jìn)行轉(zhuǎn)換,輸出穩(wěn)定的 +5V 電壓對(duì)系統(tǒng)進(jìn)行供電 16(其電路如圖 2-10所示)。 2.2.3 射頻識(shí)別模塊 圖 2-10 電源模塊電路圖 射頻識(shí)別模塊是將從天線部分拾取的刷卡信息進(jìn)行編碼變換, 即 非接觸式卡片進(jìn)入天線(感應(yīng)線圈)電磁場(chǎng) 工作圍內(nèi) ,引起電場(chǎng)振幅變化時(shí) ,RF 變換處理電路將這種振幅變化處理成脈沖波型變化,并送至存儲(chǔ)器等候 單 片機(jī) 微控制器的調(diào)用 。其編碼方式選用的是 韋 根編碼。 其硬件連 圖 2-11 射頻識(shí)別電路連接圖 IN1GND2OUT3U47 8 0 51 2 3J1C O N 31 2 3J2C O N 3C41 0 u FC51 0 u F5V+ 5 V+ 9 VV C C1C L K2DAT3CP4S W 15S W 26S W 37S W 48L E D9GND10ANTA1ANTA2U2RF01D125KHZL1INDUCTORP 3 . 4P 3 . 2P 3 . 3+ 5 V13 接如圖 2-11 所示。 將 SW2 設(shè)為高電平, SW3 設(shè)為低電平,在這種模式下,射頻識(shí)別模塊 編碼輸出方式為 Wiegand 26;將 CLK和 DAT分別接單片機(jī)的外部中斷引腳 P3.2和 P3.3采用中斷觸發(fā)單片機(jī)記錄信息,可避免查詢方式造成的信息丟失。 2.2.4 預(yù)警模塊 預(yù)警模塊 是由 2 個(gè) LED 燈( 1 個(gè)紅色的, 1 個(gè)綠色的)和 1 個(gè)蜂鳴器以及相關(guān)的電路組成的。其作用是對(duì)刷卡的卡片進(jìn)行卡類識(shí)別后的報(bào)警 9。其具體響應(yīng)是:當(dāng)識(shí)別為 本地卡時(shí),綠色LED燈閃亮提示安全通過(guò);當(dāng)識(shí)別為外來(lái)卡時(shí),紅色LED燈閃亮,同時(shí)蜂鳴器發(fā)出聲音提示報(bào)警。整個(gè)模塊的電路如圖 2-12 所示。 對(duì)于 LED 燈的電路設(shè)計(jì)我原先的 設(shè)計(jì) 是用單片機(jī)的高電平驅(qū)動(dòng)點(diǎn)亮 ,但實(shí)際上電運(yùn)行時(shí)發(fā)現(xiàn)燈的亮 圖 2-12 預(yù)警電路 度較暗,經(jīng)研究發(fā)現(xiàn)是由于電路設(shè)計(jì)不夠合理,導(dǎo)致電流較大,如此設(shè)計(jì)很有可能會(huì)對(duì)單片機(jī)的內(nèi)部電路造成損傷,改正設(shè)計(jì)方案后問(wèn)題就得到了解決。 2.2.5 數(shù)據(jù)存儲(chǔ)模塊 該模塊的核心部分是 AT24C16 芯片,完成對(duì)數(shù)據(jù)的片外存儲(chǔ)。 因?yàn)閱纹瑱C(jī)要對(duì)刷卡信息進(jìn)行實(shí)時(shí)記錄 ,因此數(shù)據(jù)不能存儲(chǔ)于單片機(jī)內(nèi)部,只能進(jìn)行片外存儲(chǔ),考慮到 51系列單片機(jī)的資源不是足夠豐富,因此不能進(jìn)行并行數(shù)據(jù)存儲(chǔ),選擇串行數(shù)據(jù)傳輸更為合理。串行數(shù)據(jù)存儲(chǔ)只占用單片機(jī)的 2 個(gè)引腳,其缺點(diǎn)在于時(shí)序有些復(fù)雜,對(duì)軟件編寫(xiě)要求比較高。 2.2.6 開(kāi)關(guān)控制模塊 開(kāi)關(guān)模塊 由 4 個(gè)獨(dú)立的按鍵組成, 分別分配給單片機(jī)的 P2.5-P2.7以及 P1.0端口。 開(kāi)關(guān)模塊的作用是控制屏幕的內(nèi)容顯示和時(shí)間的校準(zhǔn),其電路圖如圖 2-13所示。 當(dāng)按鍵按下時(shí),對(duì)應(yīng)的單片機(jī)引腳高電平會(huì)被拉低,當(dāng)檢測(cè)到某引腳為低電平時(shí)就執(zhí)行 圖 2-13 開(kāi)關(guān)控 制模塊電路圖 相應(yīng)的功能。 開(kāi)關(guān) 控制 模塊 的具體 功能 是:當(dāng) S5 偶數(shù)次按下時(shí)進(jìn)入查詢模式,即對(duì)D1 re dD2 g re enP 3. 0P 3. 1Q19 01 3R79 1KR81KP 3. 5U6B U Z ZE RR 1 04 70R93 0K+ 5VS2S3S4S5R31KR41KR51KR61K+ 5VP 2. 5P 2. 6P 2. 7P 1. 014 刷卡信息進(jìn)行查詢, S2是向下翻屏, S3是向上翻屏;當(dāng) S5奇數(shù)次被按下時(shí)就進(jìn)入時(shí)間校準(zhǔn)功能,即用按鍵 S2-S4進(jìn)行時(shí)間調(diào)節(jié) ,其 時(shí)間校準(zhǔn)時(shí)的 真值表 如表 2-6所示。 表 2-6 開(kāi)關(guān)控制模塊 時(shí)間校準(zhǔn) 真值表 S4 S3 S2 功能描述 0 0 0 無(wú) 0 0 1 調(diào)整年份 0 1 0 調(diào)整月份 0 1 1 調(diào)整日期 1 0 0 無(wú) 1 0 1 調(diào)整時(shí)針 1 1 0 調(diào)整分針 1 1 1 無(wú) 另外, 由于鍵盤(pán)在執(zhí) 行的時(shí)候是有抖動(dòng)延時(shí)的,在電子設(shè)計(jì)之中都會(huì)在硬件設(shè)置一個(gè)大約 10毫秒的延時(shí)來(lái)解決鍵盤(pán)防抖動(dòng)的問(wèn)題 。這部分我采用軟件延時(shí)的方法解決。 2.2.7 液晶顯示模塊 TS12864 是尺寸為 128x64 的點(diǎn)陣液晶屏, 可以顯示 4 行,每行 8個(gè)中文字( 16 個(gè)英文字母或字符)。 由于刷卡后要查詢信息,此液晶屏比多位數(shù)碼管顯示更為直觀。 TS12864 液晶顯示模塊是采用控制芯片 ST7920來(lái)控制顯示的。該顯示器能夠使用串口和并口兩種接線方式。并口可以選擇 4線和 8線兩種 。為 了方 圖 2-14 液晶模塊電路圖 便軟件部分的處理, 我選擇并口 8線的連接方式,其電路如圖 2-14 所示。 P 1 .0 (T 2 )1P 1 .1 (T 2 E X )2P 1 .23P 1 .34P 1 .45P 1 .5 (M O S I )6P 1 .6 (M I S O )7P 1 .7 (S C K )8R S T9P 3 .0 (R X D )10P 3 .1 (T X D )11P 3 .2 (IN T 0)12P 3 .3 (IN T 1)13P 3 .4 (T 0 )14P 3 .5 (T 1 )15P 3 .6 (W R )16P 3 .7 (R D )17X T A L 218X T A L 119G N D20P 2 .0 (A 8 )21P 2 .1 (A 9 )22P 2 .2 (A 1 0)23P 2 .3 (A 1 1)24P 2 .4 (A 1 2)25P 2 .5 (A 1 3)26P 2 .6 (A 1 4)27P 2 .7 (A 1 5)28P S E N29A L E / P R O G30E A /V P P31P 0 .7 (A D 7)32P 0 .6 (A D 6)33P 0 .5 (A D 5)34P 0 .4 (A D 4)35P 0 .3 (A D 3)36P 0 .2 (A D 2)37P 0 .1 (A D 1)38P 0 .0 (A D 0)39V C C40U1AT89S52V S S1V D D2VO3R S (D /I)4R /W5E6D B 07D B 18D B 29D B 310D B 411D B 512D B 613D B 714P S B15NC16R S T17NC18L E D ( + )19L E D ( -)20U3ST12864A-3+ 5 V+ 5 VP 2 .7P 2 .6P 2 .5+ 5 V15 3 軟件設(shè)計(jì) 本設(shè)計(jì)的軟件部分主要由 顯示 模塊、 時(shí)鐘模塊、射頻識(shí)別模塊、外部數(shù)據(jù)存儲(chǔ)模塊和開(kāi)關(guān)控制模塊 組成 。整個(gè)系統(tǒng)的硬件需要軟件的驅(qū)動(dòng),才能實(shí)現(xiàn)相應(yīng)的功能。軟件 控制 著硬件,讓其 按照 指定的要求,執(zhí)行相應(yīng)的功能。 3.1 主程序 流程圖 主程序的流程圖如圖 3-1 所示。由該流程圖可以看出, 在主程序中, 對(duì)各模塊先進(jìn)行初始化 , 通過(guò)對(duì)開(kāi)關(guān)控制模塊的查詢以及各標(biāo)志位的查詢進(jìn)入相應(yīng)功能模塊,完成相關(guān)功能后將結(jié)果在液晶屏上進(jìn)行顯示。 其中, 時(shí)鐘模塊和射頻識(shí)別模塊涉及中斷服務(wù) 。 開(kāi) 始各 模 塊 初 始 化S5按 下 奇 數(shù) 次 ?時(shí) 間 校 準(zhǔn) 模 塊刷 卡 查 詢 模 塊是 否 有 射 頻 識(shí)別 信 號(hào) 標(biāo) 志 ?射 頻 識(shí) 別 模 塊顯 示 模 塊YNNY數(shù) 據(jù) 存 儲(chǔ) 模 塊 圖 3-1 主程序流程圖 中斷服務(wù) 包括定時(shí)中斷和外部中斷 2 種 : 定時(shí)中斷使用的是定時(shí)計(jì)數(shù)器 0,用于時(shí)鐘模塊的秒針的走時(shí) ,其流程如圖 3-2 a) 所示 ;外部中斷使用了 外部中斷 0和外部中斷 1,用于拾取射頻識(shí)別信號(hào),之后利用射頻識(shí)別子程序進(jìn)行密碼對(duì)比,其 流程如圖 3-2 b) 所示。 16 定 時(shí) 中 斷 開(kāi) 始是 否 達(dá) 到 1 S ?計(jì) 數(shù) 加 1時(shí) 鐘 程 序YN退 出 外 部 中 斷 開(kāi) 始射 頻 信 號(hào) 拾 取是 否 結(jié) 束 ?產(chǎn) 生 射 頻識(shí) 別 標(biāo) 志YN退 出 a) 定時(shí)中斷 b) 外部中斷 圖 3-2 中斷 服務(wù)程序流程 中斷服務(wù)程序段如下: /*定時(shí)中斷 */ /定時(shí)計(jì)數(shù)器 0定時(shí)為 1s void timer(void) interrupt 1 TH0=0x3c; TL0=0xb0; /定時(shí)滿 1S后就調(diào)用時(shí)鐘子程序 if(count+=20) count=0; clock(); /*外部 中斷 */ /外部中斷 0( 記錄 數(shù)據(jù) 0線 上負(fù)脈沖 ) void int0(void) interrupt 0 if(cnt26&flag=0) tempcnt+=0; elsecnt=0;flag=1;/產(chǎn)生識(shí)別標(biāo)志 /外部中斷 1( 記錄 數(shù)據(jù) 1線 上負(fù)脈沖 ) void int1(void) interrupt 2 if(cnt26&flag=0) tempcnt+=1; elsecnt=0;flag=1;/產(chǎn)生識(shí)別標(biāo)志 3.2 各個(gè)模塊的設(shè)計(jì) 3.2.1 顯示 模塊 液晶 顯示 模塊 工作時(shí)顯示一個(gè)字符的主要 流程 是 先 設(shè)定工作模式 , 再檢測(cè)忙信號(hào) , 最后 傳送 數(shù)據(jù)。 其 流程 如圖 3-3所示。 17 圖 3-3 顯示模塊流程圖 圖 3-4 顯示模塊寫(xiě)數(shù)據(jù)時(shí)序圖 液晶 TS12864在并行 8為數(shù)據(jù)線 寫(xiě)數(shù)據(jù) 時(shí) 的時(shí)序如圖 3-4所示。 顯示 模塊 的 核心 程序 片 段如下: /*按指定位置顯示一串字符 */ void DisplayListChar(unsigned char X, unsigned char Y, unsigned char data *DData) /X、 Y分別為行列坐標(biāo), DData 為待寫(xiě)入字符串 unsigned char ListLength,X2; /定義相關(guān)變量 ListLength = 0; X2=X; if(Y4) Y=4; X &= 0x0F; /限制 X不 大于 16, Y不大于 4 switch(Y) /根據(jù)行數(shù) Y來(lái)選擇相應(yīng)地址 case 1:X2|=0X80; break; case 2:X2|=0X90; break; case 3:X2|=0X88; break; case 4:X2|=0X98; break; 檢查忙碌 初始化 送 命令 寫(xiě)數(shù)據(jù) 寫(xiě)完否? 顯示 Y N 18 WriteCommandLCD(X2, 1); /發(fā)送地址碼 while (DDataListLength=0x20) /若到達(dá)字串尾則退出 if (X =60) /當(dāng)秒針達(dá)到 60,分針進(jìn)位,秒針清 0 time.min+; time.sec=0; if(time.min=60) /當(dāng)分針達(dá)到 60,時(shí)針進(jìn)位,分針清 0 time.hour+; time.min=0; if(time.hour=24) /當(dāng)時(shí)針達(dá)到 24,日期進(jìn)位,時(shí)針清 0 time.day+; time.hour=0; switch(flag1) /不同的月份選擇不同的天數(shù) case 0 : mon=30; break; /小月 30天 case 1 : mon=31; break; /大月 30天 case 2 : mon=28; break; /二月 30天 20 default: mon=30; break; /其他默認(rèn) 30天 if(time.day=mon) /當(dāng)日期達(dá)到相應(yīng)天數(shù),月進(jìn)位,日期置 1 time.month+; time.day=1; if(time.month=12) /當(dāng)月份達(dá)到 12,年份進(jìn)位,月份置 1 time.year+; time.month=1; 3.2.3 射頻識(shí)別 模塊 圖 3-6 Wiegand 26 位數(shù)據(jù)輸出時(shí)序 圖 射頻識(shí)別模塊的軟件核心是 Wiegand協(xié)議 。 Wiegand協(xié)議是國(guó)際上統(tǒng)一的標(biāo)準(zhǔn),有很多格式,標(biāo)準(zhǔn)的 26bit 應(yīng)該是最常用的格式。它適用于 涉及門(mén)禁控制系統(tǒng)的讀21 卡器和卡片的許多特性;其協(xié)議并沒(méi)有定義通訊的波特率、也沒(méi)有定義數(shù)據(jù)長(zhǎng)度韋根格式主要定義是數(shù)據(jù)傳輸方式 :Data0和 Data1兩根數(shù)據(jù)線分別傳輸 0 和 1。 現(xiàn)在應(yīng)用最多的是26bit,34bit, 36bit, 44bit等等。 Wiegand 數(shù)據(jù)輸出由二根線組成,分別是 DATA0和 DATA1;二根線分別將 0或 1輸出: 輸出 0時(shí) ,DATA0線上出現(xiàn)負(fù)脈沖;輸出 1時(shí) , DATA1 圖 3-7 射頻識(shí)別模塊程序流程圖 線上出現(xiàn)負(fù)脈沖 。其中 負(fù)脈沖寬度 為 100mS, 周期 為 1600mS。 Wiegand 26 位數(shù)據(jù)輸出時(shí)序如圖 3-6所示。 Wiegand 26位輸出格式 如下表所示 : 表 3-1 Wiegand 26 位輸出格式 E XXXX XXXX XXXX XXXX XXXX XXXX O 前 12bit偶校驗(yàn) 位 前 12位 后 12位 后 12bit奇校驗(yàn) 位 以上數(shù)據(jù)從左至右順序發(fā)送。高位在前。 電子卡的 Wiegand 26碼 的接收對(duì)時(shí)間的實(shí)時(shí)性要求比較高,如果用查詢的方法接收會(huì)出現(xiàn)丟幀的現(xiàn)象:假設(shè)查詢到 DATA0 為 0 時(shí)主程序正在指向其他任務(wù),等主程序執(zhí)行完該任務(wù)時(shí) DATA0已經(jīng)變?yōu)?1了,那么這 樣就導(dǎo)致了一個(gè) 0bit丟了,這樣讀出的卡號(hào)肯定奇偶校驗(yàn)通不過(guò),所以表現(xiàn)出 CPU接收不到 ID模塊發(fā)送的卡號(hào)了。唯一的辦法是在外部中斷里接收每個(gè) bit11,15。 射頻識(shí)別 模塊的 子程序 流程如圖 3-7所示 。 其中關(guān)于 卡號(hào) 對(duì)比的部分涉及到外部中斷服務(wù) 產(chǎn)生的卡號(hào)信息 。 射頻識(shí)別 模塊的程序 片 段如下: /*射頻識(shí)別模塊 */ void recognition(void) uint cardcd=0; for(i=0;i16;i+) /計(jì)算刷卡傳遞的卡號(hào)信息 cardcd+=temp9+i(15-i); if(cardcd=57099) /本地卡 號(hào) 1對(duì)比 開(kāi)始 計(jì)算卡號(hào)并對(duì)比 本地卡? 報(bào)警鳴笛 記錄信息 N Y 退出 22 GREEN=0;eeprom_wt(0,num0-1); /安全通過(guò),綠燈亮并記錄刷卡信息 else if(cardcd=55318) /本地卡號(hào) 2對(duì)比 GREEN=0;eeprom_wt(1,num1-1); /安全通過(guò),綠燈亮并記錄刷卡信息 else if(cardcd=58529) /本地卡 號(hào) 3對(duì)比 GREEN=0;eeprom_wt(2,num2-1); /安全通過(guò),綠燈亮并記錄刷卡信息 else /外來(lái)卡 BEEP=1; /報(bào)警:蜂鳴器響,紅燈亮 RED=0; P3&=0xdf; P3|=0x03; /將 LED燈和蜂鳴器熄滅 flag=0; /識(shí)別完成 將標(biāo)志位清 0 3.2.4 數(shù)據(jù)存儲(chǔ)模塊 AT24C16的總線 時(shí)序如圖 3-8所示。 圖 3-8 AT24C16 總線時(shí)序 圖 23 ( 1) 數(shù)據(jù)存儲(chǔ)的起始和終止條件 數(shù)據(jù)線和時(shí)鐘線都為高則稱總線處于空閑狀態(tài),當(dāng) SCL為高, SDA 的下降沿叫做起始條件,開(kāi)始進(jìn)行數(shù)據(jù)的讀或?qū)懀划?dāng) SCL 為高, SDA的上升沿叫做終止條件,終止數(shù)據(jù)的讀或?qū)懀?如圖 3-9所示。其相應(yīng)程序如下: 圖 3-9 數(shù)據(jù)存儲(chǔ)的起始和終止條件 /*起始條件 */ void star(void) /時(shí)鐘線為高的條件下數(shù)據(jù)線的下降沿 SDA=1; SCL=1; SDA=0; /*終止條件 */ void stop(void) /時(shí)鐘線為高的條件下數(shù)據(jù)線的上升沿 SDA=0; SCL=1; SDA=1; ( 2) 數(shù)據(jù) 傳送 每個(gè)時(shí)鐘脈沖傳送一位數(shù)據(jù)。 SCL為高時(shí), SDA必須保持穩(wěn)定,因?yàn)榇藭r(shí) SDA的改變會(huì)被認(rèn)為是控制信號(hào)。其時(shí)序見(jiàn)圖 3-10,以下 代碼 是 送 一個(gè)字節(jié)( 8 位)的 程序 片段。 圖 3-10 位傳送時(shí)序圖 /*送 一個(gè)字節(jié) ( 8 位) 的數(shù)據(jù) */ 24 for(i=0;i8;i+) /一個(gè)字節(jié) 8位,循環(huán) 8次 SCL=0; temp1=temp&0x80; /提出一個(gè)字節(jié)的最高位 if(temp1=0x80) /判斷最高位為 1則將數(shù)據(jù)線置 1否則 清 0 SDA=1; else SDA=0; SCL=1; /按時(shí)序設(shè)時(shí)鐘線使器件為允許數(shù)據(jù)改變 SCL=0; temp=temp1; /向左移出 1位 ,進(jìn)行下一位的傳送 ( 3) 應(yīng)答 總線上的接收器 每接收到一個(gè)字節(jié)就會(huì)產(chǎn)生一個(gè)應(yīng)答,主器件必須產(chǎn)生一個(gè)對(duì)應(yīng)的額外的時(shí)鐘脈沖。 其時(shí)序如圖 3-11所示。 接收器拉低 SDA線表示應(yīng)答,并在應(yīng)答脈沖期間保持穩(wěn)定的低電平。當(dāng)主器件做接收器時(shí),必須發(fā)出數(shù)據(jù)傳輸結(jié)束的信號(hào)給發(fā)送器,即發(fā)送器件必須釋放 SDA 線為高 ,以便主器件產(chǎn)生停止條件。其程序如下: 圖 3-11 應(yīng)答時(shí)序圖 /*進(jìn)行 應(yīng)答 */ void ack(void) uchar z=0; 25 /條件判斷 ,SDA=1,則沒(méi)有應(yīng)答。如果沒(méi)有應(yīng)答則延時(shí): z50, z+;后返回 while(SDA=1)&(z50) z+; SCL=0; 3.2.5 開(kāi)關(guān)控制模塊 開(kāi)關(guān)控制模塊有 2方面的作用: 1)調(diào)整日期和時(shí)間 ; 2)查詢刷卡信息時(shí)翻頁(yè)。其流程如圖 3-12 a)、 3-12 b) 所示。 其中 P2 表示 的是單片機(jī)的 P2 端口。 S2、 S3、S4分別與 P2.5、 P2.6、 P2.7 引腳相連。 P2=6 是 S2按下; P2=5 是 S3按下; P2=3 是 S4按下; P2=2是 S2和 S4按下; P2=2是 S3和 S4按下。 a) 時(shí)間日期調(diào)整流程圖 b) 翻頁(yè)流程圖 圖 3-12 開(kāi)關(guān)控制模塊流程 其 程序 參見(jiàn)附錄 2 開(kāi)始 P2=6? 調(diào)分針 P2=5? 調(diào)時(shí)針 P2=3? 調(diào)日期 P2=2? 調(diào)日期 P2=1? 調(diào)年份 Y Y Y Y Y N N N N 退出 N 開(kāi)始 P2=6? 查詢下一頁(yè) Y P2=5? 查詢上一頁(yè) Y N 退出 N 26 4 系統(tǒng)安裝與調(diào)試 4.1 系統(tǒng)硬件的安裝 在 系統(tǒng)原理圖 16出來(lái)后, 由于電路的連接和芯片的數(shù)目并不多,就考慮自己在蜂窩板上搭建焊接電路而不用印制電路板,一來(lái)可以節(jié)約成本,二來(lái)可以鍛煉自己的焊接技術(shù)。 我首先找齊了所需要的芯片、芯片座、電阻、電容 、三極管、發(fā)光二極管 等元器件,然后就 用萬(wàn)用表對(duì)這些 元件進(jìn)行了相應(yīng)的測(cè)試,保證每個(gè)元件的基本功能正常之后就是對(duì)照原理圖開(kāi)始搭建電路并進(jìn)行焊接 。 自己搭建焊接電路時(shí)最好一個(gè)模塊一個(gè)模塊的做,這樣可以避免漏掉或 多添 一些線 , 造成不必要的錯(cuò)誤 。 在 搭建 焊接電路板的時(shí)候, 不僅要對(duì)著原理圖將每個(gè)元件 布置好還要特別注意一些元件的極性問(wèn)題,例如二極管,充電電容等,如果焊接反了會(huì)造成嚴(yán)重后果。我在做硬件時(shí)特別注意雙面焊接時(shí)正面橫著布線,反面豎著布線,這樣可以避免走飛線,使板面更美觀。另外,為了方便硬件和軟件的調(diào)試,我特意將電源線,地線,普通線用紅,黑,藍(lán)三種顏色區(qū)分 ;將單片機(jī) 多出來(lái)的端口與跳線相連,方便檢測(cè)軟件的中間功能 ;給每個(gè)芯片或集成模塊都加上了芯片座和插槽,方便程序的燒錄和存儲(chǔ)數(shù)據(jù)的讀寫(xiě)以及其他模塊單獨(dú)的調(diào)試。 4.2 系統(tǒng)硬件的調(diào)試 在完成了 系統(tǒng)硬件的安裝和 部分 軟件的編寫(xiě)以后,就要開(kāi)始系統(tǒng)硬件的調(diào)試了。因?yàn)?是 手工制作的硬件電路 ,線路上有問(wèn)題 是不可避免的 , 再加上是人工焊接,虛焊或者是漏焊的情況也是 有 可能的 發(fā)生的 。 先從電路的線路開(kāi)始檢查。我用萬(wàn)用表的蜂鳴檔測(cè)試任意一個(gè)芯 片的電源和地線是否短路,因?yàn)?,一旦出現(xiàn)短路的現(xiàn)象,芯片將會(huì)被燒壞 。在確定了沒(méi)有短路的現(xiàn)象后我又對(duì)照著電路 圖檢查 每個(gè)元件之間應(yīng)該連接在一起的 點(diǎn) 是否聯(lián)通了 9。 之后是對(duì)其進(jìn)行上電檢測(cè) 。 我將空的單片機(jī)放在電路上,上電后發(fā)現(xiàn) 液晶屏背光燈不亮,蜂鳴器也不響,用電壓表測(cè)電源端電壓發(fā)現(xiàn)遠(yuǎn)不到 5V,經(jīng)過(guò)仔細(xì)檢查,發(fā)現(xiàn)是射頻識(shí)別模塊安裝的鏡像相反 ,于是這一模塊需拆掉重焊。改后的電路 上電測(cè)試時(shí)每個(gè)模塊都有了相應(yīng)的反應(yīng)。 我本以為硬件沒(méi)有問(wèn)題了,但是后來(lái)在編寫(xiě)好液晶顯示的程序后,發(fā)現(xiàn)無(wú)論軟27 件如何調(diào)試,就是沒(méi)有現(xiàn)象出來(lái),于是開(kāi)始懷疑是硬件的問(wèn)題,經(jīng)過(guò)摸排查找,發(fā)現(xiàn)問(wèn)題的癥結(jié)在于 我沒(méi)有將單片機(jī)的第 31引腳接電源,改過(guò)來(lái)后就基本有了 顯示。 后來(lái)在調(diào)試預(yù)警模塊時(shí),發(fā)現(xiàn) LED 燈的亮度過(guò)暗,經(jīng)老師指點(diǎn),原因在于我設(shè)計(jì)的電路 (圖 4-1 a)所示) 不合理, LED共陰極的連接并 直接用單片機(jī)的高電平 驅(qū)動(dòng) LED燈會(huì)使過(guò)大的電流損傷芯片 9。最好應(yīng)該為 LED共陽(yáng)極的連接并用低電平驅(qū)動(dòng)LED燈(圖 4-1 b)所示)。 D1 re dD2 g re enP 3 . 0P 3 . 1 R 1 04 7 0 D1 re dD2 g re enP 3 . 0P 3 . 1 R 1 04 7 0+ 5 V a) LED 共陰極連接 b) LED 共陽(yáng)極連接 圖 4-1 LED 燈連接 4.3 系統(tǒng)軟件的調(diào)試 軟件的調(diào)試是一項(xiàng)需要耐心和細(xì)致的工作。其中最重要的是要保證單片機(jī)正常工作,只有在這個(gè)前提下才能進(jìn)行其他模塊的調(diào)試。 因此需要 先編寫(xiě)一些簡(jiǎn)單的程序?qū)纹瑱C(jī)的端口進(jìn)行檢測(cè),能正常工作則基本上沒(méi)有問(wèn)題。 我使用的編程工具是keil,這是基于 C語(yǔ)言的 51系列單片機(jī)開(kāi)發(fā)平臺(tái)。用 C51進(jìn)行程序編寫(xiě)其優(yōu)點(diǎn)在于邏輯性強(qiáng),可移植性高;其缺點(diǎn)是容易產(chǎn)生冗余代碼,延時(shí)不夠精準(zhǔn)需要調(diào)整, 其效率沒(méi)有匯編高 6,14。 4.3.1 顯示 模塊的調(diào)試 液晶屏的顯示與時(shí)序有很重要的關(guān)系,如果時(shí)序不正確 屏幕上就不能進(jìn)行顯示。起初液晶沒(méi)有顯示,我認(rèn)為是時(shí)序的問(wèn)題,于是我對(duì)照示波器顯示的脈沖寬度對(duì)時(shí)序進(jìn)行了精準(zhǔn)的調(diào)試 ,但還是沒(méi)顯示只是偶爾會(huì)出現(xiàn)亂碼。在測(cè)試液晶的數(shù)據(jù)線 ,有數(shù)據(jù)傳輸?shù)珮O不穩(wěn)定,于是懷疑是硬件出現(xiàn)了問(wèn)題,最后終于找到了問(wèn)題所在,確實(shí)是硬件問(wèn)題,修改后顯示就正常了。 4.3.2 時(shí)鐘 模塊的調(diào)試 時(shí)鐘模塊涉及到單片機(jī)的定時(shí)計(jì)數(shù)中斷。在調(diào)試的時(shí)候,我為了確定中斷 是否正常 工作現(xiàn)在中斷里設(shè)置了一個(gè)小程序,即每定時(shí) 1S 就在測(cè)試引腳 P1.0 處輸出一28 個(gè)反向電平,然后通過(guò)示波器查看結(jié)果。開(kāi)始時(shí),我將時(shí)鐘程序放在主程序里,但是在顯示時(shí)發(fā)現(xiàn) 時(shí)鐘的秒針的跳動(dòng)不規(guī)律,其原因在于主程序的循環(huán)周期會(huì)錯(cuò)過(guò)中斷產(chǎn)生的信號(hào),于是我將時(shí)鐘程序的調(diào)用放進(jìn)中斷里,問(wèn)題就得到了解決 10,11。另外 ,有段時(shí)間,時(shí)鐘在走一段時(shí)間后會(huì)突然自動(dòng)復(fù)位,軟件上我檢查了沒(méi)有任何問(wèn)題,可能是系統(tǒng)在編譯的時(shí)候誤修改了相關(guān)的寄存器,后來(lái)這個(gè)問(wèn)題得到了自動(dòng)解決。 4.3.3 射頻識(shí)別模塊的調(diào)試 射頻識(shí)別模塊在調(diào)試的時(shí)候我采用將刷卡信息顯示在液晶屏上的方法確定每張卡的對(duì)應(yīng)碼,但出現(xiàn)了同一張卡每次刷卡信息不一致的現(xiàn)象,究其原因是預(yù)設(shè)數(shù)組與卡碼不兼容,設(shè)定標(biāo)志位檢驗(yàn)后問(wèn)題就得到了解決。同時(shí),為了使程序運(yùn)行效率更高,我對(duì) 卡號(hào) 對(duì)比程序進(jìn)行了優(yōu)化, 先用算法 將 卡號(hào)計(jì)算出來(lái)再進(jìn)行比較 , 之后再對(duì)計(jì)算出的卡號(hào)進(jìn)行字符化 ,這樣程序能夠運(yùn)行得更 快。 4.3.4 數(shù)據(jù)存儲(chǔ)模塊的調(diào)試 我在設(shè)計(jì)的時(shí)候是將外部數(shù)據(jù)存儲(chǔ)器分為 3 個(gè)部分, 0x00-0x4f、 0x50-0x9f、0xa0-0xff分別用于記錄三張本地卡的刷卡信息,但在調(diào)試時(shí)發(fā)現(xiàn) AT24C16 中記錄的最后一張卡的 信息 寫(xiě)地址總是不正確,仔細(xì)分析程序后發(fā)現(xiàn) 是有條賦值語(yǔ)句沒(méi)寫(xiě),導(dǎo)致后續(xù)地址錯(cuò)誤,改正后就對(duì)了。 4.3.5 開(kāi)關(guān)控制模塊的調(diào)試 由于只有四個(gè)按鍵,要完成時(shí)間校準(zhǔn)和信息查詢,不可能只用單獨(dú)按鍵,使用組合鍵就比較好。調(diào)試過(guò)程中出現(xiàn)了按鍵反應(yīng)不靈敏的現(xiàn)象,主要是 按鍵防抖動(dòng)時(shí)間過(guò)長(zhǎng),將程序稍加修改 就可以了。 29 結(jié) 論 本設(shè)計(jì)由 六 個(gè)單元組成,分別是 電源模塊、射頻識(shí)別模塊、預(yù)警模塊、數(shù)據(jù)存儲(chǔ)模塊、開(kāi)關(guān)控制模塊和 LCD顯示模塊 。每個(gè)模塊各自完成相應(yīng)的功能。其中 射頻識(shí)別模塊 是輸入部分, 開(kāi)關(guān)控制 模塊是轉(zhuǎn)換部分, LCD顯示模塊是輸出部分 , 數(shù)據(jù)存儲(chǔ)模塊是存儲(chǔ)部分 。這幾個(gè)模塊都是圍繞 單片機(jī) 運(yùn)行的,是整個(gè)系統(tǒng)的核心 。 本設(shè)計(jì)的 特點(diǎn)是 將硬件優(yōu)化后可以與上位機(jī)數(shù)據(jù)庫(kù)相連實(shí)現(xiàn)更多卡的記錄,可以用于公司人員的考勤管理 。 本設(shè)計(jì)的優(yōu)點(diǎn)是設(shè)計(jì)較為簡(jiǎn)單,成本低,方便使用且功耗低。不足之處是 時(shí)鐘是軟件編寫(xiě)不能進(jìn)行掉電走時(shí),若采用電 子鐘芯片會(huì)更完善。 通過(guò)本次畢業(yè)設(shè)計(jì),我對(duì)電路的分析能力、檢測(cè)能力和用 C語(yǔ)言編程的能力都進(jìn)一步得到了提升。在硬件制作的前期準(zhǔn)備階段,為了獲得一個(gè)最優(yōu)的硬件方案,我查找了大量的書(shū)籍和網(wǎng)絡(luò)資料,在老師的幫助下,通過(guò)對(duì)不同的電路原理的對(duì)比分析,最終選定了 這個(gè)應(yīng)用最廣的方案。繪制電路圖階段的工作使我對(duì) Protel99SE軟件的使用更加熟練。 對(duì)硬件電路的焊接使我的焊接技術(shù)得到了提升。通過(guò)對(duì)硬件電路的調(diào)試,我掌握了硬件電路一般的檢測(cè)和排錯(cuò)方法。 在編寫(xiě)和調(diào)試軟件程序的過(guò)程中 ,我掌握了示波器和仿真器 的使用方法,并且更深刻地 體會(huì)到軟件的編寫(xiě)和對(duì)硬件電路的分析是分不開(kāi)的。 雖然本次畢 業(yè)設(shè)計(jì)已經(jīng)圓滿的結(jié)束了,但是,我知道要學(xué)習(xí)的東西還有很多,因此,在今后的學(xué)習(xí)和工作中,我一定會(huì)更加努力,不斷提升自己的價(jià)值。 30 致 謝 經(jīng)過(guò) 不懈 的 努力,我 成功地 完成了 包括 硬件電路設(shè)計(jì) 與制作 、軟件程序編寫(xiě) 與調(diào)試以及畢業(yè)論文撰寫(xiě) 在內(nèi)的畢業(yè)設(shè)計(jì)。 在整個(gè)畢業(yè)設(shè)計(jì)的過(guò)程中,我的指導(dǎo)老師陳 青 老師一直都給予我很大的幫助。在硬件電路的分析上,陳老師幫我 優(yōu)化方案 ;在硬件電路的制作上,陳老師幫我排除錯(cuò)誤;在軟件程序的編寫(xiě)和調(diào)試上, 陳老師幫我理清思路。總之,沒(méi)有陳老師 的悉心指導(dǎo),我的畢業(yè)設(shè)計(jì)是不會(huì)這么順利就完成的。同時(shí),我也要感謝學(xué)校和系領(lǐng)導(dǎo)為我們創(chuàng)造了一個(gè)幽雅、便捷的環(huán)境,使我們可以安心的學(xué)習(xí)和生活。 另外,我也感謝我的家人對(duì)我一貫的支持,無(wú)論我在設(shè)計(jì)制作上遇到多大的困難他們都耐心的安慰我,給我加油打氣,讓我在心理上度過(guò)了一個(gè)又一個(gè)難關(guān);每當(dāng)我取得一個(gè)小小的進(jìn)步,他們同我一樣興奮和高興并且鼓勵(lì)我繼續(xù)加油。 最后我要 感謝大學(xué)四年來(lái) 所有教導(dǎo)過(guò)我的 老師 們的, 感謝同學(xué)們的支持和鼓勵(lì) ,感謝學(xué)校對(duì)我的栽培,我將在以后的工作學(xué)習(xí)中繼續(xù)努力,不斷爭(zhēng)取進(jìn)步! 31 參考文獻(xiàn) 1 朱 定華 .單片微機(jī)原理與應(yīng)用 . 北京: 清華大學(xué)出版社 , 2003. 2 朱定華 .單片機(jī)原理及接口技術(shù)實(shí)驗(yàn) . 北京: 清華大學(xué)出版社, 2002. 3 樓然苗,李光飛 .51 系列單片機(jī)設(shè)計(jì)實(shí)例 . 北京: 北京航空航天大學(xué)出版社,2003. 4 何立民 .MCS-51 系列單片機(jī)應(yīng)用系統(tǒng)設(shè)計(jì) -系統(tǒng)配制與接口技術(shù) . 北京: 北京航空航天大學(xué)出版社 , 2002. 5 戴佳,戴衛(wèi)恒等 .51 單片機(jī) C語(yǔ)言應(yīng)用程序設(shè)計(jì)實(shí)例精講 . 北京: 電子工業(yè)社 ,2006. 6 趙亮,侯國(guó)銳 .單片機(jī) C語(yǔ)言編程與實(shí)例 . 北京: 人民 郵電出版社 , 2003. 7 李群芳 , 肖看 .單片機(jī)原理 、 接口及應(yīng)用 . 北京: 清華大學(xué)出版社 , 2005. 8 張洪潤(rùn),張亞凡等 .單片機(jī)應(yīng)用設(shè)計(jì) 200 例 . 北京: 北京航空航天大學(xué)出版社 ,2006. 9 朱定華 .模擬電子技術(shù) . 北京: 清華大學(xué)出版社, 2005. 10 吳向軍 .匯編語(yǔ)言程序設(shè)計(jì) . 北京: 高等教育出版社, 2002. 11 百度百科 .韋根協(xié)議 . /view/557637.htm, 2008. 12 張毅剛 .新編 MCS-51單片機(jī) 應(yīng)用設(shè)計(jì) . 哈爾濱: 哈爾濱工業(yè)大學(xué)出版社 , 2003. 13 胡漢才 .單片機(jī)原理及其接口技術(shù) .第二版 . 北京: 清華大學(xué)出版社 , 2004. 14 馬史梅 .單片機(jī) C 語(yǔ)言應(yīng)用程序設(shè)計(jì) .第三版 . 北京: 北京航空大學(xué)出版社 ,2003. 15 達(dá)華電子 .RF01D 125KHz 感應(yīng)讀卡機(jī)模塊規(guī)格 說(shuō)明書(shū) . aacpub.zhongshan. ,2001. 16 高鵬,安濤 .Protel 99 入門(mén)與提高 . 北京: 人民郵電出版社, 2003. 17 The Parliamentary Office of Science and Technology.RADIO FREQUENCY IDENTIFICATION (RFID).postnote.2004,255. 18 K.J.Astrom. Where is the intelligence in intelligent controlJ.IEEE Control,May1991. 32 附錄 1 系統(tǒng)原理圖 P1.0(T2)1P1.1(T2EX)2P1.23P1.34P1.45P1.5(MOSI)6P1.6(MISO)7P1.7(SCK)8RST9P3.0(RXD)10P3.1(TXD)11P3.2(INT0)12P3.3(INT1)13P3.4(T0)14P3.5(T1)15P3.6(WR)16P3.7(RD)17XTAL218XTAL119GND20P2.0(A8)21P2.1(A9)22P2.2(A10)23P2.3(A11)24P2.4(A12)25P2.5(A13)26P2.6(A14)27P2.7(A15)28PSEN29ALE/PROG30EA/VPP31P0.7(AD7)32P0.6(AD6)33P0.5(AD5)34P0.4(AD4)35P0.3(AD3)36P0.2(AD2)37P0.1(AD1)38P0.0(AD0)39VCC40U1A T 8 9 S5 2VCC1CLK2DAT3CP4SW15SW26SW37SW48LED9GND10ANTA1ANTA2U2RF0 1 D 1 2 5 K H ZVSS1VDD2VO3RS(D/I)4R/W5E6DB07DB18DB29DB310DB411DB512DB613DB714PSB15NC16RST17NC18LED(+)19LED(-)20U3ST 1 2 8 6 4 A - 3S1 Y11 2 M H zS2 S3 S4R1 2.2KR2 100+5VC1 33pFC233pFIN1GND2OUT3U47805123J1 CON3123J2 CON3C410uFC510uF5VC3 10uFA01A12A23GND4DATA5CLK6HOLD7VCC824CXXC424CXX5V GNDL1INDUCTORD1redP3.4P3.4D2greenP3.0P3.1P3.0P3.1Q19013R791KR81KP3.5U6BUZZERP3.5R10470R930KP3.6P3.7P3.7P3.6P3.2P3.2P3.3P3.3+5V+9V+5VS5+5V+5V+5VP2.7P2.6P2.5P1.0R3 1KR4 1KR5 1KR6 1K+5VP2.5P2.6P2.7P1.0射頻識(shí)別模塊預(yù)警模塊數(shù)據(jù)存儲(chǔ)模塊電源模塊LCD液晶顯示模塊MCU小系統(tǒng)開(kāi)關(guān)控制模塊+5V33 附錄 2 硬件實(shí)物圖 系統(tǒng)硬件俯視圖 1 系統(tǒng)硬件俯視圖 2 系統(tǒng)硬件主視圖 系統(tǒng)硬件 左視圖 系統(tǒng)硬件底視圖 射頻 ID 卡 34 附錄 3 系統(tǒng)軟件總程序 #include #include #define uint unsigned int #define uchar unsigned char /*相關(guān) 引腳及全局變量的定義 */ #define LCD_Data P0 /LCD 并行 8 位數(shù)據(jù)端口 #define Busy 0x80 /檢測(cè) LCD 忙信號(hào) 標(biāo)識(shí) sbit LCD_RS=P20; /LCD 數(shù)據(jù)指令控制引腳 sbit LCD_RW=P21; /LCD 讀寫(xiě)控制引腳 sbit LCD_E=P22; /LCD 信號(hào)使能控制引腳 sbit RST=P23; /復(fù)位信號(hào), 將其設(shè)為高 sbit RED=P30; /紅色 LED 燈 1 滅 0 亮 sbit GREEN=P31; /綠色 LED 燈 1 滅 0 亮 sbit DATA0=P32; /數(shù)據(jù) 0 線 sbit DATA1=P33; /數(shù)據(jù) 1 線 sbit BEEP=P35; /蜂鳴器 0 滅 1 響 sbit SCL=P36; /外部存儲(chǔ)器時(shí)鐘 sbit SDA=P37; /串行數(shù)據(jù)口 sbit t_c=P10; /時(shí)間修改 /查詢記錄 uchar flag1=2,flag=0; /大小月份標(biāo)志,刷卡標(biāo)志 uchar t_flag=0; /時(shí)間修改標(biāo)志 uchar count=0; /定時(shí)計(jì)數(shù)變量 uchar cnt=0; /射頻識(shí)別模塊脈沖計(jì)數(shù) uchar ct1,ct2; /查詢的首尾標(biāo)記 code uchar name411= 職工甲 , 職工乙 , 職工丙 , 外來(lái)者 !;/對(duì)應(yīng)姓名 code uchar card411=57099,55318,58529,61968;/對(duì)應(yīng)卡號(hào) idata uint temp26; /射頻信號(hào)記錄 data uchar rank1=姓名 : ; /LCD 第一行顯示數(shù)據(jù)存儲(chǔ)單元 data uchar rank2=卡號(hào) : ; /LCD 第二行顯示數(shù)據(jù)存儲(chǔ)單元 data uchar rank3=日期 : ; /LCD 第三行顯示數(shù)據(jù)存儲(chǔ)單元 data uchar rank4=時(shí)間 : ; /LCD 第四行顯示數(shù)據(jù)存儲(chǔ)單元 code uchar stuff3=0x00,0x50,0xa0; /員工考勤起始地址 data uchar num3=0,0,0; /員工刷卡次數(shù) struct time /有關(guān) 時(shí)間的參數(shù) 的結(jié)構(gòu)體 uchar hour,min,sec; uint year; uchar month,day; time=8,0,0,2010,5,27; /時(shí)間初值設(shè)為 2010-5-27 8:00:00 35 /*含參數(shù)的 延時(shí) 模塊(延時(shí)為 5ms 的 i 倍) */ void Delay5Ms(uchar i) while(i-) /循環(huán) i 次,每次延時(shí)為 5ms uint TempCyc = 500; while(TempCyc-); /*液晶 LCD顯示模塊程序 */ /*讀 狀態(tài) */ uchar ReadStatusLCD(void) LCD_Data=0xFF; LCD_RS=0; /根據(jù)時(shí)序控制引腳電平 LCD_RW=1; LCD_E=1; while(LCD_Data&Busy);/檢測(cè)忙信號(hào) LCD_E=0; return(LCD_Data); /*寫(xiě)數(shù)據(jù) */ void WriteDataLCD(uchar WDLCD) ReadStatusLCD(); /檢測(cè)忙 信號(hào) LCD_RS=1; /根據(jù)時(shí)序控制引腳電平 LCD_RW=0; LCD_Data=WDLCD; LCD_E=1; LCD_E=0; /*寫(xiě)指令 */ void WriteCommandLCD(uchar WCLCD, BuysC) /BuysC 為 0 時(shí)忽略忙檢測(cè) if(BuysC) ReadStatusLCD(); /檢測(cè)忙 LCD_RS=0; /根據(jù)時(shí)序控制引腳電平 LCD_RW=0; LCD_Data=WCLCD; LCD_E=1; LCD_E=0; /*LCM 初始化 */ void LCDInit(void) WriteCommandLCD(0x30,1); /顯示模式設(shè)置 ,開(kāi)始要求每次檢測(cè)忙信號(hào);功能設(shè)定基本指令集 /*按指定位置顯示一個(gè)字符 */ void DisplayOneChar(uchar X,uchar Y, uchar DData) if(Y4) Y=4; X&=0x0F; /限制 X16, Y4 switch(Y) /根據(jù)行數(shù)來(lái)選擇相應(yīng)地址 case 1:X|=0X80; break; /LCD 第一行數(shù)據(jù)首地址 case 2:X|=0X90; break; /LCD 第二行數(shù)據(jù)首地址 case 3:X|=0X88; break; /LCD 第三行數(shù)據(jù)首地址 case 4:X|=0X98; break; /LCD 第四行數(shù)據(jù)首地址 WriteCommandLCD(X,0);/僅發(fā)送地址碼 WriteDataLCD(DData); /寫(xiě)一個(gè)數(shù)據(jù) /*按指定位置顯示一串字符 */ void DisplayListChar(uchar X,uchar Y, uchar data *DData) uchar ListLength,X2; ListLength=0; X2=X; if(Y4) Y=4; X&=0x0F; /限制 X=16, Y=0x20) if(X=0x0F) /字符串長(zhǎng)度 5)=0x06)/調(diào)分針 S2 按下 Delay5Ms(2); /10ms 按鍵防抖動(dòng) if(P25)=0x06) if(time.min5)=0x05) Delay5Ms(2); /10ms 按鍵防抖動(dòng) if(P25)=0x05) if(time.hour59 時(shí),分針進(jìn)位秒針清 0 if(time.sec=60) time.min+; time.sec=0; /修改顯示存儲(chǔ)單元 disp(time.min,9,2,rank4); disp(time.sec,12,2,rank4); /分針 59 時(shí),時(shí)針進(jìn)位分針清 0 37 disp(time.hour,6,2,rank4); DisplayListChar(0,4,rank4); /調(diào)日期( 按鍵 S4 按下) while(P25)=0x03) Delay5Ms(2); /10ms 按鍵防抖動(dòng) if(P25)=0x03) /根據(jù)月份調(diào)整日期 if(time.day30&flag1=0) time.day+; else if(time.day31&flag1=1) time.day+; else if(time.day5)=0x02) Delay5Ms(2); /10ms 按鍵防抖動(dòng) if(P25)=0x02) if(time.month5)=0x01) Delay5Ms(2); /10ms 按鍵防抖動(dòng) if(P25)=0x01) if(time.year=60) time.hour+; time.min=0; /修改顯示存儲(chǔ)單元 disp(time.hour,6,2,rank4); disp(time.min,9,2,rank4); /時(shí)針 24 時(shí),日期進(jìn)位時(shí)針清 0 if(time.hour=24) time.day+; time.hour=0; /修改顯示存儲(chǔ)單元 disp(time.day,14,2,rank3); disp(time.hour,6,2,rank4); switch(flag1)/根據(jù)標(biāo)志選擇相應(yīng)天數(shù) case 0 : mon=30; break; /小月 30 天 case 1 : mon=31; break; /大月 31 天 case 2 : mon=28; break; /二月 28 天 default: mon=30; break; /其他 30 天 /日期 相應(yīng)天數(shù)時(shí),月份進(jìn)位日期針置 1 if(time.day=mon) time.month+; time.day=1; /修改顯示存儲(chǔ)單元 disp(time.month,11,2,rank3); disp(time.day,14,2,rank3); /月份 12 時(shí),年份進(jìn)位月份置 1 if(time.month=12) time.year+; time.month=1; /修改顯示存儲(chǔ)單元 disp(time.year,8,4,rank3); disp(time.month,11,2,rank3); /*數(shù)據(jù)存儲(chǔ)模塊 */ /*開(kāi)始條件 */ /*停止條件 */ 38 void star(void) /時(shí)鐘線為高的條件下數(shù)據(jù)線的下降沿 SDA=1; SCL=1; SDA=0; /*進(jìn)行應(yīng)答 */ void ack(void) uchar z=0; /條件判斷 ,SDA=1,則沒(méi)有應(yīng)答。如果沒(méi)有應(yīng)答則延時(shí): z50, z+;后返回 while(SDA=1)&(z50) z+; SCL=0; /*寫(xiě)一個(gè)數(shù)據(jù) */ void write(uchar slave_write_address,uchar byte_address,uchar data_data) uchar temp,temp1,i,ii; star(); /開(kāi)始 /根據(jù) 24C16 時(shí)序圖,按順序送:器件寫(xiě)地址 ,字節(jié)地址 ,數(shù)據(jù) for(ii=0;ii3;ii+) if(ii=0) temp=slave_write_address;/送器件寫(xiě)地址 else if(ii=1) temp=byte_address; /送字節(jié)地址 else if(ii=2) temp=data_data; /送數(shù)據(jù) for(i=0;i8;i+) /寫(xiě)一字節(jié)數(shù)據(jù) SCL=0; temp1=temp&0x80;/提取字節(jié)最高位 /判斷最高位是否為
溫馨提示
- 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ù)網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年高效的鍋爐鼓、引風(fēng)機(jī)項(xiàng)目建議書(shū)
- 城市污水管網(wǎng)建設(shè)工程實(shí)施方案(模板)
- 2025年糧食、棉花、化肥等農(nóng)產(chǎn)品倉(cāng)儲(chǔ)服務(wù)項(xiàng)目建議書(shū)
- 2025年城市污水處理廠智能化升級(jí)改造與智能監(jiān)測(cè)預(yù)警平臺(tái)應(yīng)用報(bào)告
- 工業(yè)互聯(lián)網(wǎng)平臺(tái)邊緣計(jì)算硬件架構(gòu)在物聯(lián)網(wǎng)領(lǐng)域的創(chuàng)新優(yōu)化報(bào)告
- 教育公平與教育資源分配的政策實(shí)踐及反思
- 教育政策的綜合評(píng)價(jià)與持續(xù)改進(jìn)
- 商業(yè)培訓(xùn)中的教育心理學(xué)實(shí)踐
- 數(shù)字鴻溝的現(xiàn)狀及教育技術(shù)的應(yīng)用前景
- 2025武漢市二手汽車(chē)交易合同書(shū)范本
- 硫化氫題庫(kù)及答案
- 2025年房地產(chǎn)銷(xiāo)售經(jīng)理季度工作總結(jié)及年度計(jì)劃
- 學(xué)堂在線 管理溝通的藝術(shù) 期末考試答案
- 低壓培訓(xùn)課件
- 教師團(tuán)隊(duì)協(xié)作與溝通能力
- 保安公司薪酬管理制度
- 井蓋巡查管理制度
- GB/T 33490-2025展覽展示工程服務(wù)基本要求
- 2024年國(guó)能榆林化工有限公司招聘真題
- 消防總隊(duì)面試題目及答案
- 《低鈉血癥中國(guó)專家共識(shí)(2023年版)》解讀課件
評(píng)論
0/150
提交評(píng)論