住宅自動抄表系統(tǒng)設(shè)計_第1頁
住宅自動抄表系統(tǒng)設(shè)計_第2頁
住宅自動抄表系統(tǒng)設(shè)計_第3頁
住宅自動抄表系統(tǒng)設(shè)計_第4頁
住宅自動抄表系統(tǒng)設(shè)計_第5頁
已閱讀5頁,還剩69頁未讀 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

學(xué)術(shù)誠信承諾本人鄭重聲明:所呈交的論文是我個人在導(dǎo)師指導(dǎo)下進行的研究工作及取得研究成果。盡我所知,除了文中特別加以標(biāo)注和致謝的地方外,論文中不包含其他人已經(jīng)發(fā)表或撰寫的研究成果,也不包含為獲得大學(xué)或其他教育機構(gòu)的學(xué)位或證書所使用過的材料。與我一同工作的同志對本研究所做的任何貢獻均已在論文中做了明確的說明并表示了謝意。 簽名:___________日期:____________關(guān)于論文使用授權(quán)的說明本人完全了解大學(xué)有關(guān)保留、使用學(xué)位論文的規(guī)定,即:學(xué)校有權(quán)保留送交論文的復(fù)印件,允許論文被查閱和借閱;學(xué)??梢怨颊撐牡娜炕虿糠謨?nèi)容,可以采用影印、縮印或其他復(fù)制手段保存論文。簽名:___________導(dǎo)師簽名:___________日期:____________第[19]。同時,還需要考慮數(shù)據(jù)格式的轉(zhuǎn)換、通信速率的匹配、通信中斷的處理等問題,以優(yōu)化通信效率,流程圖如圖5-3所示。圖5-3GSM子程序流程圖按鍵執(zhí)行程序設(shè)計按鍵消抖子程序的設(shè)計,是為了避免機械按鍵抖動引起的誤輸入問題,提高系統(tǒng)的響應(yīng)可靠性。該程序主要包括兩個部分:檢測和消抖處理。在檢測階段,程序通過讀取按鍵輸入狀態(tài),判斷是否有按鍵按下。如果檢測到有按鍵按下,則進入消抖處理階段。在消抖處理階段,程序啟動一個短暫的延時,通常為幾毫秒至數(shù)十毫秒之間。在此延時期間,程序不響應(yīng)任何按鍵輸入,以消除機械抖動所帶來的影響。延時結(jié)束后,程序再次確認按鍵狀態(tài),若仍然為按下狀態(tài),則認為這是一次有效的按鍵輸入,執(zhí)行相應(yīng)的操作。否則,將按鍵狀態(tài)判定為無效輸入,直接返回。需要注意的是,消抖處理的時間間隔需要根據(jù)具體的應(yīng)用場景進行調(diào)整,以確保既能消除機械抖動的影響,又不會對用戶的實際操作造成過大的延遲和不必要的等待。同時,在設(shè)計該子程序時,還需要考慮到多鍵同時按下等情況,以保證程序的可靠性和穩(wěn)定性。該子程序會被主程序周期性調(diào)用,確保所有的按鍵輸入都能得到可靠的處理,流程圖如圖5-4所示。圖5-4按鍵子程序流程圖系統(tǒng)仿真與實物調(diào)試系統(tǒng)仿真在完成硬件電路設(shè)計和軟件程序設(shè)計后,需要對整個系統(tǒng)進行仿真與實物調(diào)試,以驗證系統(tǒng)的各個功能是否正常運行。在制作實物之前先對系統(tǒng)進行仿真,測試方案是否可行。仿真調(diào)試步驟如下:(1)檢查線路連接,各模塊能否正常工作如圖6-1所示,運行仿真后,各模塊均能正常工作,線路連接正確。圖6-1系統(tǒng)仿真圖(2)按鍵功能調(diào)試流量傳感器由滑動電阻模擬仿真,可以直接通過滑動電阻調(diào)節(jié)天然氣量,不需要設(shè)置按鍵來調(diào)節(jié),所以仿真按鍵用來改變報警值,按下K1可以看到屏幕上顯示當(dāng)前的報警值,如圖6-2所示,然后可以通過K2、K3將報警值調(diào)整到想要的數(shù)值。如圖6-3、6-4所示。(3)報警功能以及短信模擬功能調(diào)試設(shè)置的報警值是10,當(dāng)天然氣剩余量低于10,系統(tǒng)就會蜂鳴器報警,并且發(fā)送短信,如圖6-5所示。圖6-2按鍵1調(diào)試圖圖6-3按鍵2調(diào)試圖(4)用氣管理功能調(diào)試當(dāng)天然氣剩余量為0時,電磁閥關(guān)閉,停止供氣,如圖6-6所示。圖6-4按鍵3調(diào)試圖圖6-5短信提醒仿真圖圖6-6用氣管理仿真圖(5)防拆卸功能調(diào)試當(dāng)有人試圖暴力拆卸系統(tǒng)時,單片機接收到信號,然后通過蜂鳴器進行報警,指示燈亮起,提醒用戶,如圖6-7所示。圖6-7防拆卸仿真圖該仿真是由proteus軟件進行仿真的,由于仿真軟件里沒有STC12單片機,所以用基本功能相近的51單片機代替進行仿真。由于有些功能無法進行,只是對基本功能與一些可以模擬的功能進行了仿真,部分功能由于無法仿真,選擇了仿真相似的功能,所以與實物有一定區(qū)別。實物調(diào)試仿真系統(tǒng)能正常運行,部分可以通過仿真實現(xiàn)的功能正常,說明方案可行。然后制作實物并且進行實物調(diào)試,調(diào)試的主要步驟如下:(1)檢查硬件電路連接是否正確,各模塊是否能夠正常供電。系統(tǒng)實物圖片如圖6-8所示,打開開關(guān)各模塊能正常供電如圖6-9所示,可以判斷電路連接正確。(2)數(shù)據(jù)存儲功能調(diào)試如圖6-9所示,開機后通過顯示屏可以看到歷史用過的用氣記錄都在第一行顯示,即存儲功能正常(3)流量檢測功能調(diào)試由于現(xiàn)實中不能接到真正的天然氣管道檢測流量,可以通過往流量計進氣口吹氣的方法模擬氣體通過,可以看到剩余的氣量隨著從吹氣而減少,如圖6-10所示。6-8系統(tǒng)實物圖圖6-9實物供電調(diào)試圖圖6-10流量監(jiān)測調(diào)試圖(4)報警功能及短信功能調(diào)試到天然氣剩余量低于10時就會報警提醒,蜂鳴器報警無法用圖片表示,因此設(shè)計了黃色小燈,報警時黃燈亮起,如圖6-11所示,以及發(fā)送短信給指定手機,如圖6-12所示。圖6-11報警功能調(diào)試圖圖6-12短信模塊調(diào)試圖(5)用氣管理功能調(diào)試當(dāng)剩余氣量為零時,電磁閥關(guān)閉,停止供氣。進行充值后再次供氣,由于實物無法看到閥門是否關(guān)閉,此功能在上面仿真調(diào)試中體現(xiàn)。按下K2,可以看到顯示屏上出現(xiàn)一個+,此時可以給IC卡充值,如圖6-13所示。將IC卡放到感應(yīng)區(qū)即可給IC卡充值,如圖6-14所示。圖6-13IC卡充值狀態(tài)圖6-14充值卡再次按下按鍵按關(guān)閉IC卡充值,再次將IC卡放置感應(yīng)區(qū)即可給系統(tǒng)充值。由于之前給剩余的氣量用完了,是報警狀態(tài)(黃燈亮),當(dāng)給系統(tǒng)充值之后,停止報警(黃燈熄滅,綠地亮)如圖6-15、6-16所示。圖6-15系統(tǒng)充值圖6-16充值完成(6)防拆卸功能調(diào)試當(dāng)有人試圖暴力拆卸系統(tǒng)時會觸動輕觸開關(guān)。系統(tǒng)會蜂鳴器報警以及亮紅燈報警,如圖6-17所示。圖6-17防拆卸調(diào)試(7)電壓檢測功能調(diào)試由于調(diào)試使用的電源一直都是穩(wěn)定的電源,所以不會出現(xiàn)電壓低報警的情況,此功能用仿真的形式體現(xiàn),為了檢測到運行時的電壓,系統(tǒng)設(shè)計了K1,按下即會顯示此時的電壓,如圖6-18所示。圖6-18電壓檢測調(diào)試圖結(jié)論該住宅自動抄表系統(tǒng)設(shè)計主要由STC12C5A60S2單片機、電源模塊、LCD1602顯示模塊、RC522射頻模塊、流量傳感器模塊、電磁閥模塊、報警模塊、GSM模塊和按鍵模塊組成。該系統(tǒng)具有用氣管理、自動供停氣、顯示、報警、防拆卸、遠程發(fā)送短信和電池電壓檢測等功能。實現(xiàn)了對天然氣用量的自動抄讀和管理,為用戶提供了更加安全、方便的燃氣使用體驗。隨著社會經(jīng)濟的快速發(fā)展,人們對生活品質(zhì)的要求也越來越高。在居民生活中,天然氣作為一種清潔高效的能源,其使用量不斷提升。而傳統(tǒng)的手工抄表和管理方式存在諸多問題,如費時費力、數(shù)據(jù)易丟失、安全隱患大等問題。因此,開展住宅自動抄表系統(tǒng)的研究具有重要的現(xiàn)實意義和廣闊的應(yīng)用前景。值得一提的是,系統(tǒng)還具有較強的擴展性,未來可以進一步增加更多的智能化功能,如遠程控制、大數(shù)據(jù)分析等,以適應(yīng)未來智能家居的發(fā)展趨勢。由于時間和能力有限,我的畢業(yè)設(shè)計還存在一些缺陷和不足之處。在某些模塊的設(shè)計和實現(xiàn)上還不夠完善,在創(chuàng)新性和實用性方面有待加強,在用戶體驗方面還有待提升致謝此次設(shè)計的圓滿完成了,我的大學(xué)生活即將也要畫上句號,在此我要衷心感謝在我畢業(yè)設(shè)計過程中給予我?guī)椭娜恕J紫?,感謝我的指導(dǎo)老師。正是老師的悉心指導(dǎo)與精神鼓舞,給予了我極大的啟迪,讓我們對嵌入式系統(tǒng)設(shè)計有了全新認識,也樹立了鍥而不舍鉆研的決心。在設(shè)計的每一個關(guān)鍵階段,老師都毫無保留地傳授自己的專業(yè)知識和科研經(jīng)驗。當(dāng)我遇到疑惑和困難時,老師總是耐心解答、細心指點,引導(dǎo)我走出迷惑,最終將理論知識付諸實踐。正是老師嚴(yán)格的要求和精雕細琢,才讓我最終交出了一份令人滿意的答卷。其次,感謝我的家人。我的求學(xué)路上,他們一直是我堅強的后盾,給予我無盡的關(guān)愛和支持,在我遇到困難和挫折時,他們始終在我身后,給予我?guī)椭?,讓我堅定信心,勇往直前。再次,感謝我的女朋友。在我大學(xué)的最后階段,我想借此機會向你表達我最深切的感謝。你不僅是我的女朋友更是我生命中最重要的伴侶和支持者。你的理解和耐心是我能夠?qū)W⑴c畢業(yè)設(shè)計的支柱,你的陪伴讓我的生活充滿了快樂和意義。在這個特殊的時刻,我想讓你知道,你的付出并沒有被忽視,它們是我能夠走到今天的重要力量。最后,感謝一下自己,在這四年里,不斷學(xué)習(xí),拼搏,克服了許多困難,也取得了一定的成績。面對壓力和困惑時,始終保持著積極的心態(tài)。參考文獻王陽陽,閆淑娟.智能抄表系統(tǒng)的研究及應(yīng)用[J].世界有色金屬,2021(18):231-232.曾乃鴻.當(dāng)前自動抄表技術(shù)的現(xiàn)狀和展望[J].華東電力,2001(01):57-59.SanghoonJ,E.KL.ComparisonofAMIandSCADASystemsforLeakDetectionandLocalizationinWaterDistributionNetworks[J].JournalofWaterResourcesPlanningandManagement,2023,149(11):28-39張曉偉.智能電表及集抄系統(tǒng)的運行維護策略[J].現(xiàn)代商貿(mào)工業(yè),2016,37(32):196-198.譚志強,黃懿.自動抄表技術(shù)的發(fā)展[J].電測與儀表,2009,46(01):1-5.張幸.智能遠程抄表系統(tǒng)的設(shè)計[J].科學(xué)技術(shù)創(chuàng)新,2020(17):90-91.徐自遠,顧德祥,錢穎雪等.單片機技術(shù)與技能訓(xùn)練[M].北京.清華大學(xué)出版社,2014:06-15孫書鷹,陳志佳,寇超.新一代嵌入式微處理器STM32F103開發(fā)與應(yīng)用[J].微計算機應(yīng)用,2010,31(12):59-63.柴建民.LUGB渦街流量計的技術(shù)特點與應(yīng)用[J].世界有色金屬,2015(05):48-50.蘇杰仁.OLED屏顯示分析與實現(xiàn)[J].現(xiàn)代信息科技,2023,7(13):53-57.宋鳳娟,付侃,薛雅麗.STC12C5A60S2單片機高速A/D轉(zhuǎn)換方法[J].煤礦機械,2010,31(06):219-221.黃鈺.智能遠程抄表系統(tǒng)軟件的設(shè)計與實現(xiàn)[D].成都.電子科技大學(xué),2021:28-39張軍.燃氣遠程自動抄表系統(tǒng)的研究與設(shè)計[J].工業(yè)控制計算機,2019,32(02):39-40.劉兵,陳宗鋆.基于物聯(lián)網(wǎng)技術(shù)的IC卡工業(yè)燃氣表遠程抄表系統(tǒng)的設(shè)計與研發(fā)[J].儀表技術(shù),2017(1):5-9韓華剛,李迎春,易曉明,等.基于MSP430單片機的新型智能IC卡天然氣表設(shè)計[J].現(xiàn)代電子技術(shù),2012,35(09):137-140.曹鋒.無線智能抄表系統(tǒng)設(shè)計[J].信息系統(tǒng)工程,2011(11):117-118.蘇杰仁.字符型LCD1602顯示分析與實現(xiàn)[J].科技資訊,2022,20(22):9-12RanZ,XiaoLuS,MinWC,etal.Designofelectricpowerremotemeterreadingsystem[J].JournalofPhysics:ConferenceSeries,2021,1802(3):032030.王藍儀,徐磊,汪向華,等.基于GSM的天然氣自動抄表系統(tǒng)設(shè)計[J].山西電子技術(shù),2020(04):33-36.楊迪,呂云彤,冀明.電能表遠程抄表系統(tǒng)通信方式設(shè)計研究[J].波譜學(xué)雜志,2023,40(04):481.附錄1外文參考文獻(原文、譯文)電力遠程抄表系統(tǒng)的設(shè)計RanZhang,XiaoLuSun,WeiMinChen,LiZhongStateGridSichuanElectricPowerCorporationMeteringCenter,ChengduSichuan、610045*Correspondingauthor:ran_zhang2020@摘要:記錄用戶用電量是電力部門每月的例行工作,往往需要耗費大量的物力和人力。因此,利用新的技術(shù)手段,借助遠程和本地自動抄表技術(shù),達到自動抄表監(jiān)控電能表的目的,提高工作效率,真正實現(xiàn)自動化用電管理,遠程電能表抄表系統(tǒng)成為電網(wǎng)公司替代抄表問題的解決方案。該系統(tǒng)可滿足遠程電能表抄表系統(tǒng)在一定范圍內(nèi)對用戶電能表的遠程數(shù)據(jù)記錄、采集和實時監(jiān)控功能。1.導(dǎo)言目前,電表的改革正在有條不紊地進行。遠程自動抄表技術(shù)的發(fā)展對用戶用電管理水平的提高起到了積極的作用。計算機的主要特點是精度高、速度快。這些特性可用于遠程抄表。在系統(tǒng)設(shè)計中采用該方法,可以減輕抄表員的工作強度,避免不必要的勞動損失,同時有助于降低允差率和漏失。因此,可以說遠程自動抄表系統(tǒng)從根本上解決了人工抄表的所有弊端。根據(jù)省公司高、低壓用戶抄表工作要求,采用閉環(huán)運維支持方式支持高、低壓用戶。日常工作調(diào)整在閉環(huán)運維系統(tǒng)的WEB端進行,現(xiàn)場日常例行工作通過現(xiàn)場手持電腦進行調(diào)整。介紹了遠程抄表系統(tǒng)的組成、工作原理、集中器的工作原理及主要模塊的功能。2.遠程抄表系統(tǒng)組成圖1遠程抄表系統(tǒng)框圖圖1顯示了遠程抄表系統(tǒng)的組成。圖中用戶載波表的主要功能是加載載波終端。在此之后,它可以使用功率載波通信來記錄電壓、電量和已用功率。集中器在同一配電變壓器上可按設(shè)計數(shù)據(jù)分時記錄數(shù)據(jù),計算結(jié)果應(yīng)及時保存。主站的計算機也可以在集中期間使用電話網(wǎng)絡(luò)和其他通信。指令的發(fā)出還可以遠程實現(xiàn)相關(guān)設(shè)置的更改??蔀榧衅魅孀x取和管理數(shù)據(jù)。同時還可實現(xiàn)集中器下各表計的斷電控制,實現(xiàn)遠程抄表。這一發(fā)展加強了國家對電網(wǎng)的控制,顯著提高了社會經(jīng)濟效益,并在一定程度上降低了用工和成本。為今后電力現(xiàn)代化管理奠定了堅實的基礎(chǔ)。3.集中器工作原理集中器在整個遠程自動抄表系統(tǒng)中的作用相當(dāng)于人腦。計算機的核心是CPU。這也是通信抄表設(shè)備最關(guān)鍵的部分。用于完成集中器與中央服務(wù)器之間的串口連接。通訊功能,借助RS232和RS485兩個接口模塊,實現(xiàn)采集器與集中器之間的通訊功能。同時存儲采集器發(fā)送的Flash內(nèi)存,通過LCD和鍵盤對采集器進行初始化和參數(shù)化。設(shè)置。其工作原理如圖2所示圖2集中器工作原理框圖集中器可以根據(jù)已編程和設(shè)置的不同頻帶復(fù)制儀表控制計劃,并對各負荷頻段的電表主站進行雙向視頻數(shù)據(jù)實時傳輸。內(nèi)部電路可以連接到控制系統(tǒng)的無線廣播時間總線,并且可以執(zhí)行自動定時讀取儀表的控制命令,存儲抄表主站的實時數(shù)據(jù),并通過各種無線網(wǎng)絡(luò)介質(zhì)與抄表主站進行實時數(shù)據(jù)交換。集中器的功能是將位于變頻區(qū)的本地載波射頻電能表與車站的本地網(wǎng)絡(luò)設(shè)備相連。實時自動記錄車站數(shù)據(jù),采集管理終端和車站載波電能表的相關(guān)數(shù)據(jù)。可以實時存儲和儲存。保存。數(shù)據(jù)通過移動電話線或移動電話線自動傳輸或發(fā)送到國家電力局計算機數(shù)據(jù)中心。4.集中器組件數(shù)據(jù)集中器的主要部件包括RAM、CPU、指示電路、直流電源和接口。主要采用RS232接口和載波接口與外部單片機系統(tǒng)進行通信。以下是主要組成部分:(a).直流電源:電壓為5V的直流電源(b).基于LCD的觸摸顯示電路:主要采用TSC2200RHB芯片。(c).控制模塊:控制芯片型號為STM32F103ZET6(d).接臺電路:主要有RS485和RS232兩個專用接口,這兩個接口主要依靠電纜實現(xiàn)計算機與抄表機之間的通信。(e).NANDFLASH存儲器模塊:NANDFLASH存儲器可以存儲從收集器傳送來的用戶數(shù)據(jù)。(f).仿真器接口:使用ARMJTAG芯片連接計算機進行調(diào)試。工作原理,CPU和RAM的工作原理與傳統(tǒng)計算機相差不大。本文將介紹該接口的具體工作原理。RS232接口:RS232接口主要包括DB9接口和DB25兩種,本文主要采用9針D插座和外部設(shè)備進行數(shù)據(jù)傳輸。對于TXD和RSD.=-3V~-15v,“o"=+3~+15V,在CTS、RTS、DTR、DSR和DCD的控制線上:信號有效(開,開狀態(tài),正電壓)=+3V~+15V信號無效(OFF,OFF狀態(tài),負電壓)=-3v~-15vD型插座所有引腳上的電平信號為EIA電平:“1”=-3V~-15v,“0"=+3~+15V。EIA電平需要通過長達100米的導(dǎo)線傳輸后,同時,在導(dǎo)線的消耗衰減之后,仍然可以區(qū)分“1”或“0”。因此,當(dāng)數(shù)據(jù)集中器將信號傳輸?shù)紻型時,當(dāng)插座連接時,一些其他信號必須轉(zhuǎn)換為D型信號,通過D型插座傳輸?shù)狡渌盘栃枰狤IA級別轉(zhuǎn)換為其他級別。電平轉(zhuǎn)換功能是RS232的主要功能,需要保持信號的一致性才能實現(xiàn)完美的通信。RS485主要采用差分信號的負邏輯,+2V~+6V可以用“1”表示,-6V~-2V可以用“0"表示。RS485主要包括兩線制和四線制兩種接線方式。半雙工通信方式主要基于二線制,全雙工通信方式主要基于四線制。連接RS-485的通信鏈路僅通過雙膠線連接每個接口的“A”和“B”端。然而,該信號連接方法不連接到信號地。雖然在很多場合都能正常工作,但使用時存在隱患。主要有兩個原因:(a).共模干擾問題:RS-485接口采用差模傳輸信號,不需要對某一參考點進行信號檢測。系統(tǒng)只需要檢測兩條差分線路之間的信號差。然而,人們忽略了一個實際問題,即收發(fā)器具有一定范圍的共模電壓。對于RS-485,收發(fā)器的共模電壓范圍為-7~+12V。只有滿足此條件,整個網(wǎng)絡(luò)才能正常工作。當(dāng)網(wǎng)絡(luò)電纜中的共模電壓大于上述范圍,將影響通信信號的穩(wěn)定性,甚至損壞接口。(b).EMI問題:驅(qū)動器輸出信號的共模部分必須通過返回路徑傳輸。如果沒有低阻抗的返回路徑(通常是信號地),將產(chǎn)生輻射到源端,整個總線將成為巨大的天線發(fā)射器輻射電磁波5.STM32F103ZET6芯片測試上一整頁電路測試測試STM32F103ZET6芯片是否存在虛焊、元器件焊接、短路、開路等問題。完成所有檢查后,需要測試芯片I/O功能和每個引腳功能。您可以使用萬用表測試STM32F103ZET6。主要檢査點包括相鄰引腳之間是否存在短路或引腳與PCB之間是否存在虛焊。如果存在短路,芯片可能會燒毀,如果存在虛焊,可能會影響芯片的正常工作。經(jīng)逐一測試,STM32F103ZET6無短路、虛焊現(xiàn)象。上電后測量系統(tǒng)電源電壓為+-5V,STM32F103ZET6與電源連接的所有引腳均為3.3V,一切正常。5.1.復(fù)位引腳、晶體振蕩器引腳、串行通信引腳測試復(fù)位引腳:電路系統(tǒng)在電源線上上電和斷電后,NRST(引腳25)為高電平。按下復(fù)位按鈕后,NRST(引腳25)變?yōu)榈碗娖剑虼宋覀兛梢詼?zhǔn)確地確定每個復(fù)位引腳電路的正常工作。晶體振蕩器引腳:借助示波器觀察STM32F103ZET6晶體振蕩器引腳。您可以看到與晶體振蕩器頻率相同的正弦波,振幅約為1V,這證明晶體振蕩器電路可以正常工作。串口通訊引腳:用keil編寫相應(yīng)的程序,使某個引腳輸出方波信號,同時編譯下載到STM32F103ZET6。在示波器的幫助下,在引腳附近可以看到方波信號,這證明電路和串行通信引腳之間的連接是正常的。5.2.I/O端口功能測試程序設(shè)計I/O端口是STM32F103ZET6和外部組件之間數(shù)據(jù)交換的通道。I/O端口有兩種工作模式,一種是總線模式,另一種是I/O端口。由于系統(tǒng)外圍設(shè)備眾多,且大多基于位置控制,故采用I/O方式。(a).測試字節(jié)輸出模式STM32F103ZET6有七組/0口,主要是PA、PB、PC、PD、PE、PF、PG,所謂字節(jié)輸出方法就是允許STM32F103ZET6的某組I/O口輸出一個字節(jié)。測試時STM32F103ZET6只有一組I/O口可以按照相應(yīng)的程序輸出一個字節(jié)。證明字節(jié)輸出方法正常。測試后,所有字節(jié)的端口輸出被證明是正確的。(b).測試位輸出模式STM32F103ZET6每組I/O端口共8位,位輸出模式是使每組的任意位輸出為0或1測試時,只需讓STM32F103ZET6每組8位按程序輸出0或1,即可說明位輸出模式正常。測試完成后,各端口各位輸出模式正常。6.結(jié)論抄表系統(tǒng)可以說是現(xiàn)代計量技術(shù)、信息通信技術(shù)、計算機技術(shù)的完美結(jié)合。能夠考慮數(shù)據(jù)收集和處理、能耗測量等。將城市居民用能信息與綜合治理相結(jié)合,不僅可以大大提高部門工作效率,而且可以滿足當(dāng)今用戶對繳費的新需求。附錄2電路原理圖附錄3系統(tǒng)電路PCB圖附錄4元器件清單序號名稱規(guī)格/型號數(shù)量1電阻10K12電阻2K13電阻1K54電阻39045電解電容10uf16瓷片電容30p27電解電容470uf18電解電容100uf29二極管IN4007110液晶顯示屏LCD1602111發(fā)光二極管Gre112發(fā)光二極管Yel113發(fā)光二極管Red114PNP三極管8550215單片機STC12C5A60S2116三端穩(wěn)壓5VLM7805117三端穩(wěn)壓3.3VAMS1117-3.3118RFID模塊RFID-RC552119晶振11.0592120流量計LUGB121繼電器ERLAY-SPDT122蜂鳴器BELL123電源開關(guān)8*8MM124防拆卸按鍵KW11125按鍵6*6*5MM3附錄5源程序#include<STC12C5A60S2.h>//頭文件#include"main.h"#include"mfrc522.h"#include<intrins.h> #include<string.h>#include<stdio.h>/********************************************************************************************///數(shù)值類別typedefsignedcharint8;//有符號8位整型變量typedefunsignedcharuint8;//無符號8位整型變量typedefsignedintint16;//有符號16位整型變量typedefunsignedintuint16;//無符號16位整型變量typedefsignedlongint32;//有符號32位整型變量typedefunsignedlonguint32;//無符號32位整型變量/******************************************************************************///全局變量staticuint8bz=0,UART_dat[4],command;staticuint8ds1=0,ds2=0,ds3=0,mc=0;//定時中斷次數(shù)staticuint16ds0=0;unsignedcharcodedata1[16]={0xC8,0x00,0x00,0x00,0x37,0xFF,0xFF,0xFF,0xC8,0x00,0x00,0x00,0x01,0xFE,0x01,0xFE};//200//M1卡的某一塊寫為如下格式,則該塊為錢包,可接收扣款和充值命令//4字節(jié)金額(低字節(jié)在前)+4字節(jié)金額取反+4字節(jié)金額+1字節(jié)塊地址+1字節(jié)塊地址取反+1字節(jié)塊地址+1字節(jié)塊地址取反uint8data2[4]={0x00,0x00,0x00,0x01};//存值減值金額uint8codeDefaultKey[6]={0xFF,0xFF,0xFF,0xFF,0xFF,0xFF};//密碼uint8TYPE_DATA[2];//類型uint8ID_DATA[4];//ID地址uint8value_DATA[4];//卡里面的值 uint8g_ucTempbuf[20];//uint8tt=0;bitflag_pro;bitflag_sk=0;uint16ad0;uint32tot=0,mon=0,card=0;uint8a=0,b=0,c=0,d=0;//定義特殊寄存器sfrwdt_contr=0xc1; //定義看門狗地址sfrisp_data=0xc2; //定義ISP數(shù)據(jù)寄存器sfrisp_addrh=0xc3; //定義ISP地址高8位sfrisp_addrl=0xc4; //定義ISP地址低8位sfrisp_cmd=0xc5; //定義ISP命令模式寄存器sfrisp_trig=0xc6; //定義ISP命令觸發(fā)寄存器sfrisp_contr=0xc7; //定義ISP控制模式寄存器//%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%驅(qū)動程序開始%%%%%%%%%%%%%%%%%%%%%%%%%%%%///*******************************************************************************函數(shù)名稱:DelaymS()*功能:1mS延時函數(shù)*入口參數(shù):16位整型延時時間(mS)******************************************************************************/voidDelaymS(uint16ms){ uint8a,b,c; while(--ms!=0){for(c=3;c>0;c--)for(b=197;b>0;b--)for(a=2;a>0;a--); }}/******************************************************************************///@@@@@@@@@@@@@@@@@@@@@@@@@@@@@LCM1602模塊驅(qū)動開始@@@@@@@@@@@@@@@@@@@@@@@@@@@///******************************************************************************///定義LCM1602指令集#define CMD_clear 0x01 //清除屏幕#define CMD_back 0x02 //DDRAM回零位#define CMD_dec1 0x04 //讀入后AC(指針)減1,向左寫#define CMD_add1 0x06 //讀入后AC(指針)加1,向右寫#define CMD_dis_gb1 0x0f //開顯示_開光標(biāo)_開光標(biāo)閃爍#define CMD_dis_gb2 0x0e //開顯示_開光標(biāo)_關(guān)光標(biāo)閃爍#define CMD_dis_gb3 0x0c //開顯示_關(guān)光標(biāo)_關(guān)光標(biāo)閃爍#define CMD_OFF_dis 0x08 //關(guān)顯示_關(guān)光標(biāo)_關(guān)光標(biāo)閃爍#define CMD_set82 0x38 //8位總線_2行顯示#define CMD_set81 0x30 //8位總線_1行顯示(上邊行)#define CMD_set42 0x28 //4位總線_2行顯示#define CMD_set41 0x20 //4位總線_1行顯示(上邊行)#define lin_1 0x80 //4位總線_1行顯示(上邊行)#define lin_2 0xc0 //4位總線_1行顯示(上邊行)/******************************************************************************//****************************************************************************[底層協(xié)議]*函數(shù)名稱:LCM1602_TestBusy()*功能:LCM1602測忙,若LCM1602處于忙狀態(tài),本函數(shù)將繼續(xù)測忙,直到LCM1602處于非忙狀態(tài)。*入口參數(shù):無*出口參數(shù):無*******************************************************************************/voidLCM1602_TestBusy(void){LCM1602_DB0_DB7=0xff;//設(shè)備讀狀態(tài)LCM1602_RS=0;LCM1602_RW=1;LCM1602_E=1;while(LCM1602_Busy);//等待LCM不忙LCM1602_E=0;//}/****************************************************************************[底層協(xié)議]*函數(shù)名稱:LCM1602_WriteCMD()*功能:向LCM1602寫命令*入口參數(shù):LCM1602_command要寫入LCM1602的命令字節(jié)*出口參數(shù):無********************************************************************************/voidLCM1602_WriteCMD(uint8LCM1602_command){LCM1602_TestBusy();LCM1602_DB0_DB7=LCM1602_command;LCM1602_RS=0;LCM1602_RW=0;LCM1602_E=1;LCM1602_E=0;}/****************************************************************************[底層協(xié)議]*函數(shù)名稱:LCM1602_WriteData()*功能:向LCM1602寫數(shù)據(jù)*入口參數(shù):LCM1602_data要寫入LCM1602的數(shù)據(jù)字節(jié)*出口參數(shù):無********************************************************************************/voidLCM1602_WriteData(uint8LCM1602_data){LCM1602_TestBusy();LCM1602_DB0_DB7=LCM1602_data;LCM1602_RS=1;LCM1602_RW=0;LCM1602_E=1;LCM1602_E=0;}/**********************************************************************************函數(shù)名稱:LCM1602_Init()*功能:LCM1602初始化*入口參數(shù):無*出口參數(shù):無*********************************************************************************/voidLCM1602_Init(void){LCM1602_WriteCMD(CMD_set82);//顯示模式設(shè)置:顯示2行,每個字符為5*7個像素LCM1602_WriteCMD(CMD_clear);//顯示清屏LCM1602_WriteCMD(CMD_back);//數(shù)據(jù)指針指向第1行第1個字符位置LCM1602_WriteCMD(CMD_add1);//顯示光標(biāo)移動設(shè)置:文字不動,光標(biāo)右移LCM1602_WriteCMD(CMD_dis_gb3);//顯示開及光標(biāo)設(shè)置:顯示開,光標(biāo)關(guān),閃爍關(guān)}/**********************************************************************************函數(shù)名稱:print()*功能:向LCM發(fā)送一個ASIIC字符串,長度48字符之內(nèi)*入口參數(shù):ASIIC字符串*出口參數(shù):無*********************************************************************************/voidprint(uint8a,uint8*str){ LCM1602_WriteCMD(a); while(*str!='\0'){ LCM1602_WriteData(*str++);} *str=0;}/*********************************************************************************函數(shù)名稱:print2()*功能:向LCM發(fā)送一個數(shù)字串,長度48字符之內(nèi)*入口參數(shù):數(shù)字串*出口參數(shù):無********************************************************************************/voidprint2(uint8a,uint8t){//設(shè)置寫入地址和數(shù)據(jù) LCM1602_WriteCMD(a); LCM1602_WriteData(t);}//******************************************************************************///@@@@@@@@@@@@@@@@@@@@@@@@@@@LCM1602模塊驅(qū)動結(jié)束@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@////@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A/D轉(zhuǎn)換程序開始@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@///*********************************************************************************函數(shù)名稱:ad()*功能:AD轉(zhuǎn)換*入口參數(shù):通道號*出口參數(shù):AD轉(zhuǎn)換值*******************************************************************************/uint16ad(uint8j)////////////////////////////////////端口定義///////////////////////////////////////////////////////////////////////MFRC500sbitMF522_NSS=P1^1;sbitMF522_SCK=P1^2;sbitMF522_SI=P1^3;sbitMF522_SO=P1^4;sbitMF522_RST=P1^5;//顯示屏sbitrs =P2^7; sbitrw =P2^6;sbitep =P2^5;sbitkey_bj =P3^4;//開蓋檢測開關(guān)sbitkey_ys =P3^5;//模擬用水按鈕sbitkey_cz =P3^6;//模擬充值按鈕sbitkey_fw =P3^7;//復(fù)位開關(guān)sbitled_dcf =P2^2;//電磁閥指示燈——綠色sbitled_yed =P2^1;//余額低指示燈——黃色sbitled_bj =P2^0;//開蓋報警指示燈——紅色sbitout_dcf =P2^3;//電磁閥sbitout_beep =P1^6;//蜂鳴器//////////////////////////////////////////////////////////////////////函數(shù)原型/////////////////////////////////////////////////////////////////////voidInitializeSystem();voidDelaymS(unsignedinttime);voidlcd_wcmd(unsignedcharcmd);voidlcd_pos(unsignedcharpos);voidlcd_init(void);voidLCD1206a(void);voidLCD1206b(void);bitlcd_bz(void);voidpro(void);voidkey(void);voidwritek(void);voidreadk(void);voidinit_k(void);#include<intrins.h>#include"reg52.h"#include"main.h"#include"mfrc522.h"#defineMAXRLEN18///////////////////////////////////////////////////////////////////////功能:尋卡//參數(shù)說明:req_code[IN]:尋卡方式//0x52=尋感應(yīng)區(qū)內(nèi)所有符合14443A標(biāo)準(zhǔn)的卡//0x26=尋未進入休眠狀態(tài)的卡//pTagType[OUT]:卡片類型代碼//0x4400=Mifare_UltraLight//0x0400=Mifare_One(S50)//0x0200=Mifare_One(S70)//0x0800=Mifare_Pro(X)//0x4403=Mifare_DESFire//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdRequest(unsignedcharreq_code,unsignedchar*pTagType){charstatus;unsignedintunLen;unsignedcharucComMF522Buf[MAXRLEN];ClearBitMask(Status2Reg,0x08);WriteRawRC(BitFramingReg,0x07);SetBitMask(TxControlReg,0x03);ucComMF522Buf[0]=req_code;status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,1,ucComMF522Buf,&unLen);if((status==MI_OK)&&(unLen==0x10)){*pTagType=ucComMF522Buf[0];*(pTagType+1)=ucComMF522Buf[1];}else{status=MI_ERR;}returnstatus;}///////////////////////////////////////////////////////////////////////功能:防沖撞//參數(shù)說明:pSnr[OUT]:卡片序列號,4字節(jié)//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdAnticoll(unsignedchar*pSnr){charstatus;unsignedchari,snr_check=0;unsignedintunLen;unsignedcharucComMF522Buf[MAXRLEN];ClearBitMask(Status2Reg,0x08);WriteRawRC(BitFramingReg,0x00);ClearBitMask(CollReg,0x80);ucComMF522Buf[0]=PICC_ANTICOLL1;ucComMF522Buf[1]=0x20;status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,2,ucComMF522Buf,&unLen);if(status==MI_OK){ for(i=0;i<4;i++){*(pSnr+i)=ucComMF522Buf[i];snr_check^=ucComMF522Buf[i];}if(snr_check!=ucComMF522Buf[i]){status=MI_ERR;}}SetBitMask(CollReg,0x80);returnstatus;}///////////////////////////////////////////////////////////////////////功能:選定卡片//參數(shù)說明:pSnr[IN]:卡片序列號,4字節(jié)//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdSelect(unsignedchar*pSnr)//卡片類型{charstatus;unsignedchari;unsignedintunLen;unsignedcharucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=PICC_ANTICOLL1;ucComMF522Buf[1]=0x70;ucComMF522Buf[6]=0;for(i=0;i<4;i++){ ucComMF522Buf[i+2]=*(pSnr+i); ucComMF522Buf[6]^=*(pSnr+i);}CalulateCRC(ucComMF522Buf,7,&ucComMF522Buf[7]);ClearBitMask(Status2Reg,0x08);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,9,ucComMF522Buf,&unLen);if((status==MI_OK)&&(unLen==0x18)){status=MI_OK;}else{status=MI_ERR;}returnstatus;} ///////////////////////////////////////////////////////////////////////功能:驗證卡片密碼//參數(shù)說明:auth_mode[IN]:密碼驗證模式//0x60=驗證A密鑰//0x61=驗證B密鑰//addr[IN]:塊地址//pKey[IN]:密碼//pSnr[IN]:卡片序列號,4字節(jié)//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdAuthState(unsignedcharauth_mode,unsignedcharaddr,unsignedchar*pKey,unsignedchar*pSnr){charstatus;unsignedintunLen;unsignedchari,ucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=auth_mode;ucComMF522Buf[1]=addr;for(i=0;i<6;i++){ucComMF522Buf[i+2]=*(pKey+i);}for(i=0;i<6;i++){ucComMF522Buf[i+8]=*(pSnr+i);}//memcpy(&ucComMF522Buf[2],pKey,6);//memcpy(&ucComMF522Buf[8],pSnr,4);status=PcdComMF522(PCD_AUTHENT,ucComMF522Buf,12,ucComMF522Buf,&unLen);if((status!=MI_OK)||(!(ReadRawRC(Status2Reg)&0x08))){status=MI_ERR;}returnstatus;}///////////////////////////////////////////////////////////////////////功能:讀取M1卡一塊數(shù)據(jù)//參數(shù)說明:addr[IN]:塊地址//pData[OUT]:讀出的數(shù)據(jù),16字節(jié)//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdRead(unsignedcharaddr,unsignedchar*pData){charstatus;unsignedintunLen;unsignedchari,ucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=PICC_READ;ucComMF522Buf[1]=addr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if((status==MI_OK)&&(unLen==0x90))//{memcpy(pData,ucComMF522Buf,16);}{for(i=0;i<16;i++){*(pData+i)=ucComMF522Buf[i];}}else{status=MI_ERR;}returnstatus;}///////////////////////////////////////////////////////////////////////功能:寫數(shù)據(jù)到M1卡一塊//參數(shù)說明:addr[IN]:塊地址//pData[IN]:寫入的數(shù)據(jù),16字節(jié)//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdWrite(unsignedcharaddr,unsignedchar*pData){charstatus;unsignedintunLen;unsignedchari,ucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=PICC_WRITE;ucComMF522Buf[1]=addr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if((status!=MI_OK)||(unLen!=4)||((ucComMF522Buf[0]&0x0F)!=0x0A)){status=MI_ERR;}if(status==MI_OK){//memcpy(ucComMF522Buf,pData,16);for(i=0;i<16;i++){ucComMF522Buf[i]=*(pData+i);}CalulateCRC(ucComMF522Buf,16,&ucComMF522Buf[16]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,18,ucComMF522Buf,&unLen);if((status!=MI_OK)||(unLen!=4)||((ucComMF522Buf[0]&0x0F)!=0x0A)){status=MI_ERR;}}returnstatus;} ///////////////////////////////////////////////////////////////////////功能:扣款和充值//參數(shù)說明:dd_mode[IN]:命令字//0xC0=扣款//0xC1=充值//addr[IN]:錢包地址//pValue[IN]:4字節(jié)增(減)值,低位在前//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdValue(unsignedchardd_mode,unsignedcharaddr,unsignedchar*pValue){charstatus;unsignedintunLen;unsignedchari,ucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=dd_mode;ucComMF522Buf[1]=addr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if((status!=MI_OK)||(unLen!=4)||((ucComMF522Buf[0]&0x0F)!=0x0A)){status=MI_ERR;}if(status==MI_OK){//memcpy(ucComMF522Buf,pValue,4);for(i=0;i<16;i++){ucComMF522Buf[i]=*(pValue+i);}CalulateCRC(ucComMF522Buf,4,&ucComMF522Buf[4]);unLen=0;status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,6,ucComMF522Buf,&unLen);if(status!=MI_ERR){ status=MI_OK; }}if(status==MI_OK){ucComMF522Buf[0]=PICC_TRANSFER;ucComMF522Buf[1]=addr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if((status!=MI_OK)||(unLen!=4)||((ucComMF522Buf[0]&0x0F)!=0x0A)){status=MI_ERR;}}returnstatus;}///////////////////////////////////////////////////////////////////////功能:備份錢包//參數(shù)說明:sourceaddr[IN]:源地址//goaladdr[IN]:目標(biāo)地址//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdBakValue(unsignedcharsourceaddr,unsignedchargoaladdr){charstatus;unsignedintunLen;unsignedcharucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=PICC_RESTORE;ucComMF522Buf[1]=sourceaddr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if((status!=MI_OK)||(unLen!=4)||((ucComMF522Buf[0]&0x0F)!=0x0A)){status=MI_ERR;}if(status==MI_OK){ucComMF522Buf[0]=0;ucComMF522Buf[1]=0;ucComMF522Buf[2]=0;ucComMF522Buf[3]=0;CalulateCRC(ucComMF522Buf,4,&ucComMF522Buf[4]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,6,ucComMF522Buf,&unLen);if(status!=MI_ERR){status=MI_OK;}}if(status!=MI_OK){returnMI_ERR;}ucComMF522Buf[0]=PICC_TRANSFER;ucComMF522Buf[1]=goaladdr;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);if((status!=MI_OK)||(unLen!=4)||((ucComMF522Buf[0]&0x0F)!=0x0A)){status=MI_ERR;}returnstatus;} ///////////////////////////////////////////////////////////////////////功能:命令卡片進入休眠狀態(tài)//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdHalt(void){charstatus;unsignedintunLen;unsignedcharucComMF522Buf[MAXRLEN];ucComMF522Buf[0]=PICC_HALT;ucComMF522Buf[1]=0;CalulateCRC(ucComMF522Buf,2,&ucComMF522Buf[2]);status=PcdComMF522(PCD_TRANSCEIVE,ucComMF522Buf,4,ucComMF522Buf,&unLen);returnMI_OK;}///////////////////////////////////////////////////////////////////////用MF522計算CRC16函數(shù)/////////////////////////////////////////////////////////////////////voidCalulateCRC(unsignedchar*pIndata,unsignedcharlen,unsignedchar*pOutData){unsignedchari,n;ClearBitMask(DivIrqReg,0x04);WriteRawRC(CommandReg,PCD_IDLE);SetBitMask(FIFOLevelReg,0x80);for(i=0;i<len;i++){WriteRawRC(FIFODataReg,*(pIndata+i));}WriteRawRC(CommandReg,PCD_CALCCRC);i=0xFF;do{n=ReadRawRC(DivIrqReg);i--;}while((i!=0)&&!(n&0x04));pOutData[0]=ReadRawRC(CRCResultRegL);pOutData[1]=ReadRawRC(CRCResultRegM);}///////////////////////////////////////////////////////////////////////功能:復(fù)位RC522//返回:成功返回MI_OK/////////////////////////////////////////////////////////////////////charPcdReset(void){MF522_RST=1; DelaymS(1);MF522_RST=0;DelaymS(1);MF522_RST=1; DelaymS(1);WriteRawRC(CommandReg,PCD_RESETPHASE); //01,0F DelaymS(1);WriteRawRC(ModeReg,0x3D);//和Mifare卡通訊,CRC初始值0x6363 11WriteRawRC(TReloadRegL,30);//2DWriteRawRC(TReloadRegH,0); //2CWriteRawRC(TModeReg,0x8D); //2AWriteRawRC(TPrescalerReg,0x3E); //2B//WriteRawRC(TxASKReg,0x40);//調(diào)試和測試用returnMI_OK;}///////////////////////////////////////////////////////////////////////功能:讀RC632寄存器//參數(shù)說明:Address[IN]:寄存器地址//返回:讀出的值/////////////////////////////////////////////////////////////////////unsignedcharReadRawRC(unsignedcharAddress){unsignedchari,ucAddr;unsignedcharucResult=0;MF522_SCK=0;MF522_NSS=0;ucAddr=((Address<<1)&0x7E)|0x80;for(i=8;i>0;i--){MF522_SI=((ucAddr&0x80)==0x80);MF522_SCK=1;ucAddr<<=1;MF522_SCK=0;}for(i=8;i>0;i--){MF522_SCK=1;ucResult<<=1;ucResult|=(bit)MF522_SO;MF522_SCK=0;}MF522_NSS=1;MF522_SCK=1;returnucResult;}///////////////

溫馨提示

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

最新文檔

評論

0/150

提交評論