freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于單片機控制的射頻id卡考勤機的設計畢業(yè)論文(編輯修改稿)

2025-07-15 17:14 本頁面
 

【文章內(nèi)容簡介】 主要定義是數(shù)據(jù)傳輸方式:Data0和Data1兩根數(shù)據(jù)線分別傳輸0和1。現(xiàn)在應用最多的是26bit,34bit,36bit,44bit等等。Wiegand數(shù)據(jù)輸出由二根線組成,分別是DATA0和 DATA1;二根線分別將‘0’或‘1’輸出:輸出‘0’時,DATA0線上出現(xiàn)負脈沖;輸出‘1’時,DATA1 圖37 射頻識別模塊程序流程圖線上出現(xiàn)負脈沖。其中負脈沖寬度為100mS,周期為1600mS。Wiegand 26位數(shù)據(jù)輸出時序如圖36所示。Wiegand 26位輸出格式如下表所示:表31 Wiegand 26位輸出格式EXXXX XXXX XXXXXXXX XXXX XXXXO前12bit偶校驗位前12位后12位后12bit奇校驗位以上數(shù)據(jù)從左至右順序發(fā)送。高位在前。電子卡的Wiegand 26碼的接收對時間的實時性要求比較高,如果用查詢的方法接收會出現(xiàn)丟幀的現(xiàn)象:假設查詢到DATA0為0時主程序正在指向其他任務,等主程序執(zhí)行完該任務時DATA0已經(jīng)變?yōu)?了,那么這樣就導致了一個0bit丟了,這樣讀出的卡號肯定奇偶校驗通不過,所以表現(xiàn)出CPU接收不到ID模塊發(fā)送的卡號了。唯一的辦法是在外部中斷里接收每個bit[11,15]。射頻識別模塊的子程序流程如圖37所示。其中關于卡號對比的部分涉及到外部中斷服務產(chǎn)生的卡號信息。射頻識別模塊的程序片段如下:/*****************************射頻識別模塊*****************************/void recognition(void){ uint cardcd=0。 for(i=0。i16。i++) //計算刷卡傳遞的卡號信息 {cardcd+=temp[9+i](15i)。 }if(cardcd==57099) //本地卡號1對比 {…… GREEN=0。eeprom_wt(0,num[0]1)。 //安全通過,綠燈亮并記錄刷卡信息 } else if(cardcd==55318) //本地卡號2對比 {…… GREEN=0。eeprom_wt(1,num[1]1)。 //安全通過,綠燈亮并記錄刷卡信息 } else if(cardcd==58529) //本地卡號3對比 {…… GREEN=0。eeprom_wt(2,num[2]1)。 //安全通過,綠燈亮并記錄刷卡信息 }else //外來卡 {…… BEEP=1。 //報警:蜂鳴器響,紅燈亮 RED=0。 } P3amp。=0xdf。 P3|=0x03。 //將LED燈和蜂鳴器熄滅flag=0。 //識別完成將標志位清0} 數(shù)據(jù)存儲模塊AT24C16的總線時序如圖38所示。圖38 AT24C16總線時序圖(1) 數(shù)據(jù)存儲的起始和終止條件數(shù)據(jù)線和時鐘線都為高則稱總線處于空閑狀態(tài),當SCL為高,SDA的下降沿叫做起始條件,開始進行數(shù)據(jù)的讀或寫;當SCL為高,SDA的上升沿叫做終止條件,終止數(shù)據(jù)的讀或寫,如圖39所示。其相應程序如下:圖39 數(shù)據(jù)存儲的起始和終止條件/*************起始條件************/void star(void){//時鐘線為高的條件下數(shù)據(jù)線的下降沿SDA=1。SCL=1。SDA=0。}/*************終止條件************/void stop(void){//時鐘線為高的條件下數(shù)據(jù)線的上升沿SDA=0。SCL=1。SDA=1。}(2) 數(shù)據(jù)傳送每個時鐘脈沖傳送一位數(shù)據(jù)。SCL為高時,SDA必須保持穩(wěn)定,因為此時SDA的改變會被認為是控制信號。其時序見圖310,以下代碼是送一個字節(jié)(8位)的程序片段。圖310 位傳送時序圖/************************送一個字節(jié)(8位)的數(shù)據(jù)***********************/for(i=0。i8。i++) //一個字節(jié)8位,循環(huán)8次 { SCL=0。 temp1=tempamp。0x80。 //提出一個字節(jié)的最高位 if(temp1==0x80) //判斷最高位為1則將數(shù)據(jù)線置1否則清0 SDA=1。 else SDA=0。 SCL=1。 //按時序設時鐘線使器件為允許數(shù)據(jù)改變 SCL=0。 temp=temp1。 //向左移出1位,進行下一位的傳送}(3) 應答總線上的接收器每接收到一個字節(jié)就會產(chǎn)生一個應答,主器件必須產(chǎn)生一個對應的額外的時鐘脈沖。其時序如圖311所示。接收器拉低SDA線表示應答,并在應答脈沖期間保持穩(wěn)定的低電平。當主器件做接收器時,必須發(fā)出數(shù)據(jù)傳輸結束的信號給發(fā)送器,即發(fā)送器件必須釋放SDA線為高,以便主器件產(chǎn)生停止條件。其程序如下:圖311 應答時序圖/********************************進行應答******************************/void ack(void){uchar z=0。//條件判斷,SDA=1,則沒有應答。如果沒有應答則延時:z50,z++。后返回while((SDA==1)amp。amp。(z50)) z++。SCL=0。} 開關控制模塊開關控制模塊有2方面的作用:1)調(diào)整日期和時間;2)查詢刷卡信息時翻頁。其流程如圖312 a)、312 b)所示。其中P2表示的是單片機的P2端口。SS。P2=6是S2按下;P2=5是S3按下;P2=3是S4按下;P2=2是S2和S4按下;P2=2是S3和S4按下。開始P2=6?調(diào)分針P2=5?調(diào)時針P2=3?調(diào)日期P2=2?調(diào)日期P2=1?調(diào)年份YYYYYNNNN退出Na) 時間日期調(diào)整流程圖開始P2=6?查詢下一頁YP2=5?查詢上一頁YN退出Nb) 翻頁流程圖圖312 開關控制模塊流程其程序參見附錄2 4 系統(tǒng)安裝與調(diào)試 系統(tǒng)硬件的安裝在系統(tǒng)原理圖[16]出來后,由于電路的連接和芯片的數(shù)目并不多,就考慮自己在蜂窩板上搭建焊接電路而不用印制電路板,一來可以節(jié)約成本,二來可以鍛煉自己的焊接技術。我首先找齊了所需要的芯片、芯片座、電阻、電容、三極管、發(fā)光二極管等元器件,然后就用萬用表對這些元件進行了相應的測試,保證每個元件的基本功能正常之后就是對照原理圖開始搭建電路并進行焊接。自己搭建焊接電路時最好一個模塊一個模塊的做,這樣可以避免漏掉或多添一些線,造成不必要的錯誤。在搭建焊接電路板的時候,不僅要對著原理圖將每個元件布置好還要特別注意一些元件的極性問題,例如二極管,充電電容等,如果焊接反了會造成嚴重后果。我在做硬件時特別注意雙面焊接時正面橫著布線,反面豎著布線,這樣可以避免走飛線,使板面更美觀。另外,為了方便硬件和軟件的調(diào)試,我特意將電源線,地線,普通線用紅,黑,藍三種顏色區(qū)分 ;將單片機多出來的端口與跳線相連,方便檢測軟件的中間功能;給每個芯片或集成模塊都加上了芯片座和插槽,方便程序的燒錄和存儲數(shù)據(jù)的讀寫以及其他模塊單獨的調(diào)試?!∠到y(tǒng)硬件的調(diào)試在完成了系統(tǒng)硬件的安裝和部分軟件的編寫以后,就要開始系統(tǒng)硬件的調(diào)試了。因為是手工制作的硬件電路,線路上有問題是不可避免的,再加上是人工焊接,虛焊或者是漏焊的情況也是有可能的發(fā)生的。先從電路的線路開始檢查。我用萬用表的蜂鳴檔測試任意一個芯片的電源和地線是否短路,因為,一旦出現(xiàn)短路的現(xiàn)象,芯片將會被燒壞。在確定了沒有短路的現(xiàn)象后我又對照著電路圖檢查每個元件之間應該連接在一起的點是否聯(lián)通了[9]。之后是對其進行上電檢測。我將空的單片機放在電路上,上電后發(fā)現(xiàn)液晶屏背光燈不亮,蜂鳴器也不響,用電壓表測電源端電壓發(fā)現(xiàn)遠不到5V,經(jīng)過仔細檢查,發(fā)現(xiàn)是射頻識別模塊安裝的鏡像相反,于是這一模塊需拆掉重焊。改后的電路上電測試時每個模塊都有了相應的反應。我本以為硬件沒有問題了,但是后來在編寫好液晶顯示的程序后,發(fā)現(xiàn)無論軟件如何調(diào)試,就是沒有現(xiàn)象出來,于是開始懷疑是硬件的問題,經(jīng)過摸排查找,發(fā)現(xiàn)問題的癥結在于我沒有將單片機的第31引腳接電源,改過來后就基本有了顯示。后來在調(diào)試預警模塊時,發(fā)現(xiàn)LED燈的亮度過暗,經(jīng)老師指點,原因在于我設計的電路(圖41 a)所示)不合理,LED共陰極的連接并直接用單片機的高電平驅動LED燈會使過大的電流損傷芯片[9]。最好應該為LED共陽極的連接并用低電平驅動LED燈(圖41 b)所示)。a) LED共陰極連接b) LED共陽極連接圖41 LED燈連接 系統(tǒng)軟件的調(diào)試軟件的調(diào)試是一項需要耐心和細致的工作。其中最重要的是要保證單片機正常工作,只有在這個前提下才能進行其他模塊的調(diào)試。因此需要先編寫一些簡單的程序對單片機的端口進行檢測,能正常工作則基本上沒有問題。我使用的編程工具是keil,這是基于C語言的51系列單片機開發(fā)平臺。用C51進行程序編寫其優(yōu)點在于邏輯性強,可移植性高;其缺點是容易產(chǎn)生冗余代碼,延時不夠精準需要調(diào)整,其效率沒有匯編高[6,14]?!★@示模塊的調(diào)試液晶屏的顯示與時序有很重要的關系,如果時序不正確屏幕上就不能進行顯示。起初液晶沒有顯示,我認為是時序的問題,于是我對照示波器顯示的脈沖寬度對時序進行了精準的調(diào)試,但還是沒顯示只是偶爾會出現(xiàn)亂碼。在測試液晶的數(shù)據(jù)線,有數(shù)據(jù)傳輸?shù)珮O不穩(wěn)定,于是懷疑是硬件出現(xiàn)了問題,最后終于找到了問題所在,確實是硬件問題,修改后顯示就正常了。 時鐘模塊的調(diào)試時鐘模塊涉及到單片機的定時計數(shù)中斷。在調(diào)試的時候,我為了確定中斷是否正常工作現(xiàn)在中斷里設置了一個小程序,然后通過示波器查看結果。開始時,我將時鐘程序放在主程序里,但是在顯示時發(fā)現(xiàn)時鐘的秒針的跳動不規(guī)律,其原因在于主程序的循環(huán)周期會錯過中斷產(chǎn)生的信號,于是我將時鐘程序的調(diào)用放進中斷里,問題就得到了解決[10,11]。另外,有段時間,時鐘在走一段時間后會突然自動復位,軟件上我檢查了沒有任何問題,可能是系統(tǒng)在編譯的時候誤修改了相關的寄存器,后來這個問題得到了自動解決?!∩漕l識別模塊的調(diào)試射頻識別模塊在調(diào)試的時候我采用將刷卡信息顯示在液晶屏上的方法確定每張卡的對應碼,但出現(xiàn)了同一張卡每次刷卡信息不一致的現(xiàn)象,究其原因是預設數(shù)組與卡碼不兼容,設定標志位檢驗后問題就得到了解決。同時,為了使程序運行效率更高,我對卡號對比程序進行了優(yōu)化,先用算法將卡號計算出來再進行比較,之后再對計算出的卡號進行字符化,這樣程序能夠運行得更快?!?shù)據(jù)存儲模塊的調(diào)試我在設計的時候是將外部數(shù)據(jù)存儲器分為3個部分,0x000x4f、0x500x9f、0xa00xff分別用于記錄三張本地卡的刷卡信息,但在調(diào)試時發(fā)現(xiàn)AT24C16中記錄的最后一張卡的信息寫地址總是不正確,仔細分析程序后發(fā)現(xiàn)是有條賦值語句沒寫,導致后續(xù)地址錯誤,改正后就對了。 開關控制模塊的調(diào)試由于只有四個按鍵,要完成時間校準和信息查詢,不可能只用單獨按鍵,使用組合鍵就比較好。調(diào)試過程中出現(xiàn)了按鍵反應不靈敏的現(xiàn)象,主要是按鍵防抖動時間過長,將程序稍加修改就可以了。 結 論本設計由六個單元組成,分別是電源模塊、射頻識別模塊、預警模塊、數(shù)據(jù)存儲模塊、開關控制模塊和LCD顯示模塊。每個模塊各自完成相應的功能。其中射頻識別模塊是輸入部分,開關控制模塊是轉換部分,LCD顯示模塊是輸出部分,數(shù)據(jù)存儲模塊是存儲部分。這幾個模塊都是圍繞單片機運行的,是整個系統(tǒng)的核心。本設計的特點是將硬件優(yōu)化后可以與上位機數(shù)據(jù)庫相連實現(xiàn)更多卡的記錄,可以用于公司人員的考勤管理。本設計的優(yōu)點是設計較為簡單,成本低,方便使用且功耗低。不足之處是時鐘是軟件編寫不能進行掉電走時,若采用電子鐘芯片會更完善。通過本次畢業(yè)設計,我對電路的分析能力、檢測能力和用C語言編程的能力都進一步得到了提升。在硬件制作的前期準備階段,為了獲得一個最優(yōu)的硬件方案,我查找了大量的書籍和網(wǎng)絡資料,在老師的幫助下,通過對不同的電路原理的對比分析,最終選定了這個應用最廣的方案。繪制電路圖階段的工作使我對Protel99SE軟件的使用更加熟練。對硬件電路的焊接使我的焊接技術得到了提升。通過對硬件電路的調(diào)試,我掌握了硬件電路一般的檢測和排錯方法。在編寫和調(diào)試軟件程序的過程中,我掌握了示波器和仿真器的使用方法,并且更深刻地體會到軟件的編寫和對硬件電路的分析是分不開的。雖然本次畢業(yè)設計已經(jīng)圓滿的結束了,但是,我知道要學習的東西還有很多,因此,在今后的學習和工作中,我一定會更加努力,不斷提升自己的價值。 致 謝經(jīng)過不懈的努力,我成功地完成了包括硬件電路設計與制作、軟件程序編寫與調(diào)試以及畢業(yè)論文撰寫在內(nèi)的畢業(yè)設計。在整個畢業(yè)設計的過程中,我的指導老師陳青老師一直都給予我很大的幫助。在硬件電路的分析上,陳老師幫我優(yōu)化方案;在硬件電路的制作上,陳老師幫我排除錯誤;在軟件程序的編寫和調(diào)試上,陳老師幫我理清思路。總之,沒有陳老師的悉心指導,我的畢業(yè)設計是不會這么順利就完成的。同時,我也要感謝學校和系領導為我們創(chuàng)造了一個幽雅、便捷的環(huán)境,使我們可以安心的學習和生活。另外,我也感謝我的家人對我一貫的支持,無論我在設計制作上遇到多大的困難他們都耐心的安慰我,給我加油打氣,讓我在心理上度過了一個又一個難關;每當我取得一個小小的進步,他們同我一樣興奮和高興并且鼓勵我繼續(xù)加油。最后我要感謝大學四年來所有教導過我的老師們的,感謝同學們的支持和鼓勵,感謝學校對我的栽培,我將在以后的工作學習中繼續(xù)努力,不斷爭取進步! 參考文獻[1] . 北京:清華大學出版社, 2003.[2] . 北京:清
點擊復制文檔內(nèi)容
規(guī)章制度相關推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1