版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、基于單片機(jī)的實(shí)驗(yàn)考核系統(tǒng)的設(shè)計(jì)摘要 本課題針對(duì)實(shí)驗(yàn)室考核問(wèn)題通過(guò)RFID技術(shù)設(shè)計(jì)以ATmega16和MRFC522射頻模塊為核心,設(shè)計(jì)能夠通過(guò)讀卡記錄實(shí)驗(yàn)學(xué)生信息以及通過(guò)DS1302實(shí)時(shí)時(shí)鐘電路提供的時(shí)鐘信息,記錄實(shí)驗(yàn)學(xué)生開(kāi)始實(shí)驗(yàn)與結(jié)束實(shí)驗(yàn)的時(shí)間,同時(shí)老師能通過(guò)按鍵輸入評(píng)定結(jié)果并刷卡實(shí)時(shí)錄入成績(jī)的實(shí)驗(yàn)室考核硬件系統(tǒng)。并且該系統(tǒng)能夠?qū)崿F(xiàn)對(duì)實(shí)驗(yàn)學(xué)生進(jìn)行實(shí)驗(yàn)的相關(guān)信息進(jìn)行實(shí)時(shí)存儲(chǔ)以及發(fā)送的功能。對(duì)于目前實(shí)驗(yàn)室簽到、老師點(diǎn)名等傳統(tǒng)的考核手段來(lái)說(shuō)這是一個(gè)新的嘗試,這對(duì)于提高教學(xué)質(zhì)量會(huì)有一定的幫助。關(guān)鍵詞 RFID;ATmega16;MFRC522; DS1302ABSTRACT This task in
2、 order to solve the laboratory evaluation problem, use ATmega16 and MFRC522 radio frequency module as the code ,to design one laboratory evaluation hardware system which can keep a recode of the student message by read the students card as well as recode the start time and end time of the experiment
3、 down through the clock signal which come from the real-time clock circuitDS1302. whats more the teacher can input the estimation results through the key and recode down the estimation results by swiping card on this laboratory evaluation hardware system.AT the same time this hardware system can sto
4、re the relevant information of the student experiment in real-time and send the information to the computer. For the traditional laboratory evaluation such as sign in and call the roll this is a new try and this will be useful for improving the quality of teaching.KEY WORDS RFID; ATmega16; MFRC522;
5、DS1302目 錄1前言11.1本文研究背景及意義11.2研究現(xiàn)狀與研究?jī)?nèi)容12設(shè)計(jì)要求分析和方案選擇22.1設(shè)計(jì)要求22.2方案論證選擇23硬件設(shè)計(jì)53.1系統(tǒng)結(jié)構(gòu)框圖53.2元器件選定63.3讀卡系統(tǒng)設(shè)計(jì)63.3.1ATmega16最小系統(tǒng)設(shè)計(jì)63.3.2MFRC522射頻模塊83.4顯示設(shè)計(jì)113.5實(shí)時(shí)時(shí)鐘電路設(shè)計(jì)133.6USART接口設(shè)計(jì)143.7系統(tǒng)其他的電路設(shè)計(jì)143.7.1蜂鳴器電路設(shè)計(jì)143.7.2LED燈電路設(shè)計(jì)143.7.3按鍵電路154軟件設(shè)計(jì)164.1程序框圖164.1.1主程序164.1.2輸入函數(shù)inputnum()174.1.3時(shí)間調(diào)整函數(shù)timeset()1
6、84.1.4信息查看發(fā)送函數(shù)message()204.1.5學(xué)生刷卡函數(shù)214.1.6老師刷卡函數(shù)224.2MFRC522射頻模塊程序設(shè)計(jì)244.3LCDS12864程序設(shè)計(jì)284.3.1LCD12864指令介紹284.3.2LCD12864程序設(shè)計(jì)294.4DS1302程序設(shè)計(jì)314.4.1DS1302控制字與寄存器314.4.2DS1302操作程序334.5串口(USART)通訊程序設(shè)計(jì)374.5.1USART寄存器374.5.2USART通訊實(shí)現(xiàn)程序395系統(tǒng)調(diào)試過(guò)程與運(yùn)行結(jié)果415.1系統(tǒng)設(shè)計(jì)軟件415.2抗干擾措施415.2.1硬件抗干擾415.2.2軟件抗干擾415.3系統(tǒng)運(yùn)行結(jié)果
7、425.4調(diào)試中出現(xiàn)的問(wèn)題以及解決方法435.4.1出現(xiàn)的問(wèn)題以及解決方法435.4.2分析總結(jié)446結(jié)論45致謝46參考文獻(xiàn)471 前言1.1 本文研究背景及意義隨著RFID即射頻識(shí)別(Radio Frequency IDentification)通訊技術(shù)的發(fā)展?,F(xiàn)階段許多領(lǐng)域都廣泛應(yīng)用RFID技術(shù),例如生產(chǎn),物流,交通,門(mén)禁等。如今許多企業(yè)也都采用了RFID技術(shù)進(jìn)行人事管理,不僅是人事管理簡(jiǎn)單便捷同時(shí)大大提高了企業(yè)特別是大型工廠的生產(chǎn)效率。而物流對(duì)于RFID技術(shù)的應(yīng)用更是意義重大,能夠是客戶(hù)隨時(shí)知道物品的所處位置。隨著RFID的廣泛應(yīng)用,現(xiàn)在的高校也采用了RFID技術(shù)對(duì)學(xué)生進(jìn)行管理,例如宿
8、舍的門(mén)禁,教室、實(shí)驗(yàn)室的考勤等。這樣僅能節(jié)省老師上課點(diǎn)名的時(shí)間提高教學(xué)效率同時(shí)也能起到對(duì)于學(xué)生的監(jiān)督有利于提高學(xué)風(fēng)建設(shè)。因此對(duì)于高校應(yīng)用RFID技術(shù)進(jìn)行考勤考核是很有意義的。隨著高新科技的日益發(fā)展以及不斷應(yīng)用到生活中,如今的考勤在方式上面發(fā)生很大變化,在為人們帶來(lái)便利的同時(shí)也提高了工作學(xué)習(xí)效率。以前的考勤一般通過(guò)花名冊(cè)點(diǎn)名或者簽到,花名冊(cè)尤為重要。如今考勤方式則比較多樣化,有的采用刷卡方式,有的采用指紋識(shí)別方式,更有甚者采用人臉識(shí)別技術(shù)。本課題就是在高校實(shí)驗(yàn)室應(yīng)用RFID技術(shù)進(jìn)行考核的一個(gè)硬件系統(tǒng)設(shè)計(jì)。1.2 研究現(xiàn)狀與研究?jī)?nèi)容RFID技術(shù)發(fā)展越來(lái)越成熟,國(guó)內(nèi)外對(duì)于RFID的應(yīng)用也越來(lái)越廣泛。
9、一般來(lái)說(shuō),在應(yīng)用RFID技術(shù)的同時(shí)是與非接觸IC卡一起應(yīng)用的。非接觸式IC卡(又稱(chēng)射頻卡)是在90年代初發(fā)展起來(lái)的新技術(shù),它成功地將射頻識(shí)別技術(shù)與IC卡技術(shù)結(jié)合起來(lái),解決了無(wú)源和避免機(jī)械接觸的難題,推動(dòng)了RFID技術(shù)的開(kāi)發(fā)與應(yīng)用王素英.基于非接觸式IC卡門(mén)禁系統(tǒng)的研究與設(shè)計(jì)D.沈陽(yáng):東北大學(xué)信息科學(xué)與工程學(xué)院,2007.7-8?,F(xiàn)今的不少行業(yè)都應(yīng)用了RFID技術(shù)。對(duì)于一些學(xué)校的考勤也應(yīng)用了RFID技術(shù),但是對(duì)于考核方面應(yīng)用RFID方面的研究還比較少,因此對(duì)于這方面的研究會(huì)比較有實(shí)用意義也有研究?jī)r(jià)值。本課題研究的主要內(nèi)容是將RFID技術(shù)應(yīng)用到實(shí)驗(yàn)室考核中,為改變?nèi)缃駥?shí)驗(yàn)室傳統(tǒng)的考核方式而做出新的
10、嘗試。本課題主要是利用ATmega16和MRFC522射頻模塊實(shí)現(xiàn)相關(guān)功能,介紹射頻模塊的應(yīng)用以及考核系統(tǒng)中的一些必要的硬件設(shè)計(jì)以及軟件設(shè)計(jì)調(diào)試,最后做出一個(gè)硬件系統(tǒng)。2 設(shè)計(jì)要求分析和方案選擇2.1 設(shè)計(jì)要求鑒于現(xiàn)今的點(diǎn)名簽到考勤方式的費(fèi)時(shí)費(fèi)力,同時(shí)不能正確反映學(xué)生出勤情況。有必要開(kāi)發(fā)研制應(yīng)用RFID技術(shù)的實(shí)驗(yàn)室實(shí)驗(yàn)考核記錄儀。此儀器包括以下主要功能:(1)系統(tǒng)能顯示或輸入實(shí)驗(yàn)項(xiàng)目代碼(名稱(chēng));(2)系統(tǒng)能讀出IC卡的序列號(hào),記錄做實(shí)驗(yàn)的學(xué)生名稱(chēng);(3)系統(tǒng)具有實(shí)時(shí)記錄實(shí)驗(yàn)開(kāi)始時(shí)間、完成時(shí)間、實(shí)驗(yàn)成績(jī)、評(píng)定人的相關(guān)信息的功能;(4)考勤、考核用的原始數(shù)據(jù)能夠?qū)崟r(shí)存儲(chǔ)或上傳保存。按照系統(tǒng)設(shè)計(jì)的
11、要求,本系統(tǒng)應(yīng)該包括以下幾個(gè)部分:(1) 單片機(jī)是系統(tǒng)的主控芯片,控制各模塊實(shí)現(xiàn)系統(tǒng)功能。(2) 要求系統(tǒng)能夠讀出IC卡序列號(hào),因此系統(tǒng)要有讀卡模塊也就是射頻模塊。(3) 要求系統(tǒng)能夠?qū)崟r(shí)顯示相關(guān)信息,系統(tǒng)要有顯示模塊。(4) 要求系統(tǒng)能輸入相關(guān)信息,系統(tǒng)要有輸入模塊。(5) 要記錄相關(guān)時(shí)間,所以系統(tǒng)要能提供實(shí)時(shí)時(shí)鐘信息,因此系統(tǒng)要有時(shí)鐘模塊。(6) 對(duì)于系統(tǒng)記錄的信息要求能夠上傳,因此系統(tǒng)要有通信模塊用于信息傳送。根據(jù)不同的單片機(jī)以及讀卡模塊擬定了三種方案,以下是三種方案的論證以及最后方案的確定。2.2 方案論證選擇方案一:使用AT89S52單片機(jī)作為主控芯片,對(duì)選用MFRC522射頻模塊進(jìn)
12、行讀卡操作。AT89S52單片機(jī)是一種CMOS結(jié)構(gòu)的高性能、低功耗8位微處理器,具有8K字節(jié)Flash存儲(chǔ)器,32個(gè)可編程IO口。AT89S51單片機(jī)是現(xiàn)在使用作為廣泛的一種51單片機(jī),各種應(yīng)用例程也是有很多,對(duì)于本系統(tǒng)設(shè)計(jì)的借鑒有很大的幫助。同時(shí)它的價(jià)格也是比較低廉,但是它也具有一個(gè)缺點(diǎn),就是自身不具備電子抹除式可復(fù)寫(xiě)自讀存儲(chǔ)器(EEPROM),不能進(jìn)行信息存儲(chǔ),不過(guò)如果一定要進(jìn)行信息存儲(chǔ)可以通過(guò)外加EEPROM存儲(chǔ)器芯片(例如AT24C系列)實(shí)現(xiàn)信息的實(shí)時(shí)存儲(chǔ)。該方案結(jié)構(gòu)框圖如圖2-1所示。圖2-1 方案一結(jié)構(gòu)框圖方案二:采用ATmega16作為主控芯片(MCU),讀卡模塊則選用13.56
13、MHz工作頻率的 FM1702射頻模塊。ATmega16單片機(jī)是一種低功耗AVR RISC結(jié)構(gòu)的8位CMOS微控制器,具有16K字節(jié)Flash存儲(chǔ)器相對(duì)AT89S52單片機(jī)編程空間增加了一倍,32個(gè)可編程IO口,USART和SPI串行接口,同時(shí)具有512字節(jié)EEPROM,很好的解決了AT89S52單片機(jī)不具有EEPROM的問(wèn)題。因此選用ATmega16單片機(jī)作為MCU。對(duì)于FM1702射頻模塊,它支持13.56MHz下的ISO1443 typa A非接觸通信協(xié)議,支持mifare1 S70、mifare1 S50等卡。也就是能夠?qū)ξ覀儗W(xué)生現(xiàn)在所使用的學(xué)生卡(大學(xué)城一卡通)進(jìn)行讀卡操作,對(duì)于開(kāi)發(fā)
14、實(shí)驗(yàn)室考核系統(tǒng)比較方便。該方案結(jié)構(gòu)框圖如圖2-2所示.圖2-2 方案二結(jié)構(gòu)框圖方案三:ATmega16作為主控芯片,讀卡模塊選用MFRC522射頻模塊。MFRC522射頻模塊支持13.56MHz下的ISO1443 typa A非接觸通信協(xié)議,支持mifare1 S70、mifare1 S50等卡,同樣也就是能夠?qū)ξ覀儗W(xué)生現(xiàn)在所使用的學(xué)生卡(大學(xué)城一卡通)進(jìn)行讀卡操作,以及對(duì)現(xiàn)在的大多數(shù)卡進(jìn)行讀寫(xiě)操作,對(duì)于讀卡系統(tǒng)的開(kāi)發(fā)與應(yīng)用性?xún)r(jià)比較高。同時(shí)模塊與主機(jī)之間的通信是通過(guò)SPI模式,而ATmega16自身具有可以作為主機(jī)或從機(jī)模式的SPI串行接口。相對(duì)于FM1702射頻模塊來(lái)說(shuō),MFRC522射頻模
15、塊的價(jià)格也是較為低廉。 兩者相連的結(jié)構(gòu)框圖如圖2-3所示。圖2-3 方案三結(jié)構(gòu)框圖對(duì)比以上三個(gè)方案。方案一能夠?qū)崿F(xiàn)系統(tǒng)所有功能,但是需外加存儲(chǔ)器芯片,這樣不僅消耗不必要的IO口同時(shí)也增加了編程的難度。方案二相對(duì)一來(lái)說(shuō)比較理想,但是由于FM1702價(jià)格較高這樣增加了系統(tǒng)開(kāi)發(fā)成本。方案三最為理想,不僅能夠?qū)崿F(xiàn)系統(tǒng)的所有要求,同時(shí)由于射頻模塊價(jià)格較低導(dǎo)致開(kāi)發(fā)成本不高。綜合上述,方案三的性?xún)r(jià)比最高,因此本系統(tǒng)設(shè)計(jì)選用方案三。3 硬件設(shè)計(jì)3.1 系統(tǒng)結(jié)構(gòu)框圖本系統(tǒng)采用ATmega16單片機(jī)作為主控芯片(MCU),以MFRC522讀卡模塊作為主要元器件搭建硬件系統(tǒng)實(shí)現(xiàn)讀取卡號(hào)的主要功能。以LCD12864
16、和4*4矩陣鍵盤(pán)進(jìn)行人機(jī)交互,使得系統(tǒng)的功能更加完善,操作也更加方便。作為實(shí)驗(yàn)考核系統(tǒng)必須在實(shí)驗(yàn)過(guò)程記錄相關(guān)的實(shí)驗(yàn)時(shí)間,因此增加DS1302實(shí)時(shí)時(shí)鐘電路為系統(tǒng)提供實(shí)時(shí)時(shí)間,此電路的精度較高,是現(xiàn)今應(yīng)用廣泛的時(shí)鐘電路,同時(shí)能夠在斷電的情況下繼續(xù)計(jì)時(shí)降低了整個(gè)系統(tǒng)的能耗。為了能夠把存儲(chǔ)在ATmega16EEPROM的學(xué)生實(shí)驗(yàn)信息上傳至上位機(jī),特意在系統(tǒng)設(shè)計(jì)時(shí)留有一個(gè)USART串口通訊接口。為了使系統(tǒng)操作更具人性化,在系統(tǒng)設(shè)計(jì)時(shí)增加了蜂鳴器以及一路LED用于進(jìn)行錯(cuò)誤操作的警告以及正確操作的響應(yīng)。系統(tǒng)結(jié)構(gòu)框圖如圖3-1所示。圖3-1 系統(tǒng)結(jié)構(gòu)框圖3.2 元器件選定為了控制方便,在本系統(tǒng)設(shè)計(jì)時(shí)所選用的蜂
17、鳴器為有源蜂鳴器。如表3-1所示元件清單。表3-1 元器件列表名稱(chēng)數(shù)目名稱(chēng)數(shù)目ATmega161MAX2321MFRC522射頻模塊1二極管1LCD12864液晶屏1LED若干DS1302實(shí)時(shí)時(shí)鐘1電阻若干三極管85501按鍵若干蜂鳴器1電容若干3.3 讀卡系統(tǒng)設(shè)計(jì)本小節(jié)主要介紹讀卡系統(tǒng)的硬件設(shè)計(jì),包括主控芯片ATmega16以及射頻模塊MFRC522的介紹以及它們?cè)诒鞠到y(tǒng)設(shè)計(jì)中的應(yīng)用電路。3.3.1 ATmega16最小系統(tǒng)設(shè)計(jì)(1)ATmega16單片機(jī)介紹 ATmega16單片機(jī)是一款低功耗,高性能RISC結(jié)構(gòu)的8位AVR微處理器。其封裝形式有40腳的DIP封裝,44腳的TQFP封裝以及
18、44腳MLF封裝。具有32個(gè)8位通用工作寄存器,16K字節(jié)的可編程Flash以及512字節(jié)的EEPROM。32個(gè)可編程的IO口,作為輸出時(shí)可輸出40mA電流可直接驅(qū)動(dòng)LED等,作為輸入時(shí)可設(shè)置為三態(tài)高阻抗輸入或者設(shè)置為帶上拉電阻輸入,具備10到20mA灌電流能力。片上資源豐富,擁有兩個(gè)串行USART模塊以及可以作為主機(jī)或從機(jī)的SPI串行接口,通過(guò)設(shè)置相關(guān)寄存器即可調(diào)用。因此憑借其功能豐富、性?xún)r(jià)比高等優(yōu)點(diǎn),如今ATmega16被廣泛使用。ATmega16供電電壓:普通類(lèi)型:4.5V-5.5V低耗類(lèi)型:2.7V-5.5V(2)ATmega16引腳與封裝圖圖3-2 ATmega16封裝圖引腳說(shuō)明:V
19、CC:數(shù)字電路電源GND:地PA端口:A/D轉(zhuǎn)換模塊模擬輸入引腳。8位雙向I、O口,有可編程內(nèi)部上拉電阻。復(fù)位情況下,引腳處于高阻態(tài)。PB端口:8位雙向I、O口,有可編程內(nèi)部上拉電阻。復(fù)位情況下,引腳處于高阻態(tài)。部分引腳具有第二功能。PC端口:8位雙向I、O口,有可編程內(nèi)部上拉電阻。復(fù)位情況下,引腳處于高阻態(tài)。部分引腳具有第二功能。JTAG使能時(shí)不能當(dāng)做普通IO口用。PD端口:8位雙向I、O口,有可編程內(nèi)部上拉電阻。復(fù)位情況下,引腳處于高阻態(tài)。部分引腳具有第二功能。RESET:復(fù)位引腳。AVR單片機(jī)是低電平復(fù)位,復(fù)位要保證一定脈寬的低電平。XTAL1:外部連接晶振。XTAL2:外部連接晶振。A
20、VCC:A/D轉(zhuǎn)換器電源。用到ADC功能時(shí),該引腳應(yīng)先通過(guò)一個(gè)低通濾波器再與VCC相連,否則直接與VCC相連。AREF:A/D的模擬基準(zhǔn)電壓輸入引腳。(3)ATmega16最小系統(tǒng)圖3-3 ATmega16最小系統(tǒng)原理圖如上圖所示本設(shè)計(jì)ATmega16最小系統(tǒng)原理圖。正常情況ATmega16最小系統(tǒng)應(yīng)包括復(fù)位電路,ISP下載接口(用于程序燒寫(xiě)),晶振電路,AD轉(zhuǎn)換濾波電路,JTAG仿真接口,電源。由于本系統(tǒng)利用的是內(nèi)部4MHz時(shí)鐘,因此不需要外部晶振電路同時(shí)也不需要AD轉(zhuǎn)換以及JTAG仿真。由于現(xiàn)在USB接口通用性高,因此本系統(tǒng)的電源由USB接口通過(guò)USB數(shù)據(jù)線提供5V電源。這樣本系統(tǒng)在實(shí)際應(yīng)
21、用時(shí)電源就很容易解決即便在使用過(guò)程中出現(xiàn)斷電情況也能輕易解決。3.3.2 MFRC522射頻模塊(1)MFRC522射頻模塊介紹MFRC522射頻模塊的核心是MFRC522讀寫(xiě)卡芯片。MFRC522是應(yīng)用于13.56MHz非接觸式通信中高集成度的讀寫(xiě)卡芯片,是NXP公司針對(duì)“三表”應(yīng)用推出的一款低電壓、低成本、體積小的非接觸式讀寫(xiě)卡芯片,是智能儀表和便攜式手持設(shè)備研發(fā)的較好選擇朱曉林.基于射頻識(shí)別的嵌入式門(mén)禁系統(tǒng)設(shè)計(jì)D.河北:河北工業(yè)大學(xué)控制科學(xué)與工程學(xué)院,2012.12-12。同時(shí)該芯片是13.56MHz讀寫(xiě)卡芯片比較新的一款,該芯片為主機(jī)提供多種通信接口包括USART(Universal
22、Synchronous and Asynchronous serial Receiver and Transimitter)、SPI(Serial Perpheral Interface)、IIC(Inter-IntegratedCircuit)三種串行主機(jī)接口,可以減少與主機(jī)的連線。相對(duì)于其他13.56MHz讀寫(xiě)卡芯片有很多相似點(diǎn)也有自身的特點(diǎn)與差異。本模塊支持13.56MHz下的ISO/IEC 14443 typa A非接觸通信協(xié)議,支持mifare1 S70、mifare1 S50、mifare1 Pro等卡同時(shí)價(jià)格低廉,使用方便,適用于多類(lèi)型卡片,對(duì)于IC卡讀寫(xiě)開(kāi)發(fā)具有很高的性?xún)r(jià)比。模
23、塊實(shí)物圖如下所示:圖3-4 模塊實(shí)物圖(2)MFRC522與主機(jī)接口本設(shè)計(jì)所選用的射頻模塊采用的是四線制SPI(MOSI、MISO、SCK、SDA)主機(jī)接口,通訊時(shí)的時(shí)鐘信號(hào)由MCU提供。射頻模塊作為從機(jī),接收來(lái)自MCU的數(shù)據(jù)以設(shè)置相關(guān)寄存器,并負(fù)責(zé)射頻接口通信中的相關(guān)數(shù)據(jù)收發(fā)黃俊祥 陶維青.基于MFRC522的RFID讀卡器模塊設(shè)計(jì)J.微型機(jī)與應(yīng)用,2010(22),16-18。本系統(tǒng)設(shè)計(jì)所選用的ATmega16是自帶SPI串行通訊接口,SPI模塊所用到ATmega16的外部引腳有四個(gè):SCK(PB7)、MISO(PB5)、MOSI(PB6)和/SS(PB4)。當(dāng)使能SPI接口后,AVR并沒(méi)
24、有自動(dòng)強(qiáng)制定義全部的四個(gè)引腳,因此在實(shí)際使用過(guò)程中用戶(hù)可以根據(jù)自身需要對(duì)這些引腳進(jìn)行修改設(shè)置。在使用這些引腳過(guò)程中,對(duì)于設(shè)置為輸入的引腳應(yīng)該使能內(nèi)部上拉電阻,這樣在硬件設(shè)計(jì)時(shí)就不用外加上拉電阻使硬件系統(tǒng)更為簡(jiǎn)潔。MFRC522射頻模塊SPI接口引腳的功能和方向定義如下表所示。表3-2 SPI模塊引腳功能引腳主機(jī)方向從機(jī)方向SCK(PB7)自定義輸入MOSI(PB6)輸入自定義MISO(PB5)自定義輸入SDA(PB4)自定義輸入除了以上四個(gè)引腳以及電源,在使用該模塊是還有一個(gè)復(fù)位引腳,為了硬件電路布線方便將該引腳與MCU的PB3引腳相連,當(dāng)輸出低電平時(shí)可起到復(fù)位的作用。具體接口電路原理圖如下所
25、示:圖3-5 射頻模塊接口原理圖(3)射頻模塊供電電源由于MFRC522模塊供電電源是3.3V而系統(tǒng)電源是5V,因此要為模塊的設(shè)計(jì)專(zhuān)用電源。通過(guò)比對(duì),選用的是常用的穩(wěn)壓芯片LM1117-3.3將5V穩(wěn)壓至3.3V。LM1117-3.3是高效率線性穩(wěn)壓器,其內(nèi)部集成有過(guò)熱保護(hù)電路以及限流保護(hù)電路,對(duì)于IC電源設(shè)計(jì)是一款不錯(cuò)的芯片如今的應(yīng)用也是比較廣泛。芯片實(shí)物圖如圖3-6所示,芯片引腳圖如圖3-7所示 。 圖3-6 LM1117實(shí)物圖LM1117-3.3芯片的輸入電壓不能低于4.75V,否則輸出電壓不能穩(wěn)定在3.3V。工作溫度范圍為:-40C125C。其應(yīng)用電路原理圖如圖3-8所示,系統(tǒng)實(shí)際應(yīng)用
26、電路如圖3-9所示。 圖3-7 芯片引腳圖圖3-8 模塊電源原理圖圖3-9 射頻模塊電源實(shí)際原理圖3.4 顯示設(shè)計(jì)本系統(tǒng)顯示所選用的是帶字庫(kù)型LCD12864顯示模塊,該顯示模塊不僅僅能顯示字符同時(shí)能顯示漢字。LCD12864為數(shù)字點(diǎn)陣式液晶模塊,其具有以下特性:(1)COMS大規(guī)模集成電路LCD驅(qū)動(dòng);(2)大容量圖形類(lèi)型,能夠顯示數(shù)字、字母、特殊字符、曲線、圖表和模型等;(3)模塊是陽(yáng)極驅(qū)動(dòng);(4)對(duì)比度高并且寬視覺(jué)范圍;(5)分辨率為1/64史良.LCD12864顯示模塊與微處理器的接口設(shè)計(jì)J.礦業(yè)安全與環(huán)保,1999(5).16-17。考慮到在實(shí)驗(yàn)過(guò)程中系統(tǒng)應(yīng)該顯示實(shí)時(shí)時(shí)間、實(shí)驗(yàn)學(xué)生卡號(hào)
27、等信息,同時(shí)考慮到希望能在系統(tǒng)翻看以往的學(xué)生實(shí)驗(yàn)信息,而學(xué)生的實(shí)驗(yàn)信息包括學(xué)生卡號(hào)、實(shí)驗(yàn)代號(hào)、實(shí)驗(yàn)開(kāi)始時(shí)間以及結(jié)束時(shí)間、評(píng)定結(jié)果、評(píng)定人卡號(hào)等較為多的信息量且包括了數(shù)字、符號(hào)、漢字等多類(lèi)型字符顯示,因此選用該顯示模塊。此模塊在現(xiàn)今中的應(yīng)用也是比較廣泛。要對(duì)其應(yīng)用先要對(duì)其有一定的了解,以下簡(jiǎn)單介紹該模塊的引腳功能,設(shè)計(jì)出其應(yīng)用接口電路原理圖。LCD12864的引腳功能說(shuō)明如表3-3所示。表3-3 LCD12864引腳說(shuō)明引腳號(hào)引腳名稱(chēng)狀態(tài)引腳功能1VSS-電源地端2VDD-電源正端3V0-LED驅(qū)動(dòng)電壓輸入端4RS(CS)H/L并行方式的指令或數(shù)據(jù),串行方式片選5R/W(SID)H/L并行的讀寫(xiě)
28、操作選擇,串行的數(shù)據(jù)口6E(CLK)H/L并行方式使能信號(hào),串行方式同步時(shí)鐘7-14DB0-DB7H/L數(shù)據(jù)0-數(shù)據(jù)715PSBH/L并/串行接口選擇,H-并行,L-串行16NC懸空17/RSTH/L復(fù)位引腳,低電平復(fù)位18NC懸空19LED_A-背光電源正極+5V20LED_K-背光電源負(fù)極-5V本設(shè)計(jì)用的是并行接口,因此在硬件設(shè)計(jì)這里直接將PSB接口選擇接口直接接到+5V。以下是模塊接口電路原理圖。圖3-10 接口原理圖3.5 實(shí)時(shí)時(shí)鐘電路設(shè)計(jì)本設(shè)計(jì)所選用的實(shí)時(shí)時(shí)鐘電路是DS1302,能夠計(jì)算2100年之前的秒、分、時(shí)、日、星期、月、年的能力,同時(shí)具有閏年調(diào)整能力寇詩(shī)隆 劉鑫.多功能液晶萬(wàn)
29、年歷的設(shè)計(jì)制作J.電子制作,2010(3).14-16。DS1302的管腳排列及描述如圖3-11及文字所示。X1,X2:32.768KHz晶振管腳GND:地RST:復(fù)位引腳I/O:數(shù)據(jù)輸入輸出引腳SCLK:串行時(shí)鐘VCC1:電源1引腳VCC2:電源2引腳 圖3-11 DS1302引腳圖DS1302電路原理圖如下所示圖3-12 DS1302電路原理圖DS1302通訊接口,如圖3-12所示對(duì)DS1302的應(yīng)用電路。從圖中可知DS1302與單片機(jī)之間的通信僅依靠三根線(SCLK(PB0)、I/O(PB1)、RST(PB2))。SCLK是時(shí)鐘信號(hào),I/O是數(shù)據(jù)線,RST是使能端,每次數(shù)據(jù)傳送都要先拉高
30、該引腳電平。這種通信接口其實(shí)就是SPI接口的一種變異模式,但是ATmega16自帶的標(biāo)準(zhǔn)SPI接口已經(jīng)用于與MFRC522射頻模塊的連接,因此在程序設(shè)計(jì)時(shí)要注意按照時(shí)序圖模擬出SPI對(duì)DS1302進(jìn)行數(shù)據(jù)的讀寫(xiě)操作。3.6 USART接口設(shè)計(jì)ATmega16單片機(jī)內(nèi)部集成一個(gè)全雙工通用同步/異步串行數(shù)據(jù)收發(fā)器USART,該接口是一個(gè)高度靈活的串行通信設(shè)備陳忠平.基于Proteus的AVR單片機(jī)C語(yǔ)言程序設(shè)計(jì)與仿真M.北京:電子工業(yè)出版社,2011.298-306。在本系統(tǒng)設(shè)計(jì)中主要利用該接口進(jìn)行學(xué)生實(shí)驗(yàn)信息的上傳。USART模塊主要用到ATmega16的外部引腳有PD1(TXD)USART輸出
31、引腳以及PD2(RXD)USART輸入引腳,接口電路原理圖如圖3-13所示: 圖3-13 USART接口原理圖3.7 系統(tǒng)其他的電路設(shè)計(jì)3.7.1 蜂鳴器電路設(shè)計(jì)為了能夠提示操作是否正確,在系統(tǒng)設(shè)計(jì)是加入了蜂鳴器電路實(shí)現(xiàn)聲信號(hào)提醒功能。此電路主要起的作用是,在刷卡時(shí)提示刷卡成功,以及在按鍵時(shí)提示操作錯(cuò)誤。為了程序設(shè)計(jì)時(shí)易于實(shí)現(xiàn),本設(shè)計(jì)選用的是有源蜂鳴器。其應(yīng)用電路如圖3-14所示: 圖3-14 蜂鳴器電路圖3.7.2 LED燈電路設(shè)計(jì)在本系統(tǒng)中所使用的LED作用主要有兩種。一種是指示電源的開(kāi)關(guān),另外一種是提示按鍵操作時(shí)的操作錯(cuò)誤。如圖3-15是電源開(kāi)關(guān)指示電路,圖3-16是操作提示電路。圖3-
32、15 電源指示電路圖3-16 電源指示電路3.7.3 按鍵電路系統(tǒng)要求能輸入信息。由于實(shí)驗(yàn)系統(tǒng)是需要輸入實(shí)驗(yàn)代號(hào),評(píng)定成績(jī)等的信息。同時(shí)在對(duì)系統(tǒng)時(shí)鐘進(jìn)行設(shè)置的時(shí)候也要依靠按鍵輸入。因此在系統(tǒng)設(shè)計(jì)時(shí)要有按鍵輸入電路。按鍵可分為獨(dú)立按鍵以及矩陣鍵盤(pán),兩種按鍵各有特點(diǎn)。獨(dú)立按鍵能夠節(jié)省器件,使系統(tǒng)簡(jiǎn)潔但程序設(shè)計(jì)較為麻煩。矩陣鍵盤(pán)能直接輸入數(shù)字,按鍵數(shù)目多,功能實(shí)現(xiàn)起來(lái)簡(jiǎn)單。綜上考慮選擇矩陣鍵盤(pán),其應(yīng)用電路如圖3-17所示。圖3-17 矩陣鍵盤(pán)電路原理圖4 軟件設(shè)計(jì)本章節(jié)主要介紹系統(tǒng)的軟件設(shè)計(jì)。軟件設(shè)計(jì)主要是為了測(cè)試系統(tǒng)硬件是否能正常工作以及是否能實(shí)現(xiàn)相關(guān)功能。本章介紹的軟件設(shè)計(jì)包括主程序的程序設(shè)計(jì),
33、以及對(duì)各模塊應(yīng)用的軟件設(shè)計(jì)。4.1 程序框圖4.1.1 主程序圖4-1 主程序框圖主程序的開(kāi)始主要是各模塊的初始化,包括了IO口初始化,串口初始化,顯示初始化以及射頻模塊初始化。在主程序進(jìn)入循環(huán)前先執(zhí)行從EEPROM中讀出標(biāo)志參數(shù)操作,這一操作有利于保證系統(tǒng)在運(yùn)行出現(xiàn)故障時(shí)不會(huì)導(dǎo)致學(xué)生實(shí)驗(yàn)信息丟失,具體以下有講。主程序的循環(huán)里主要有三個(gè)子函數(shù):輸入函數(shù)、學(xué)生刷卡函數(shù)以及老師刷卡函數(shù)。這是按照實(shí)際實(shí)驗(yàn)室實(shí)驗(yàn)考核流程都是學(xué)生先做實(shí)驗(yàn)然后老師檢查評(píng)定這樣一個(gè)流程確定的。由于MFRC522射頻模塊反映靈敏讀卡距離較遠(yuǎn),為了防止學(xué)生在進(jìn)入教室后在走動(dòng)的過(guò)程中誤讀卡,在程序里設(shè)定了只有在輸入四位實(shí)驗(yàn)代碼后
34、才能進(jìn)行刷卡,而在刷卡后為了防止誤刷因此關(guān)閉刷卡功能一直到學(xué)生做完實(shí)驗(yàn)后才再次開(kāi)啟刷卡功能。在程序執(zhí)行的過(guò)程中,每個(gè)子程序的開(kāi)始都會(huì)先判斷標(biāo)志位。在子程序的最后,也會(huì)刷新標(biāo)志位并存入EEPROM中,以保證程序在運(yùn)行中即便出現(xiàn)故障,在復(fù)位或解除故障后能夠重新回到之前程序執(zhí)行的位置,這樣有利于保證學(xué)生實(shí)驗(yàn)信息不回丟失、不完整,同時(shí)也是符合我們?nèi)粘5牟僮鬟壿嫛3绦蛑械臉?biāo)志參數(shù)V,flag1,m分別是用于EEPROM的地址指針,時(shí)鐘可調(diào)標(biāo)志位(在學(xué)生刷卡后時(shí)鐘不可調(diào),直到老師評(píng)定刷卡后時(shí)鐘可調(diào)標(biāo)志位才會(huì)恢復(fù)初值),以及代碼輸入結(jié)束標(biāo)志位(用于學(xué)生實(shí)驗(yàn)中系統(tǒng)出現(xiàn)故障復(fù)位后或解除故障后能回到故障前的程序位
35、置)。4.1.2 輸入函數(shù)inputnum()inputnum()輸入函數(shù)的主要功能是實(shí)驗(yàn)代碼輸入,評(píng)定成績(jī)輸入。系統(tǒng)開(kāi)機(jī)后如果不輸入實(shí)驗(yàn)代碼以及刷卡那么程序則一直在輸入函數(shù)中循環(huán),所以在輸入函數(shù)的循環(huán)結(jié)構(gòu)中要寫(xiě)入時(shí)間調(diào)整子程序,信息查看發(fā)送子程序,時(shí)間顯示子程序等,只有這樣才能保證系統(tǒng)的正常運(yùn)行。為了人機(jī)交換更具人性化,在輸入界面的時(shí)候要把LCD12864的閃爍光標(biāo)打開(kāi),那么就要確定到底光標(biāo)在哪個(gè)位置打開(kāi)也就是說(shuō)輸入的起始位置。所以在輸入函數(shù)的開(kāi)頭先要判斷到底是要輸入實(shí)驗(yàn)代號(hào)還是輸入評(píng)定成績(jī)。當(dāng)然如果把輸入的起始位置都定在同一位置的話那么就不需要這樣的判斷,但是為了做到界面的對(duì)稱(chēng)美只能進(jìn)行這
36、一步判斷。在判斷后便會(huì)進(jìn)入循環(huán)。循環(huán)所實(shí)現(xiàn)的功能就是實(shí)時(shí)顯示輸入的實(shí)驗(yàn)代號(hào)或評(píng)定成績(jī),考慮到輸入實(shí)驗(yàn)代碼是4字符,輸入評(píng)定成績(jī)是2字符所以就以這兩者作為循環(huán)條件,也就是只有輸完四位實(shí)驗(yàn)代碼或兩位評(píng)定成績(jī)后才會(huì)跳出循環(huán)去執(zhí)行其他滿(mǎn)足條件的子程序,這樣也有利于防止誤刷卡操作。在輸入后如果發(fā)現(xiàn)錯(cuò)誤再繼續(xù)輸入則又會(huì)進(jìn)入循環(huán)并清除之前的輸入數(shù)據(jù),這樣也是為了避免輸入錯(cuò)誤。同時(shí)在輸入的過(guò)程中除了一些設(shè)定鍵和數(shù)字鍵,按其他鍵會(huì)提示錯(cuò)誤以提高操作舒適度。 圖4-2 輸入函數(shù)程序框圖4.1.3 時(shí)間調(diào)整函數(shù)timeset()時(shí)間調(diào)整函數(shù)timeset(),顧名思義這個(gè)子程序的作用就是用于在系統(tǒng)時(shí)鐘出現(xiàn)錯(cuò)誤時(shí)用于
37、調(diào)整時(shí)鐘的。時(shí)鐘調(diào)整的參數(shù)有7個(gè)包括年、月、日、時(shí)、分、星期共11個(gè)字符。一開(kāi)始寫(xiě)程序時(shí)想到兩種時(shí)鐘調(diào)整的方式,一種是調(diào)整時(shí)間要從頭開(kāi)始。也就是說(shuō)先調(diào)整年然后月、日這樣往后調(diào)整,在調(diào)整的過(guò)程中能隨時(shí)退出。另一種是通過(guò)移動(dòng)光標(biāo)至需要調(diào)整的參數(shù)的位置,然后該位參數(shù)進(jìn)行調(diào)整。相對(duì)來(lái)說(shuō),第二種的調(diào)整方式似乎是更加便捷,但是在程序?qū)崿F(xiàn)的簡(jiǎn)易程度來(lái)說(shuō)則比第一種要麻煩許多。這不是技術(shù)的問(wèn)題而是如果采用第二種調(diào)整方式那么會(huì)使程序存儲(chǔ)空間相對(duì)大很多。同時(shí)就現(xiàn)實(shí)來(lái)說(shuō)也沒(méi)有必要,就我了解有些手機(jī)在插卡后的時(shí)間調(diào)整也都是采用第一種方案。對(duì)于第一種方案,由于要在調(diào)整的同時(shí)把調(diào)整后的時(shí)間顯示出來(lái),而LCD12864的光標(biāo)
38、又是16位的,而數(shù)字顯示又是8位的。因此在調(diào)整的過(guò)程只能分開(kāi)調(diào)整,先調(diào)參數(shù)的十位然后再個(gè)位。再者在LCD上顯示的不僅僅是參數(shù)還有各參數(shù)間的分隔符,因此在寫(xiě)程序的時(shí)候要注意在哪些位置是可以連續(xù)調(diào)整參數(shù)的兩位再移動(dòng)光標(biāo),在哪些位置是只能調(diào)整參數(shù)的一位就要移動(dòng)光標(biāo)的。由于時(shí)間調(diào)整的參數(shù)共11個(gè)字符,也就是說(shuō)要把時(shí)鐘的每個(gè)參數(shù)都進(jìn)行調(diào)整就必須要進(jìn)行11次按鍵操作。因此我是根據(jù)按鍵的次數(shù)進(jìn)行判斷調(diào)整到哪個(gè)參數(shù),每次按鍵都計(jì)數(shù)一次,每到11次就清零,也就是說(shuō)在調(diào)整的過(guò)程中如果按錯(cuò)可以繼續(xù)重新開(kāi)始,考慮到按鍵操作也是需要花費(fèi)時(shí)間因此在每一個(gè)參數(shù)調(diào)整后都要將其寫(xiě)入DS1302的寄存器中,以保證時(shí)間準(zhǔn)確。圖4-
39、3 時(shí)間調(diào)整函數(shù)程序框圖4.1.4 信息查看發(fā)送函數(shù)message()圖4-4 信息查看發(fā)送函數(shù)程序框圖message()函數(shù)的主要功能是能夠查看已經(jīng)存儲(chǔ)在EEPROM中的學(xué)生實(shí)驗(yàn)信息,同時(shí)能夠發(fā)送LCD12864正顯示的內(nèi)容。為了防止出現(xiàn)顯示亂碼必須確定內(nèi)存中有內(nèi)容,因此函數(shù)的開(kāi)始首先進(jìn)行內(nèi)存是否為空操作。進(jìn)入此函數(shù)后,如果內(nèi)存不為空則顯示最近的一次實(shí)驗(yàn)的學(xué)生信息,因此要讀出內(nèi)存指針參數(shù)V并對(duì)它進(jìn)行適當(dāng)處理。按照內(nèi)存的大小最多能夠存儲(chǔ)12條信息,本系統(tǒng)設(shè)計(jì)內(nèi)存設(shè)定存儲(chǔ)四條信息,所以對(duì)于翻頁(yè)的操作最多只能翻看到四條信息。對(duì)于此函數(shù)的按鍵操作我在程序中也進(jìn)行了相關(guān)設(shè)計(jì),進(jìn)入子函數(shù)后除了翻頁(yè)按鍵以
40、及發(fā)送和退出按鍵外如果按下其他按鍵會(huì)有警告提示,這樣就使整個(gè)系統(tǒng)操作起來(lái)更加人性化。對(duì)于翻頁(yè)操作,主要是基于EEPROM存儲(chǔ)的地址指針參數(shù)來(lái)確定。對(duì)于翻頁(yè)操作一開(kāi)始也是有兩種想法,一種就使上翻和下翻都無(wú)限制。也就是說(shuō)上翻到第一頁(yè)后繼續(xù)上翻會(huì)去到最后一頁(yè),下翻則會(huì)去到第一頁(yè)。另一種就是上翻和下翻都有限制,上翻到第一頁(yè)后繼續(xù)上翻會(huì)有操作錯(cuò)誤警告同樣下翻也一樣,這兩種操作方式各有特點(diǎn)。對(duì)于本系統(tǒng)設(shè)計(jì)由于所存儲(chǔ)的信息量不大,最多也就12條信息,因此采用哪一種方式都差不多,但從實(shí)現(xiàn)簡(jiǎn)易方面來(lái)考慮第二種比較簡(jiǎn)單,因此本系統(tǒng)采用的就是第二種。信息的發(fā)送主要是通過(guò)USART串口,由于上位機(jī)沒(méi)有編寫(xiě)接收界面。因
41、此只能通過(guò)串口助手的界面接收查看。在信息查看的過(guò)程中,如果需要將所查看的這條信息發(fā)送到上位機(jī),那么只需按下發(fā)送按鍵,就能將LCD12864上正顯示的信息發(fā)送到上位機(jī),并能通過(guò)串口助手的界面在上位機(jī)查看。4.1.5 學(xué)生刷卡函數(shù)StudentCtrlProcess()函數(shù)實(shí)現(xiàn)的功能主要是在學(xué)生正確輸入四位實(shí)驗(yàn)代號(hào)后進(jìn)行刷卡記錄實(shí)驗(yàn)學(xué)生卡號(hào)、實(shí)驗(yàn)代號(hào)和實(shí)驗(yàn)開(kāi)始時(shí)間這三個(gè)信息。在學(xué)生刷卡函數(shù)中也有一個(gè)標(biāo)志參數(shù),就是時(shí)鐘可調(diào)標(biāo)志參數(shù)??紤]到如果實(shí)驗(yàn)過(guò)程中調(diào)整了時(shí)鐘,那么最后考核的意義就不大,因此在學(xué)生刷卡進(jìn)行實(shí)驗(yàn)后(讀到卡號(hào))就禁止調(diào)整時(shí)鐘,必須要到實(shí)驗(yàn)完成后,在老師輸入評(píng)定成績(jī)并刷卡確定后才會(huì)重新將
42、標(biāo)志位恢復(fù),此時(shí)時(shí)鐘可調(diào)。因?yàn)楸鞠到y(tǒng)對(duì)于IC卡的操作只限于讀出卡的序列號(hào),因此對(duì)于讀卡的操作只包括尋卡(讀回卡的類(lèi)型)以及防沖突(讀回卡的序列號(hào))。在讀出卡號(hào)后先讀出EEPROM地址指針V然后將學(xué)生卡號(hào)、實(shí)驗(yàn)代號(hào)和實(shí)驗(yàn)開(kāi)始時(shí)間存入相應(yīng)的位置,內(nèi)存中已有四條信息則將最早存入的一條信息覆蓋。然后就會(huì)進(jìn)入試驗(yàn)中的界面,在這是程序只執(zhí)行時(shí)間顯示以及按鍵操作(具體以下有講)。圖4-5 學(xué)生刷卡函數(shù)程序框圖4.1.6 老師刷卡函數(shù)TecherCtrlProcess()函數(shù)主要是實(shí)現(xiàn)當(dāng)學(xué)生刷卡完成實(shí)驗(yàn)后老師進(jìn)行評(píng)定的功能。當(dāng)學(xué)生刷卡后程序會(huì)跳至該子函數(shù)中,在老師沒(méi)有按下評(píng)定按鍵前LCD12864上一直顯示著
43、某卡號(hào)正在實(shí)驗(yàn)中,在這時(shí)程序會(huì)執(zhí)行時(shí)間顯示(包括讀出時(shí)間與顯示時(shí)間)的語(yǔ)句以更新時(shí)間的顯示。這樣安排的目的是為了防止在實(shí)驗(yàn)過(guò)程中出現(xiàn)誤刷卡,就算按下了評(píng)定按鍵也不會(huì)馬上開(kāi)啟刷卡功能,也不會(huì)記錄相關(guān)數(shù)據(jù)這也是為了做到雙重保護(hù)。只有在按下評(píng)定按鍵以及正確輸入兩位成績(jī)后,刷卡的功能才會(huì)開(kāi)啟,而只有在刷卡后才會(huì)將時(shí)間、成績(jī)以及評(píng)定人卡號(hào)存入至EEPROM中。這樣的設(shè)計(jì)對(duì)于防止誤操作起到很好的保護(hù)作用。圖4-6 老師刷卡函數(shù)程序框圖4.2 MFRC522射頻模塊程序設(shè)計(jì)MFRC522射頻模塊主要實(shí)現(xiàn)的功能是能讀取IC卡的序列號(hào)。讀IC卡序列號(hào)主要包括尋卡(返回卡類(lèi)型)和防沖突(返回卡號(hào))這兩個(gè)操作。而之
44、所以能夠讀取卡號(hào)就是因?yàn)樯漕l模塊能夠與卡進(jìn)行通訊。本設(shè)計(jì)所用模塊支持MIFARE和ISOIEC14443FypeA接口通信協(xié)議。ATmega16通過(guò)對(duì)其寄存器的讀寫(xiě)控制模塊與卡片通訊,從而能夠讀回卡片的類(lèi)型與序列號(hào)。為了方便調(diào)用在程序設(shè)計(jì)中特意將模塊操作函數(shù)封裝成庫(kù)文件(rc522.h),以下介紹MFRC522應(yīng)用中部分較為重要的程序設(shè)計(jì)。本設(shè)計(jì)中MFRC522射頻模塊是通過(guò)SPI(Serial Perpheral Interface)模式與主機(jī)通訊的,而ATmega16自身是帶有可作為主機(jī)或者從機(jī)模式的SPI硬件模塊。下圖是MFRC522射頻模塊的SPI時(shí)序圖,因此可以按照以下時(shí)序配置ATm
45、ega16的SPI接口。圖4-7 MFRC522SPI時(shí)序圖ATmega16SPI的寄存器有三個(gè)包括控制寄存器SPCR、狀態(tài)寄存器SPSR以及數(shù)據(jù)寄存器SPDR。在使用中主要配置的是控制寄存器SPCR??刂萍拇嫫鱏PCR的各位定義如下表:表4-1 SPCR個(gè)位說(shuō)明Bit76543210名稱(chēng)SPIESPEDORDMSTRCPOLCPHASPR1SPR0讀寫(xiě)R/WR/WR/WR/WR/WR/WR/WR/W初始值00000000SPCR寄存器各位說(shuō)明SPIE:SPI中斷使能位,如果此位置位后SPSR寄存器的SPIF位以及全局中斷使能位同時(shí)置位后就可引發(fā)中斷。SPE:SPI使能位,置位后使能SPI。所
46、以SPI操作前都要將這位置位。DORD:數(shù)據(jù)次序位,置位時(shí)先發(fā)送LSB,否則先發(fā)送MSB。MSTR:主機(jī)或從機(jī)模式選擇位,置位時(shí)為主機(jī)模式否則為從機(jī)模式。CPOL:時(shí)鐘極性位,置位時(shí)SCK引腳在空閑時(shí)為高電平,否則為低電平時(shí)空閑。CPHA:時(shí)鐘相位位,此位決定數(shù)據(jù)采樣是在SCK起始沿還是結(jié)束沿。SPR1:時(shí)鐘速率選擇位1SPR0:時(shí)鐘速率選擇位0,由這兩位確定主機(jī)SCK的速率。這兩位對(duì)從機(jī)沒(méi)有影響。同時(shí)狀態(tài)寄存器SPSR的SPI2X為可以使時(shí)鐘速率加倍。如果置位在主機(jī)模式下SCK頻率能夠達(dá)到CPU頻率的一半,若是從機(jī)模式則只能為四分之一。這三位控制組合的方式控制使SCK與振蕩器時(shí)鐘頻率(fos
47、c)的關(guān)系如下表:表4-2 時(shí)鐘頻率SPI2XSPR1SPR0SCK頻率000focs/4001focs/16010focs/64011focs/128100focs/2101focs/8110focs/32111focs/64根據(jù)MFRC522的SPI時(shí)序可以知道采樣在SCK起始沿,空閑時(shí)SCK為低電平所以CPOL和CPHA位應(yīng)為0,同時(shí)數(shù)據(jù)發(fā)送時(shí)首先發(fā)送MSB所以DORD也應(yīng)為0李玲 周小佳 唐秀輝 閆斌. AVR單片機(jī)SPI接口設(shè)計(jì)J.福建電腦,2006(5).11-12。要用到SPI功能,所以SPE為要置1,在本系統(tǒng)中ATmega16作為主機(jī)所以MSTR位也要置1。對(duì)于時(shí)鐘速率選擇就選
48、用focs/4,也就是SPR1和SPR0都為0??紤]到此寄存器個(gè)位的初值為0,所以只需設(shè)置置1的位就可以了,所以對(duì)于SPI通訊的配置如下。SPCR=(1SPE)|(1MSTR); /使能SPI,主機(jī)模式,時(shí)鐘頻率為fck/4(1MHz)當(dāng)然還要配置SPI模塊外部引腳也要配置好,作為主機(jī)SPI外部引腳配置如下:表4-3 SPI模塊外部引腳引腳主機(jī)方向SCK(PB7)用戶(hù)定義MISO(PB6)輸入MOSI(PB5)用戶(hù)定義/SS(PB4)用戶(hù)定義MFRC522與ATmega16之間通過(guò)SPI通信相互交換信息,所以配置好SPI后就是通過(guò)SPI接口從MFRC522中讀回信息或發(fā)送信息至MFRC522,
49、具體程序如下,程序框圖如圖4-8和圖4-9。讀數(shù)據(jù)uchar SPIRead(void) unsigned long i=60000; SPDR=0xff; /啟動(dòng)傳輸 while(i-) /判斷等待結(jié)束 if(SPSR&(1SPIF) break; return SPDR; 圖4-8 SPI讀數(shù)據(jù)程序框圖寫(xiě)數(shù)據(jù)void SPIWrite(uchar SPIData) unsigned long i=60000; SPDR=SPIData; /啟動(dòng)傳輸 while(i-) /判斷等待結(jié)束 if(SPSR&(1SPIF) break; 圖4-9 SPI寫(xiě)數(shù)據(jù)程序框圖ATmega16就是通過(guò)以上這
50、兩個(gè)函數(shù)對(duì)MFRC522寄存器進(jìn)行讀寫(xiě),由以上SPI時(shí)序圖可以看出,每次數(shù)據(jù)交換前都要講片選引腳電平拉低然后傳輸結(jié)束后再將引腳電平拉高。所以對(duì)于射頻模塊寄存器讀寫(xiě)操作的程序如下所示,程序框圖如圖4-10和圖4-11。寫(xiě)寄存器void WriteRawRC522(uchar Address, uchar value) uchar ucAddr;CLR_SPICS; /開(kāi)始拉低片引腳ucAddr=(Address1)&0x7E);SPIWrite(ucAddr);SPIWrite(value);SET_SPICS;/結(jié)束拉高片選引腳 圖4-10 SPI寫(xiě)寄存器程序框圖讀寄存器uchar ReadR
51、awRC522(uchar Address) uchar ucAddr; uchar ucResult=0; CLR_SPICS; /開(kāi)始拉低片選引腳 ucAddr=(Address1)&0x7E)|0x80; SPIWrite(ucAddr); ucResult=SPIRead(); SET_SPICS;/結(jié)束拉高片選引腳 return ucResult; 圖4-11 SPI讀寄存器程序框圖4.3 LCDS12864程序設(shè)計(jì)4.3.1 LCD12864指令介紹在使用LCD12864顯示模塊(以下簡(jiǎn)稱(chēng)模塊)前首先介紹模塊的用戶(hù)指令集,模塊的用戶(hù)指令集包括RE=0的基本指令集以及RE=0的擴(kuò)充指
52、令集。以下就本系統(tǒng)而言介紹一些基本指令。(1)清除顯示(用于清屏)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0狀態(tài)LLLLLLLLLH(2)位址歸位CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0狀態(tài)LLLLLLLLHX(3)顯示狀態(tài)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0狀態(tài)LLLLLLHDCB(注解:D=1,整體顯示開(kāi) C=1,顯示游標(biāo)開(kāi) B=1,顯示游標(biāo)位置開(kāi))(4)讀忙狀態(tài)CODERWRSDB7DB6DB5DB4DB3DB2DB1DB0狀態(tài)LHBFAC6AC5AC4AC3AC2AC1AC0(注解:BF=1表示模塊正處于忙狀態(tài),否則為空閑狀態(tài)可進(jìn)行讀寫(xiě)操作)以上便是其中一些基本的用戶(hù)指令,在程序設(shè)計(jì)過(guò)程中為了調(diào)用方
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 茶葉行業(yè)鑒賞技巧培訓(xùn)總結(jié)
- 冶金銷(xiāo)售工作總結(jié)
- 文化創(chuàng)意行業(yè)宣傳策略總結(jié)
- 2021年黑龍江省哈爾濱市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2022年內(nèi)蒙古自治區(qū)錫林郭勒盟公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2023年湖北省咸寧市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2021年河南省周口市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題1卷含答案
- 2024年河北省張家口市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 2024年江西省景德鎮(zhèn)市公開(kāi)招聘警務(wù)輔助人員輔警筆試自考題2卷含答案
- 財(cái)務(wù)人員辭職報(bào)告
- 《地震災(zāi)害及其防治》課件
- 2024年版電商平臺(tái)入駐商家服務(wù)與銷(xiāo)售分成合同
- 蜜雪冰城合同范例
- 小紅書(shū)種草營(yíng)銷(xiāo)師(初級(jí))認(rèn)證考試真題試題庫(kù)(含答案)
- LPG液化氣充裝站介質(zhì)分析操作規(guī)程 202412
- 養(yǎng)老院環(huán)境衛(wèi)生保潔方案
- 中學(xué)學(xué)校裝修改造工程施工組織設(shè)計(jì)方案
- 2024年WPS計(jì)算機(jī)二級(jí)考試題庫(kù)350題(含答案)
- 2024年5G網(wǎng)絡(luò)覆蓋工程分包合同
- 2025屆北京市海淀區(qū)交大附中高一物理第一學(xué)期期末復(fù)習(xí)檢測(cè)試題含解析
- 天津市武清區(qū)2024-2025學(xué)年九年級(jí)上學(xué)期11月期中物理試題(無(wú)答案)
評(píng)論
0/150
提交評(píng)論