射頻識別課程設(shè)計Word版_第1頁
射頻識別課程設(shè)計Word版_第2頁
射頻識別課程設(shè)計Word版_第3頁
射頻識別課程設(shè)計Word版_第4頁
射頻識別課程設(shè)計Word版_第5頁
已閱讀5頁,還剩36頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

整理為word格式整理為word格式整理為word格式射頻識別課程設(shè)計專業(yè)班級:2013級通信工程2班姓名:杜超學號:201309110224姓名:陸平學號:201309110225姓名:賀凱文學號:201309110226姓名:牛新艷學號:201309110227姓名:曹曉寧學號:201309110228姓名:李世鈺學號:201309110229整理為word格式整理為word格式整理為word格式姓名:劉帥學號:201309110230姓名:張波學號:201311310210整理為word格式整理為word格式整理為word格式前言射頻識別,RFID(RadioFrequencyIdentification)技術(shù),又稱無線射頻識別,是一種通信技術(shù),可通過無線電訊號識別特定目標并讀寫相關(guān)數(shù)據(jù),而無需識別系統(tǒng)與特定目標之間建立機械或光學接觸。RFID(RadioFrequencyIdentification)技術(shù)作為構(gòu)建“物聯(lián)網(wǎng)”的關(guān)鍵技術(shù)近年來受到人們的關(guān)注。RFID技術(shù)早起源于英國,應用于第二次世界大戰(zhàn)中辨別敵我飛機身份,20世紀60年代開始商用。RFID技術(shù)是一種自動識別技術(shù),射頻標簽是產(chǎn)品電子代碼(EPC)的物理載體,附著于可跟蹤的物品上,可全球流通并對其進行識別和讀寫。RFID讀寫器也分移動式的和固定式的,目前RFID技術(shù)應用很廣,如:圖書館,門禁系統(tǒng),食品安全溯源等。本次RFID課程設(shè)計是圍繞ID卡讀卡器進行設(shè)計的。ID卡讀卡器是RFID技術(shù)的具體應用。ID卡讀卡器是用來讀ID卡的,讀卡器支持即插即用、在使用過程可以隨意拔插,計算機USB口接入讀卡器后,讀卡器"滴"一聲開始自檢及初始化,再"滴"一聲初始化成功,進入等待刷卡狀態(tài)。本文分析了ID卡讀卡器的基本工作機理并詳細研究了ID卡的讀卡原理和方法。在此基礎(chǔ)上,進行了基于ID卡的軟件和硬件開發(fā)。論述了主要元器件的選型方法以及各部分電路的工作原理。經(jīng)過實際電路的制作和反復調(diào)試,實現(xiàn)了本次RFID課程設(shè)計。關(guān)鍵詞:射頻識別,讀卡器,曼徹斯特碼整理為word格式整理為word格式整理為word格式目錄TOC\o"1-3"\h\u93581.課程設(shè)計 41237本次課程設(shè)計是圍繞ID讀卡器進行的。 4251811.1課程設(shè)計相關(guān)簡介 4214061.1.1ID卡簡介 449891.1.2讀卡器簡介 5177741.1.3編碼簡介 655351.2課程設(shè)計目的 77551.3課程設(shè)計設(shè)備 7126601.4課程設(shè)計模塊組成 7209681.5課程設(shè)計流程 7323371.5.1課程設(shè)計的設(shè)計流程 7232211.5.2課程設(shè)計系統(tǒng)的工作流程 8163521.6課程設(shè)計電路圖 89732.課程設(shè)計硬件部分 9303162.1硬件電路 9228642.1.1模塊一:MCU(STC89S52)控制電路 9242072.1.2模塊二:射頻基站(U2270B)電路 10272662.1.3模塊三:串行通信(MAX232)電路 11172242.1.4模塊四:電源電路 1151282.1.5模塊五:復位電路 12整理為word格式整理為word格式整理為word格式240022.1.6模塊六:蜂鳴器電路 1394922.2硬件電路的焊接 1462283.軟件程序設(shè)計 15324803.1主程序 1530339總結(jié) 252355參考文獻 26整理為word格式整理為word格式整理為word格式1.課程設(shè)計本次課程設(shè)計是圍繞ID讀卡器進行的。1.1課程設(shè)計相關(guān)簡介1.1.1ID卡簡介ID卡全稱為身份識別卡(IdentificationCard),是一種不可寫入的感應卡,含固定的編號,主要有臺灣SYRIS的EM格式、美國HIDMOTOROLA等各類ID卡。ID卡與磁卡一樣,都僅僅使用了“卡的號碼”而已,卡內(nèi)除了卡號外,無任何保密功能,其“卡號”是公開、裸露的。所以說ID卡就是“感應式磁卡”。ISO標準ID卡的規(guī)格為:85.5x54x0.80±0.04mm(高/寬/厚),市場上也存在一些厚、薄卡或異型卡。常應用于考勤、門禁、一卡通等系統(tǒng)。其表現(xiàn)形式相當廣泛,與我們的生活生產(chǎn)息息相關(guān)。隨著芯片技術(shù)、天線技術(shù)、無線收發(fā)技術(shù)、數(shù)據(jù)變換與編碼技術(shù)、電磁傳播特性等技術(shù)的綜合發(fā)展,其應用性能將得到進一步的提高,使用范圍將進一步延伸,將在門禁管理、資產(chǎn)回收、物料處理、醫(yī)療、寵物管理、工業(yè)自動化、聯(lián)合票證等領(lǐng)域擁有更加廣泛、高效、安全的應用。目前,市面使用的ID卡多以JK4001、H4001、EM4001、TK28等居多,其結(jié)構(gòu)和工作原理都一樣,故只掌握一種便可通用了。圖1.1是ID卡工作原理框圖。ID卡內(nèi)部陣列存儲空間結(jié)構(gòu)如1.2所示:ID卡內(nèi)部64位信息由5個區(qū)組成:9個引導位“1”,10個行奇校驗位“P0--P9”,4個列奇校驗位“PC0--PC3”,40位數(shù)據(jù)位“D00--D93”和一個停止位“0”。9個引導位是出廠就掩膜到晶片內(nèi)的,其值為111111111。當它輸出數(shù)據(jù)流時,首先是輸出9個引導位,然后是10組由4個數(shù)據(jù)位和1個行奇校驗位組成的數(shù)據(jù)串,之后是1組由4個列奇校驗位組成的數(shù)據(jù)串,最后是停止位整理為word格式整理為word格式整理為word格式“0”,“D00--D13”是一個8位的晶片版本號或ID識別碼?!癉20--D93”是4組32位的晶片信息,即卡號。當ID卡得電初始化后,便依次將這64位數(shù)據(jù)反復輸出,直到卡片離開基站讀寫器失電為止。圖1.1ID卡工作原理框圖圖1.2ID卡內(nèi)部陣列存儲空間結(jié)構(gòu)1.1.2讀卡器簡介本次課程設(shè)計所研究ID卡讀卡器設(shè)計,是RFID技術(shù)的具體應用,其原理等同于RFID技術(shù)的原理。整理為word格式整理為word格式整理為word格式RFID技術(shù)的基本工作原理:應答器進入磁場后,接收讀卡器發(fā)出的射頻信號,憑借感應電流所獲得的能量發(fā)送出存儲在芯片中的產(chǎn)品信息(PassiveTag,無源標簽或被動標簽),或者主動發(fā)送某一頻率的信號(ActiveTag,有源標簽或主動標簽);讀卡器讀取信息并解碼后,送至中央信息系統(tǒng)進行有關(guān)數(shù)據(jù)處理。一套完整的RFID系統(tǒng),是由讀卡器(Reader)與電子標簽(TAG)也就是所謂的應答器(Transponder)及應用軟件系統(tǒng)三個部份所組成,其工作原理是Reader發(fā)射一特定頻率的無線電波能量給Transponder,用以驅(qū)動電路將內(nèi)部的數(shù)據(jù)送出,此時Reader便依序接收解讀數(shù)據(jù),送給應用程序做相應的處理。以RFID卡片閱讀器及電子標簽之間的通訊及能量感應方式來看大致上可以分成,感應偶合(InductiveCoupling)及后向散射偶合(BackscatterCoupling)兩種,一般低頻的RFID大都采用第一種式,而較高頻大多采用第二種方式。基本工作方式分全雙工和半雙式以及時序系統(tǒng)。在全雙工和半雙工系統(tǒng)中,在讀卡器接通高頻電/磁場的情況下應答器的應答響應發(fā)送出去的。因為與讀卡器本身的信號相比,在接收天線上的應答器的信號很弱的,只有使用合適的傳輸方法,才能有效區(qū)分應答器的信號與讀卡器的信號。現(xiàn)實生活中,人們對應答器到讀卡器的數(shù)據(jù)傳輸往往使用讀卡器發(fā)射頻率的諧波,負載調(diào)制,或者有副載波的負載調(diào)制,在市場上不難找到相對應的產(chǎn)品。時序方法則相反,閱讀器的電/磁場短時間周期的斷開,這些間隔被應答器識別出來,并被用于應答器到閱讀器的數(shù)據(jù)傳輸。缺點就是:在閱讀器發(fā)送間隙里時,應答器的能量供應中斷,這就必須通過裝入大容量的輔助性電容或輔助電池進行補償。讀卡器根據(jù)使用的結(jié)構(gòu)和技術(shù)不同可以是讀或讀/寫裝置,是RFID系統(tǒng)信息控制和處理中心。讀卡器通常由耦合模塊、收發(fā)模塊、控制模塊和接口單元組成。讀卡器和應答器之間一般采用半雙工通信方式進行信息交換,同時閱讀器通過耦合給無源應答器提供能量和時序。在實際應用中,可進一步通過Ethernet或WLAN等實現(xiàn)對物體識別信息的采集、處理及遠程傳送等管理功能。應答器是RFID系統(tǒng)的信息載體,目前應答器大多是由耦合原件(線圈、微帶天線等)和微芯片組成無源單元。整理為word格式整理為word格式整理為word格式1.1.3編碼簡介射頻識別系統(tǒng)完全可以把它認為是一個數(shù)字通信系統(tǒng),從讀卡器向應答器的傳輸可以分為三個主要功能模塊:依次是閱讀器中的信號編碼(信號處理)和調(diào)制器(載波電路),傳輸介質(zhì)(通路),以及應答器中的解調(diào)器(載波回路)和信號譯碼(信號處理)。信號編碼系統(tǒng)的作用是使要傳輸?shù)男畔⒑退男盘柋硎颈M可能最佳地與傳輸通道的性能相匹配。這種處理可以對信息提供某種程度的保護,以抗干擾或防信息碰撞,以及對信息某種特征的蓄意改變。常用的編碼方式有:NRZ(反向不歸零制)編碼、曼徹斯特(manchester)編碼、單極歸零制編碼(UnipolarRZ)、差動雙相編碼(DBR)、米勒編碼(miller)、差動編碼和脈沖-間隙(PP)編碼。本設(shè)計所采用的是曼徹斯特(manchester)編碼:在半個比特周期時的負邊沿表示二進制l,半個比特周期中的正邊沿表示二進制0。曼徹斯特編碼在采用副載波的負載調(diào)制時經(jīng)常用于從應答器到閱讀器的數(shù)據(jù)傳輸。1.2課程設(shè)計目的(1)熟悉和掌握RFID的一般組成和工作原理;(2)認識RFID技術(shù)的特點及優(yōu)勢;(3)初步了解到RFID的應用現(xiàn)狀和前景;(4)通過實驗熟練掌握RFID課程設(shè)計的各工作部分的工作原理、低頻,高頻電路的一般調(diào)試方法;(5)進一步鞏固實際動手能力,培養(yǎng)嚴謹?shù)膶嶒炞黠L。1.3課程設(shè)計設(shè)備PC機,調(diào)試程序,硬件電路,數(shù)據(jù)線,ID卡。1.4課程設(shè)計模塊組成

ID讀卡器主要由MCU(STC89S52)控制電路、射頻基站(U2270)電路、串行通信整理為word格式整理為word格式整理為word格式(MAX232)電路、電源電路,蜂鳴器電路,復位電路等組成。(由于本次課程設(shè)計沒有用到12864顯示電路所以下面不做詳細介紹。)1.5課程設(shè)計流程1.5.1課程設(shè)計的設(shè)計流程課程設(shè)計的設(shè)計流程:學習RFID和ID卡的相關(guān)知識,學習并看懂電路圖,然后根據(jù)電路圖焊接元器件,學習單片機的主程序,最后小組討論交流,做出本次課程設(shè)計的報告。1.5.2課程設(shè)計系統(tǒng)的工作流程系統(tǒng)的工作流程:MCU控制U2270,對ID卡進行操作,然后根據(jù)所得到的數(shù)據(jù)對MAX232接口通信,把數(shù)據(jù)傳給計算機。1.6課程設(shè)計電路圖電路圖:整理為word格式整理為word格式整理為word格式2.課程設(shè)計硬件部分基于前面對讀卡器原理的理論研究,設(shè)計了低頻讀卡器。本節(jié)將詳細介紹讀卡器的硬件電路設(shè)計、電路焊接等。2.1硬件電路2.1.1模塊一:MCU(STC89S52)控制電路MCU(MicroControllerUnit)系統(tǒng)微處理采用宏晶科技公司的8位單片機STC89C52,該單片機是8位高性能MCU,超低功耗;掉電模式下典型功耗<0.1微安,空閑模式下典型功耗2毫安,正常工作模式下典型功耗4-7毫安。具有8kFlash存儲器、512kBRAM、2kE^2PROM、降低EMI功能、ISP(在系統(tǒng)可編程)功能。單片機內(nèi)部的看門狗電路經(jīng)過特殊處理,是真正的看門狗,可放心省去外部看門狗。缺省為關(guān)閉,打開后無法關(guān)閉,單倍速和雙倍速可反復設(shè)置。另外,掉電模式可由外部中斷喚醒,特別適用于電池供電系統(tǒng)。整理為word格式整理為word格式整理為word格式MCU(STC89S52)控制電路2.1.2模塊二:射頻基站(U2270B)電路射頻卡讀寫器的關(guān)鍵芯片是射頻卡基站芯片,它主要用于完成數(shù)據(jù)的調(diào)制、發(fā)射和射頻的接收以及數(shù)據(jù)的解調(diào)任務。U2270B是發(fā)射頻率為125kHz的射頻卡基站芯片。在眾多的射頻卡基站芯片中,U2270B是一種低成本、性能完善的低頻(100~150kHz)射頻卡基站芯片,其主要特點如下:(1)載波振蕩器能產(chǎn)生100kHz~150kHz的振蕩頻率,并可通過外接電阻進行精確調(diào)整,其典型應用頻率為125kHz。(2)典型數(shù)據(jù)傳輸速率為5kbps(125kHz時)。(3)適用于曼徹斯特編碼和雙相位編碼。(4)帶有微處理器接口,可與單片機直接連接。整理為word格式整理為word格式整理為word格式(5)供電方式靈活,可以采用+5V直流供電,也可以采用汽車用+12V供電,同時具有電壓輸出功能,可以給微處理器或其它外圍電路供電。(6)具有低功耗待機模式,可以極大地降低基站的耗電量。(7)125kHz時的典型讀寫距離為15mm。適用于對TEMIC的e5530/e5550/e5560射頻卡進行讀寫操作。射頻基站(U2270B)電路2.1.3模塊三:串行通信(MAX232)電路MAX232芯片是專門為電腦的RS-232標準串口設(shè)計的接口電路,使用+5V的單電源供電。

內(nèi)部結(jié)構(gòu)基本可分三個部分:第一部分是電荷泵電路。由1、2、3、4、5、6腳和4只電容構(gòu)成。功能是產(chǎn)生+12v和-12v兩個電源,提供給RS-232串口電平的需要。第二部分是數(shù)據(jù)轉(zhuǎn)換通道。由7、8、9、10、11、12、13、14腳構(gòu)成兩個數(shù)據(jù)通道。其中13腳(R1IN)、12腳(R1OUT)、11腳(T1IN)、14腳(T1OUT)為第一數(shù)據(jù)通道。8腳(R2IN)、9腳(R2OUT)、10腳(T2IN)、7腳(T2OUT)為第二數(shù)據(jù)通道。TTL/CMOS數(shù)據(jù)從T1IN、T2IN輸入轉(zhuǎn)換成RS-232數(shù)據(jù)從T1OUT、T2OUT送到電腦DP9插頭;DP9插頭的RS-232數(shù)據(jù)從R1IN、R2IN輸入轉(zhuǎn)換成TTL/CMOS數(shù)據(jù)后從R1OUT、R2OUT輸出。整理為word格式整理為word格式整理為word格式第三部分是供電。15腳DNG、16腳VCC(+5v)。串行通信(MAX232)電路2.1.4模塊四:電源電路電源模塊是可以直接貼裝在印刷電路板上的電源供應器,其特點是可為專用集成電路(ASIC)、數(shù)字信號處理器(DSP)、微處理器、存儲器、現(xiàn)場可編程門陣列(FPGA)及其他數(shù)字或模擬負載提供供電。一般來說,這類模塊稱為負載點(POL)電源供應系統(tǒng)或使用點電源供應系統(tǒng)(PUPS)。由于模塊式結(jié)構(gòu)的優(yōu)點甚多,因此模塊電源廣泛用于交換設(shè)備、接入設(shè)備、移動通訊、微波通訊以及光傳輸、路由器等通信領(lǐng)域和汽車電子、航空航天等。整理為word格式整理為word格式整理為word格式2.1.5模塊五:復位電路復位電路,就是利用它把電路恢復到起始狀態(tài)。就像計算器的清零按鈕的作用一樣,以便回到原始狀態(tài),重新進行計算。和計算器清零按鈕有所不同的是,復位電路啟動的手段有所不同。一是在給電路通電時馬上進行復位操作;二是在必要時可以由手動操作;三是根據(jù)程序或者電路運行的需要自動地進行。復位電路都是比較簡單的大都是只有電阻和電容組合就可以辦到了,再復雜點就有三極管等配合程序來進行了。52單片機要復位只需要在第9引腳接個高電平持續(xù)2us就可以實現(xiàn),那這個過程是如何實現(xiàn)的呢?在單片機系統(tǒng)中,系統(tǒng)上電啟動的時候復位一次,當按鍵按下的時候系統(tǒng)再次復位,如果釋放后再按下,系統(tǒng)還會復位。所以可以通過按鍵的斷開和閉合在運行的系統(tǒng)中控制其復位。

那么開機的時候為什么為復位?在電路圖中,電容的的大小是10uf,電阻的大小是10k。所以根據(jù)公式,可以算出電容充電到電源電壓的0.7倍(單片機的電源是5V,所以充電到0.7倍即為3.5V),需要的時間是10K*10UF=0.1S。也就是說在電腦啟動的0.1S內(nèi),電容兩端的電壓時在0~3.5V增加。這個時候10K電阻兩端的電壓為從5~1.5V減少(串聯(lián)電路各處電壓之和為總電壓)。所以在0.1S內(nèi),RST引腳所接收到的電壓是5V~1.5V。在5V正常工作的51單片機中小于1.5V的電壓信號為低電平信號,而大于1.5V的電壓信號為高電平信號。所以在開機0.1S內(nèi),單片機系統(tǒng)自動復位(RST引腳接收到的高電平信號時間為0.1S左右)。

整理為word格式整理為word格式整理為word格式

那么按鍵按下的時候為什么會復位?在單片機啟動0.1S后,電容C兩端的電壓持續(xù)充電為5V,這是時候10K電阻兩端的電壓接近于0V,RST處于低電平所以系統(tǒng)正常工作。當按鍵按下的時候,開關(guān)導通,這個時候電容兩端形成了一個回路,電容被短路,所以在按鍵按下的這個過程中,電容開始釋放之前充的電量。隨著時間的推移,電容的電壓在0.1S內(nèi),從5V釋放到變?yōu)榱?.5V,甚至更小。根據(jù)串聯(lián)電路電壓為各處之和,這個時候10K電阻兩端的電壓為3.5V,甚至更大,所以RST引腳又接收到高電平。單片機系統(tǒng)自動復位。

總結(jié):

(1)復位電路的原理是單片機RST引腳接收到2US以上的電平信號,只要保證電容的充放電時間大于2US,即可實現(xiàn)復位,所以電路中的電容值是可以改變的。

(2)按鍵按下系統(tǒng)復位,是電容處于一個短路電路中,釋放了所有的電能,電阻兩端的電壓增加引起的。復位電路2.1.6模塊六:蜂鳴器電路蜂鳴器是一種一體化結(jié)構(gòu)的電子訊響器,采用直流電源供電,廣泛應用于計算機、打印機、復印機、報警器、電子玩具、汽車電子設(shè)備、電話機、定時器等電子產(chǎn)品中作發(fā)聲器件。主要分為壓電式蜂鳴器和電磁式蜂鳴器兩種類型。蜂鳴器的電路圖形符號:蜂鳴器在電路中用字母“H”或“HA”(舊標準用“FM”、“LB”、“JD”等)表示。整理為word格式整理為word格式整理為word格式蜂鳴器電路2.2硬件電路的焊接對于硬件電路的設(shè)計來說,其工作是相當嚴謹?shù)囊笫菢O為精細,不允許有任何錯誤和誤差,即使是電路的原理設(shè)計完全正確,也不能保證電路板制作出來之后焊接上器件就可以立刻正常工作。一個未經(jīng)調(diào)試的電路板,可能有來自原理圖錯誤,PCB版圖設(shè)計失誤,PCB制作廠商的質(zhì)量問題,元器件焊接問題以及元器件質(zhì)量問題等多方面的因素導致無法正常工作。本次課程設(shè)計是在按照設(shè)計留出了電路通道,并在通道上預留了各種元件的焊接位置的電路板上焊接電子元器件,參照原理圖以及PCB圖,器件的焊接主要是根據(jù)原理圖及PCB板在電路板上排布電子元器件,以功能模塊為主的形式組合,并把元器件焊接到電路板上。整理為word格式整理為word格式整理為word格式軟件程序設(shè)計本次課程設(shè)計的軟件程序是針對52單片機進行編寫的。3.1主程序/********************************************MR系列ID卡讀卡演示程序*************************************************/#include<reg52.h>#include<math.h>#include<string.h>#include<stdio.h>#include<absacc.h>#include<intrins.h>sbitP12=P1^2; //蜂鳴器sbitP14=P1^4; //指示燈sbitP13=P1^3;sbitP11=P1^1; //解碼輸入sbitLCD_RS=P3^5;//寄存器選擇輸入sbitLCD_RW=P3^6;//液晶讀/寫控制sbitLCD_EN=P3^4;//液晶使能控制整理為word格式整理為word格式整理為word格式sbitLCD_PSB=P3^7;//串/并方式控制#defineucharunsignedchar#defineuintunsignedint#defineLCD_dataP0//數(shù)據(jù)口#defineSPK P12 //蜂鳴器#defineLED P14 //指示燈#defineLED2P13#defineINPORT P11 //解碼輸入//用來區(qū)分脈沖寬度的參數(shù)#defineTIME00 50#defineTIME05 260#defineTIME10 550ucharflag;unsignedlongsum;intn=8;bitbitin; //上一次的狀態(tài)位unsignedcharBuff[30]; //解碼緩沖區(qū)unsignedcharstring[10];unsignedcharcodedis1[]={"臨沂大學信息學院"}; //8unsignedcharcodedis2[]={"2013-2014-1"};//16unsignedcharcodedis3[]={"期末考試"};//7unsignedchardis4[]={"卡號:"}; //6voidlcd_pos(charX,charY);//確定顯示位置/*******************************************************************/整理為word格式整理為word格式整理為word格式/**//*延時函數(shù)*//**//*******************************************************************/voiddelay(intms){ inti,j; for(j=0;j<ms;j++) for(i=0;i<110;i++);} /*******************************************************************//**//*檢查LCD忙狀態(tài)*//*lcd_busy為1時,忙,等待。lcd-busy為0時,閑,可寫指令與數(shù)據(jù)。*//**//*******************************************************************/bitlcd_busy(){ucharresult;LCD_RS=0;LCD_RW=1; //delayNOP(); while(1) { P0=0xff;整理為word格式整理為word格式整理為word格式 LCD_EN=1; result=P0; LCD_EN=0; if((result&0x80)==0) break; }}/*******************************************************************//**//*寫指令數(shù)據(jù)到LCD*//*RS=L,RW=L,E=高脈沖,D0-D7=指令碼。*//**//*******************************************************************/voidlcd_wcmd(ucharcmd){ lcd_busy();LCD_RS=0;LCD_RW=0;LCD_EN=0;LCD_data=cmd; delay(5);LCD_EN=1; delay(5);LCD_EN=0;}整理為word格式整理為word格式整理為word格式/*******************************************************************//**//*寫顯示數(shù)據(jù)到LCD*//*RS=H,RW=L,E=高脈沖,D0-D7=數(shù)據(jù)。*//**//*******************************************************************/voidlcd_wdat(uchardat){lcd_busy();LCD_RS=1;LCD_RW=0;LCD_EN=0;LCD_data=dat; delay(5);LCD_EN=1; delay(5);LCD_EN=0; delay(5);}/*******************************************************************//**//*LCD初始化設(shè)定*//**//*******************************************************************/voidlcd_init()整理為word格式整理為word格式整理為word格式{ //LCD_PSB=0; //串口方式LCD_PSB=1;//并口方式lcd_wcmd(0x34);//擴充指令操作delay(5);lcd_wcmd(0x30);//基本指令操作delay(5);// lcd_wcmd(0x30); //起始點設(shè)定,光標右移lcd_wcmd(0x0C);//顯示開,關(guān)光標delay(5); lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容 delay(5);// lcd_wcmd(0x06);//地址歸零//lcd_wcmd(0x01); //清除LCD的顯示內(nèi)容///delay(5);}/*********************************************************//**//*設(shè)定顯示位置*//**//*********************************************************/voidlcd_pos(ucharX,ucharY){ucharpos;整理為word格式整理為word格式整理為word格式if(X==0){X=0x80;}elseif(X==1){X=0x90;}elseif(X==2){X=0x88;}elseif(X==3){X=0x98;}pos=X+Y;lcd_wcmd(pos);//顯示地址}voiddelay_ms(unsignedintms){ unsignedchari; while(ms--) { i=112; while(i--); }}voidprintchar(unsignedcharch){ inti;unsignedlongamount;整理為word格式整理為word格式整理為word格式 amount=(unsignedlong)ch; n--; for(i=n;i>0;i--) amount=amount*16; sum+=amount;}voidprinthex(unsignedcharhex)//以十六進制格式輸出1個字節(jié){ unsignedcharc; c=hex; c=c>>4; printchar(c); c=hex; c=c&0x0F; printchar(c);}//檢測數(shù)據(jù)位unsignedcharreadbit(){ unsignedintmk=TIME10; //裝入超時值 TL0=TH0=0; //初始化計時器 TR0=1; //開始計時整理為word格式整理為word格式整理為word格式 while(--mk) //超時機制,防止死等 if(bitin!=INPORT) //有跳變 break; TR0=0; //停止計時 if(mk==0) //超時退出 return0; bitin=INPORT; //保存狀態(tài) mk=TH0*256+TL0; //計算這樣跳變的脈寬 if((mk>TIME05)&&(mk<=TIME10)) //一個周期 return1; if((mk>=TIME00)&&(mk<=TIME05)) //半個周期 return2; return0; //出錯}//讀一個完整的數(shù)據(jù)位unsignedcharreaddata(){ switch(readbit()) { case1: //一個周期 return!bitin; case2: //半個周期 if(readbit()!=2)return2; //再讀一次半個周期 return!bitin;整理為word格式整理為word格式整理為word格式 default: return2; }}//接收并解碼bitCheckData(){ unsignedchari,j; bitin=INPORT; //保存位狀態(tài) for(i=0;i<9;i++) //檢測9個數(shù)據(jù)位1 { if(readdata()!=1) return0; } //讀取數(shù)據(jù) for(i=0;i<11;i++) { Buff[i]=0x00; for(j=0;j<5;j++) { Buff[i]<<=1; switch(readdata())整理為word格式整理為word格式整理為word格式 { case0: //0 break; case1: //1 Buff[i]|=0x08; break; case2: //err return0; } } } //結(jié)束位 if(Buff[10]&0x08!=0x00) return0; //行奇校驗位 for(i=0;i<10;i++) if((((Buff[i]>>4)^ (Buff[i]>>3)^ (Buff[i]>>2)^ (Buff[i]>>1)^ Buff[i])&0x08)!=0) return0;整理為word格式整理為word格式整理為word格式 //列奇校驗位 j=0; for(i=0;i<11;i++) j=j^(Buff[i]&0x80); if(j!=0) return0; for(i=0;i<11;i++) j=j^(Buff[i]&0x40); if(j!=0) return0; for(i=0;i<11;i++) j=j^(Buff[i]&0x20); if(j!=0) return0; for(i=0;i<11;i++) j=j^(Buff[i]&0x10); if(j!=0) return0; //完成 return1;}bitReadCardNo(){ 整理為word格式整理為word格式整理為word格式 if(CheckData()) //檢測卡 { unsignedchari; //編碼輸出 Buff[0]=(Buff[2]&0xF0)|(Buff[3]>>4&0x0F); Buff[1]=(Buff[4]&0xF0)|(Buff[5]>>4&0x0F); Buff[2]=(Buff[6]&0xF0)|(Buff[7]>>4&0x0F); Buff[3]=(Buff[8]&0xF0)|(Buff[9]>>4&0x0F); flag=1; SPK=0; LED=0; LED2=1; n=8; sum=0; lcd_pos(3,3); for(i=0;i<4;i++) //串口輸出并且LCD顯示 printhex(Buff[i]); string[0]=sum/1000000000+0x30; string[1]=sum%1000000000/100000000+0x30; string[2]=sum%100000000/10000000+0x30; string[3]=sum%10000000/1000000+0x30; string[4]=sum%1000000/100000+0x30;整理為word格式整理為word格式整理為word格式 string[5]=sum%100000/10000+0x30; string[6]=sum%10000

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論