




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
基于STM單片機的智能家居系統(tǒng)設計(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)
基于STM單片機的智能家居系統(tǒng)設計(完整資料)(可以直接使用,可編輯優(yōu)秀版資料,歡迎下載)單片機課程設計報告基于STM32單片機的智能家居系統(tǒng)設計姓名:sssssssssbbbbbbbb班級:333334444學號:xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx指導老師:yyyyyyyyy日期:2012.05。27~2012.06。07華南農業(yè)大學工程學院摘要目前市場上針對普通家庭的智能防盜、防火等產(chǎn)品很多,但基于遠程報警系統(tǒng)的智能家居產(chǎn)品價格不菲.本次設計的基于STM32的智能家居報警系統(tǒng)實用性非常強,設計成本低廉,非常適合普通家庭使用,而且隨時可以升級.本產(chǎn)品采用的是以意法半導體公司生產(chǎn)的單片機STM32F103RBT6作為主控芯片,AT24C02作為靜態(tài)存儲芯片,4*4薄膜鍵盤和紅外熱式感應作為探測器,GSM和揚聲器的家庭報警模塊。隨著信息技術的發(fā)展,實現(xiàn)家居的信息化、網(wǎng)絡化,是當前智能家居系統(tǒng)發(fā)展的新趨勢。本設計將通信技術與防盜系統(tǒng)緊密結合,為一款便敏小巧,低成本,適合普通室內報警的智能報警系統(tǒng)。本系統(tǒng)通過傳感器獲取室內人員信息,并將信號發(fā)送到單片機微處理器。系統(tǒng)收到報警信息后通過辨認密碼的方式確定目標身份,并通過蜂鳴器報警的方式警示入侵者。另外,系統(tǒng)配備具手機通信功能的GSM模塊,能將室內安全狀況第一時間發(fā)送至用戶手機終端。不僅大大提高系統(tǒng)安全性及智能性,也方便用戶的使用。
經(jīng)測試,本系統(tǒng)穩(wěn)定可靠,同時具有友好的人機界面,為用戶提供安全服務的同時,實現(xiàn)系統(tǒng)智能化管理。?關鍵字:智能報警存儲器傳感器GSM目錄1方案比較與選擇·················································11.1方案一:采用數(shù)字電路控制································11.2方案二:采用雙音多頻電路與語音電路相結合的控制方案······11。3方案三:采用以STM32單片機為核心的控制方案··············22主要元器件介紹·················································32。1主芯片-STM32···········································32。2顯示屏-—OLCD12864·······································42.3外部存儲芯片--AT24C02···································53模塊分析·······················································73.1STM32控制模塊···········································73.2密碼鎖鍵盤輸入及存儲模塊································73.3人體熱釋感應模塊········································73.4顯示模塊················································73.5報警模塊················································74硬件組成部分··················································8 4.1硬件組成部分···········································8?4。2仿真分析··············································115電路板的制作,焊接,調試·····································135.1電路板制作·············································135。2電路板焊接·············································145.3電路板調試·············································146討論及進一步研究和建議·······································157課程設計心得·················································16附錄···························································17參考文獻·······················································341、方案的比較與選擇1.1方案一:由數(shù)字電路搭建的智能家居安全系統(tǒng),用以雙JK觸發(fā)器構成的數(shù)字邏輯電路作為密碼控制系統(tǒng)的核心控制,共設了9個數(shù)字輸入鍵,還有確認鍵和取消鍵等。如果用戶輸入密碼錯誤,則電路將報警;若電路連續(xù)報警三次,即密碼輸入錯誤3次,電路將鎖定鍵盤并長時間報警。這樣可以防止他人潛入進入家居住宅.方案系統(tǒng)框圖如圖1所示。圖11。2方案二:通過微處理器控制技術將雙音多頻電路與語音電路相結合,利用電話網(wǎng)絡技術和相關的傳感器,開發(fā)一種具有聯(lián)網(wǎng)功能的智能報警系統(tǒng)。該報警系統(tǒng)由傳感器終端、計算機控制中心、小區(qū)管理中心的接警主機及相關軟件組成。如圖2所示,主機電路由射頻接收模塊接收傳感器發(fā)來的報警信號,通過解碼電路解碼后得到報警傳感器預先設定的地址碼和數(shù)據(jù)碼類型。主機和傳感器兩者設定的地址碼相同時才能被主機接收。解碼輸出信號進入主控制器的中斷輸入端,觸發(fā)中斷處理程序。圖21.3方案三:本方案以STM32單片機作為控制核心,通過密碼鎖進行驗證,使用LCD模塊進行顯示,當密碼輸入錯誤次數(shù)大于三次時,將被視為非法入侵,語音報警模塊發(fā)出報警。若通過其他途徑非法侵入時,該系統(tǒng)將通過熱釋人體感應模塊啟動報警模塊進行報警??傮w系統(tǒng)框圖如圖3所示:液晶顯示模塊人體熱釋感應模塊E2PROM液晶顯示模塊人體熱釋感應模塊E2PROMGSM模塊GSM模塊STM32控制模塊STM32控制模塊揚聲器功放語音芯片揚聲器功放語音芯片4x4密碼鎖鍵盤輸入模塊4x4密碼鎖鍵盤輸入模塊圖3方案一設計簡單且操作容易,但沒有可發(fā)展空間,而且后期修改幾乎是不可能的;方案二的系統(tǒng)功能齊全,但是設計復雜,該系統(tǒng)適用于小區(qū)式管理,實現(xiàn)小區(qū)與物業(yè)管理中心的安全狀態(tài)保障,最終實現(xiàn)小區(qū)聯(lián)網(wǎng)控制,適合在小區(qū)管理用戶大規(guī)模使用;方案三雖然功能偏少,設計相對簡單,而且實現(xiàn)相對容易,適合于家庭個人用戶使用,最重要的是該方案具有極大的擴展空間,設計靈活,可以自由嵌入各模塊,同時可以通過修改程序來改變功能。綜上三種方案,結合自身的設計水平,我們組選擇方案三作為我們的最終設計方案.2、主要元器件介紹2.1主芯片—STM32F103RBT6STM32F103RBT6/STM32F103是ST公司基于ARM最新Cortex-M3架構內核的32位處理器產(chǎn)品,內置128KB的Flash、20K的RAM、12位AD、4個16位定時器和3路USART通訊口等多種資源,時鐘頻率最高可達72MHz.參數(shù)介紹如圖4:圖42。2顯示屏--OLCD128642。2.1概述OLCD12864帶中文字庫的128X64是一種具有4位/8位并行、2線或3線串行多種接口方式,內部含有國標一級、二級簡體中文字庫的點陣圖形液晶顯示模塊;其顯示分辨率為128×64,內置8192個16*16點漢字,和128個16*8點ASCII字符集.利用該模塊靈活的接口方式和簡單、方便的操作指令,可構成全中文人機交互圖形界面.可以顯示8×4行16×16點陣的漢字.也可完成圖形顯示.低電壓低功耗是其又一顯著特點。由該模塊構成的液晶顯示方案與同類型的圖形點陣液晶顯示模塊相比,不論硬件電路結構或顯示程序都要簡潔得多,且該模塊的價格也略低于相同點陣的圖形液晶模塊。2.2。2基本特性:(1)、低電源電壓(VDD:+3.0-—+5.5V)(2)、顯示分辨率:128×64點(3)、內置漢字字庫,提供8192個16×16點陣漢字(簡繁體可選)(4)、內置128個16×8點陣字符(5)、2MHZ時鐘頻率(6)、顯示方式:STN、半透、正顯(7)、驅動方式:1/32DUTY,1/5BIAS(8)、視角方向:6點(9)、背光方式:側部高亮白色LED,功耗僅為普通LED的1/5-1/10(10)、通訊方式:串行、并口可選(11)、內置DC—DC轉換電路,無需外加負壓(12)、無需片選信號,簡化軟件設計(13)、工作溫度:0℃—+55℃,存儲溫度:-20℃—+60℃2。2。3、應用說明①欲在某一個位置顯示中文字符時,應先設定顯示字符位置,即先設定顯示地址,再寫入中文字符編碼。②顯示ASCII字符過程與顯示中文字符過程相同。不過在顯示連續(xù)字符時,只須設定一次顯示地址,由模塊自動對地址加1指向下一個字符位置,否則,顯示的字符中將會有一個空ASCII字符位置.③當字符編碼為2字節(jié)時,應先寫入高位字節(jié),再寫入低位字節(jié).④模塊在接收指令前,向處理器必須先確認模塊內部處于非忙狀態(tài),即讀取BF標志時BF需為“0”,方可接受新的指令。如果在送出一個指令前不檢查BF標志,則在前一個指令和這個指令中間必須延遲一段較長的時間,即等待前一個指令確定執(zhí)行完成。指令執(zhí)行的時間請參考指令表中的指令執(zhí)行時間說明。⑤“RE”為基本指令集與擴充指令集的選擇控制位.當變更“RE"后,以后的指令集將維持在最后的狀態(tài),除非再次變更“RE”位,否則使用相同指令集時,無需每次均重設“RE”位。2.3外部存儲芯片--AT24C02EEPROM(ElectricallyErasableProgrammableRead-OnlyMemory),電可擦可編程只讀存儲器,是一種掉電后數(shù)據(jù)不丟失的存儲芯片。EEPROM可以在電腦上或專用設備上擦除已有信息,重新編程。一般用在即插即用。它是可用戶更改的只讀存儲器(ROM),其可通過高于普通電壓的作用來擦除和重編程(重寫).不像EPROM芯片,EEPROM不需從計算機中取出即可修改。AT24CXX是美國ATMEL公司的低功耗CMOS串行EEPROM,典型的型號有AT24C01A/02/04/08/16等5種,它們的存儲容量分別是1024/2048/4096/8192/16384位;也就是128/256/512/1024/2048字節(jié);使用電壓級別有5V,2。7V,2.5V,1。8V。AT24C02是一個CMOS標準的EEPROM存儲器,是AT24CXX系列(AT24C01/02/04/08/16)成員之一,這些EEPROM存儲器的特點是功耗小、成本低、電源范圍寬,靜態(tài)電源電流約30uA~110uA,具有標準的I2C總線接口,是應用廣泛的小容量存儲器之一.圖5圖5是AT24C02的引腳圖,這個芯片是一個8腳芯片,內部存儲器有256字節(jié)。引腳功能介紹如下:A0(引腳1):器件地址的A0位,是器件地址的最低位,器件地址排列是A6A5A4A3A2A1A0R/W。A1(引腳2):器件地址的A1位。A2(引腳3):器件地址的A2位.GND(引腳4):地線。SDA(引腳5):數(shù)據(jù)總線引腳.SCL(引腳6):時鐘總線引腳。TEST(引腳7):測試引腳,Vcc(引腳8):電源線引腳。3、模塊分析本系統(tǒng)的硬件部分主要由單片機STM32F103RBT6、晶振電路、報警電路、4×4矩陣鍵盤和OLCD12864顯示電路和人體熱釋感應模塊組成;其中報警電路使用揚聲器進行聲音報警.總的來說,智能家居系統(tǒng)主要由微處理器模塊(MCU)、模塊、人體紅外檢測報警模塊、鍵盤模塊、顯示模塊構成.3.1STM32控制模塊?微處理器模塊,也就是由STM32F103RBT6單片機構成,因為本系統(tǒng)要實現(xiàn)密碼檢測、密碼設定、聲光提醒等功能,要求微處理器必須提供足夠的I/O口,而且由于系統(tǒng)體積限制,所以選用STM32F103RBT6單片機。3。24x4密碼鎖鍵盤輸入及存儲模塊本設計采用的是矩陣式按鍵鍵盤,它由行線和列線組成,也稱行列式鍵盤,按鍵位于行列的交叉點上,密碼鎖的密碼由鍵盤輸入完成,與獨立式按鍵鍵盤相比,要節(jié)省很多I/O口。本設計中使用的這個4*4鍵盤不但能完成密碼的輸入還能作特別功能鍵使用,比如修改密碼后退功能等。鍵盤的每個按鍵功能可以在程序設計中設置。存儲模塊不僅可以存儲及修改用戶的6位密碼,還可以動態(tài)地存儲修改用戶的手機號碼,手機號碼的最大容量為7個,方便用戶更換手機后不影響GSM模塊的報警功能的使用.3.3人體熱釋感應模塊 當檢測到非法入侵的人體時,啟動報警模塊報警.3。4顯示模塊?考慮到友好的人機界面,采用OLCD12864液晶顯示.顯示模塊的作用主要是顯示當前家居安全情況、提示信息和輸入的密碼,以方便用戶使用。3.5報警模塊?報警模塊主要有兩大部分組成。第一部分是由語音芯片、功放、揚聲器組成的聲音報警電路,當密碼輸入錯誤次數(shù)大于三次,或者有非法侵入等行為,系統(tǒng)會用揚聲器實現(xiàn)聲音報警;第二部分主要是由GSM模塊構成的短信通知電路,當遇到前面所述的情況時,GSM模塊會向主人手機發(fā)送短信提醒有非法入侵.4、硬件組成部分及仿真分析4.1硬件組成部分:4.1.1STM32單片機控制模塊:圖64.1。2存儲芯片AT24C02模塊電路圖:圖74.1。34x4密碼鎖鍵盤輸入模塊:圖84。1.4GSM模塊:圖94.1.5SW調試接口:圖104。1.6報警模塊:圖114。1.7電源模塊:圖124。1.8人體熱釋感應模塊:圖134.1。9顯示模塊:圖144。2仿真分析 由于電路的其它部分功能相對簡單,所以在硬件上直接可以實現(xiàn),并未對它們進行仿真,這里只對GSM模塊進行仿真調試,分析結果如下:通過RS-232將GSM模塊和主控制板連接起來。這樣要注意要將RXD-RXD,TXD—TXD連接起來,不要憑經(jīng)驗交叉連接。這里我采用串口調試助手,通過RS-232與電腦連接來調試。把串口波特率設置為9600,效驗為設置為NONE,數(shù)據(jù)位8位,停止位1位。圖15模塊有兩種發(fā)送方式:TEXT模式和PDU模式。PDU模式可以用Unicode編碼發(fā)送英文、漢字。采用PDU模式比較復雜,TEXT模式雖然只能發(fā)送英文,但其無需編碼,發(fā)送簡單,所以我在測試時采用TEXT模式。TEXT發(fā)送模式:(相對簡單很多。)發(fā)送:AT<回車〉返回:AT〈回車〉OK發(fā)送:AT+CMGF=1<回車>返回:AT+CMGF=1〈回車>OKOK>發(fā)送:XXXXXX(0-9,A—Z)[XXXXX是指阿拉伯數(shù)字0—9,英文26個字母A—Z]返回:XXXXXX(0-9,A-Z)[XXXXX是指阿拉伯數(shù)字0-9,英文26個字母A-Z]發(fā)送:1A(十六進制發(fā)送)〈回車>返回:+CMGS:XXXOK以上為TEXT方式發(fā)送截圖:如果不能正常發(fā)送,返回ERROR,則說明需要格式化??梢园l(fā)送AT&F命令格式化。發(fā)送:AT&F<回車>返回:AT&F<回車〉5、電路板的制作,焊接,調試5。1電路板制作在制作電路板之前,先畫好PCB電路圖。注意點有三個:①、元件的封裝。注意焊盤的大小和焊盤之間的距離。②、注意線寬大小,本設計把線寬調至0.8mm。③、布局和布線。注意盡量少飛線和單層PCB板布線。電路板制作有以下5步:(1)打印電路圖:先設置相關的參數(shù),后在油性紙面上進行PCB電路圖的打印,將圖紙打印好之后后,注意不要刮落到碳粉.(2)過塑:把打印的PCB圖緊緊貼到電路板上,并且用膠紙來黏好。之后把電路板放到過塑機上進行過塑,約20~40次。若印得不太理想,但是基本脈絡都在,則可以使用油性筆進行線路修補。(3)腐蝕:把過塑好的電路板放到鹽酸與雙氧水的混合物上面進行腐蝕。腐蝕過后,電路板要用清水清洗。(4)用洗板水把碳粉清理干凈,此時可以看到清晰的銅線線路。(5)對焊盤中間進行鉆孔,鉆孔之后就是最終完成的電路板。圖16PCB圖5.2電路板焊接電路板制作好后,便可以進行焊接了。焊接時要注意下問題:(1)檢查一下電路板銅線是否存在隔斷,若存在,則進行焊錫把隔斷的銅線線路進行相連。(2)對照原理圖以及PCB圖來進行焊接。(3)注意排阻和電容的極性,插座的方向等問題.(4)焊錫時注意某些相近的管腳是否相連導致短路.5。3電路板調試在電路板調試的過程中,我們是分模塊進行調試,同時軟件和硬件相結合,最開始的是檢查LCD模塊的實現(xiàn),在接上各元器件之后,整個電路表面運行良好,屏幕也無法顯示。我們再次檢查電路,最開始以為是焊接出現(xiàn)問題,便再進行一次電路的檢查,同時調節(jié)液晶顯示的對比度,以希望得到最好的我亮度顯示。最終經(jīng)反復檢查,發(fā)現(xiàn)時液晶接口的第三口的滑動變阻器的封裝問題導致該滑動變阻器無法正常工作,經(jīng)過討論我們將其進行跳線連接。然后進行蜂鳴器報警功能的檢查,通過改變限流電阻的大小并燒寫合適程序,我們是蜂鳴器達到預想期的效果。第三就是進行人體紅外感應模塊的調試,該電路和程序較為簡單,較為容易實現(xiàn)。第四總系統(tǒng)的調試,經(jīng)過前一輪的奮戰(zhàn),我們將所有模塊按設想結合起來,修改程序并經(jīng)過多次測試終于實現(xiàn)了預定功能。6、討論及進一步研究和建議本設計的功能主要包括,手動修改和清除密碼,手動輸入、修改和刪除手機號碼(最大容量為7個),輸入密碼錯誤3次報警,人體紅外檢測入侵及入侵報警,密碼斷電保護,GSM短信報警,手動復位。應該特別提到的是密碼斷電保護,由于修改密碼后,如果沒有斷電保護裝置的話,在下一次啟動電路的時候,上一次的密碼是不會保存的,這對密碼的安全性有很大的威脅;在此次設計中,我們是通過AT24C02芯片可實現(xiàn)密碼和手機號碼的存儲,進行掉電保護。同時GSM短信報警可以實現(xiàn)遠距離監(jiān)控。7、課程設計心得我們主要是運用單片機設計了一個報警系統(tǒng),并且用模塊化的設計方法來實現(xiàn)這個電路。在程序編寫結束后,我們還對該程序進行了調試,能按預期的效果進行模擬,基本完成課程設計的要求。通過這次單片機課程設計,我們收獲了很多:首先是對單片機的整個認識和把握,這個過程包括選題,利用c語言設計程序,選元器件,畫電路原理圖和PCB電路圖,制板,到最后利用自制的板進行下載調試和檢驗,整個過程哪怕有一個細節(jié)錯了,整個設計也就失敗.我們一開始編好程序后,出現(xiàn)一些小錯誤導致無法完成編譯。在解決程序設計問題之后,我們開始畫電路原理圖和PCB電路圖,特別是在畫PCB的時候,元器件的放置,布線出現(xiàn)很多問題。通過查閱相關資料,完成PCB之后我們又在制板的過程中遇到很多問題,如PCB線寬設置、焊盤直徑設置等等,因為這些小問題會影響制板后電路板的制作效果,甚至會影響元器件的焊接。在焊接完程序片機后用單開發(fā)板進行下載調試和檢驗,最后才完成了這個課程設計。因為一開始沒有經(jīng)驗,所以在整個過程中遇到了很多錯誤和麻煩,然而我們對一些錯誤卻不能一步到位的判斷出來,這就告訴我們設計一個實驗或者做一件事情時,首先有一個大局意識,而且能夠預見出現(xiàn)的問題和能夠快速作出對這些問題或錯誤的反應與處理。同時通過這個實驗,我們也深刻的發(fā)現(xiàn)理論與實際的區(qū)別,特別是電路的仿真與實際電路的運行有著很大的差別,往往能夠在電腦進行成功仿真的電路在實際電路上卻相差甚遠。其次是通過寫實驗報告,我們也學到了一些東西,例如我們把我們的實驗過程和成果弄出來了,如何把它們展示給其他人看,這就是規(guī)則的問題,雖然我們寫的時候有時候會很麻煩,但是這也是方便大家交流的一種好方法。最后,通過這次設計實驗,我們發(fā)現(xiàn)了編程軟件有時候并不很好的放映實踐情況,因此我們應該設計一個更好的軟件來仿真,一個好的仿真軟件可以減少對試驗箱的依賴而且更方便仿真調試與程序的修改??傊?,這次實驗不僅僅加強了我們的動手編程能力,也大大加強了我們團隊合作以及設計的能力,使我們在理論學習和編程練習方面都獲得了較大的收獲。附錄#include"stdint.h"#include"string.h”#include"stm32f10x.h"#include”CoOS。h”#include"app。h" //用戶任務函數(shù)#include"BSP。h"?? //與開發(fā)板相關的函數(shù)#include”LED.h”#include"key_4x4.h"#include"vir_key.h"#include"vir_intrude_check.h"#include"vir_warning。h"#include”vir_ext_memory。h”#include"vir_gui.h”#include”vir_gsm.h”#defineMEM_BK20_NUM10#defineMEM_BK20_SIZE200#defineNULL0#definePHONE_IADD8#definePHONE_NADD8#definePHONE_MAX7#definePHONE_NMLEN16OS_STKStartUp_Stk[STARTUP_STK_SIZE]; ?//定義棧OS_STKLED0_Stk[LED0_STK_SIZE];??//定義棧OS_STKMainApp_Stk[MainApp_STK_SIZE];??//定義棧OS_STKAlarm_Stk[Alarm_STK_SIZE];??//定義棧uint8_tFlagFirstInter=1;typedefenumapp_state{ST_PREVENT_DIS,ST_PREVENT_EN}APP_STATE;APP_STATEST_Current=ST_PREVENT_DIS;OS_MMIDMemBk20_ID;unsignedintMemBk20[MEM_BK20_SIZE/4];uint8_tAlarm_Flag=0;uint8_tAlarm_EN=0;APP_STATEStPreventDis(void);APP_STATEStPreventEn(void);APP_STATESetPassWord(void);uint8_tCheckPassWord(void);uint8_tSetIPhone(void);voidPhone_Init(void);voidTask_StartUp(void*pdata){(void)pdat(yī)a;? BSP_Init();GUI_Init();VirKey_Init();VirIntrudeCheck_Init();VirWarning_Init();VirExtMemory_Init();//GUI_P8x16Str(0,0,"JJJJ");VirGsmInit();MemBk20_ID=CoCreat(yī)eMemPartition((U8*)MemBk20,20,MEM_BK20_NUM);CoCreateTask(Task_LED0,(void*)0,LED0_PRIO,?&LED0_Stk[LED0_STK_SIZE—1],LED0_STK_SIZE);CoCreat(yī)eTask(Task_Alarm,(void*)0,Alarm_PRIO, &Alarm_Stk[Alarm_STK_SIZE-1],Alarm_STK_SIZE);CoCreateTask(Task_MainApp,(void*)0,MainApp_PRIO,?&MainApp_Stk[MainApp_STK_SIZE—1],MainApp_STK_SIZE);CoExitTask();}voidTask_LED0(void*pdata){while(1){LED_REG_ON;CoTickDelay(500);LED_REG_OFF;CoTickDelay(500);}}voidTask_Alarm(void*pdata){uint8_ti;uint8_ttab_buf[8];charphone[13]={0};uint8_tphone_time=0;while(1){if(Alarm_EN==1){if(VirIntrudeCheck()==1){CoTickDelay(20);if(VirIntrudeCheck()==1){Alarm_Flag=1;}}}if(Alarm_Flag==1){Alarm_Flag=0;VirWarningEnable();if(phone_time%10==0){VirExtMemoryRead(PHONE_IADD,tab_buf,8);for(i=1;i〈=tab_buf[0];i++){VirExtMemoryRead(tab_buf[i]+2,phone,11);GUI_P8x16Str(32,6,phone);GUI_DrawNum16x8_uint16_t(0,6,phone[11],2);VirGsmSendChinaMsg(phone,”534E519C75354FE163D091924F60FF1A7CFB7EDF68C06D4B523067094E0D660E52A8726951655BA4FF0C8BF78B6660D53002”);//);"91775B664E4B5BB6”華農電信提醒你:有不速之客?。齷GUI_P8x16Str(0,6,”");CoTimeDelay(0,0,30,0);VirWarningDisable();phone_time++;}CoTickDelay(80);}}voidTask_MainApp(void*pdata){//VirExtMemoryWrite(0,"000000",6);//Phone_Init();while(1){switch(ST_Current){caseST_PREVENT_DIS:ST_Current=StPreventDis();break;caseST_PREVENT_EN:ST_Current=StPreventEn();break;default:ST_Current=ST_PREVENT_EN;break;}CoTickDelay(50);}}APP_STATEStPreventDis(void){charkey_val;uint8_tres;if(FlagFirstInter==1){Alarm_EN=0;FlagFirstInter=0;GUI_CLS();GUI_DrawHz16x16(16,2,HzBaoDiao,6);GUI_DrawHz16x16(0,4,HzDiaoYu,8);}key_val=VirKeyValGet(2000);if(key_val!='?!﹞returnST_PREVENT_DIS;}GUI_CLS();GUI_DrawHz16x16(24,0,HzZaYang,5);GUI_DrawHz16x16(8,2,HzFanDao,3);GUI_DrawHz16x16(8,4,HzGaiMiMa,5);GUI_DrawHz16x16(8,6,HzSheZhiSJ,5);while(1){key_val=VirKeyValGet(20000);if(key_val==KEY_NULL){FlagFirstInter=1;returnST_PREVENT_DIS;}switch(key_val){case'A':FlagFirstInter=1;returnST_PREVENT_EN;//break;case'B’:GUI_CLS();GUI_DrawHz16x16(24,2,HzShuJiuMiMa,5);CoTimeDelay(0,0,1,0);res=CheckPassWord();if(res==1){SetPassWord();}FlagFirstInter=1;returnST_PREVENT_DIS;//break;case’C':res=CheckPassWord();if(res==1){SetIPhone();}FlagFirstInter=1;returnST_PREVENT_DIS;//break;case’*':FlagFirstInter=1;returnST_PREVENT_DIS;//break;default://continue;break;}}}APP_STATEStPreventEn(void){charkey_val;uint8_tres;if(FlagFirstInter==1){Alarm_EN=1;FlagFirstInter=0;GUI_CLS();GUI_DrawHz16x16(16,2,HzYouGou,10);}key_val=VirKeyValGet(2000);if(key_val!='#'){returnST_PREVENT_EN;}res=CheckPassWord();if(res==0){FlagFirstInter=1;returnST_PREVENT_EN;}elseif(res==1){FlagFirstInter=1;returnST_PREVENT_DIS;}returnST_PREVENT_EN;}uint8_tCheckPassWord(void){uint8_ti;charkey_val;char*ppw_buf1;char*ppw_buf2;char*ppw_buf3;uint8_tin_times=1;intcmp_res;while(ppw_buf1==NULL){ppw_buf1=(char*)CoGetMemoryBuffer(MemBk20_ID);CoTickDelay(50);}while(ppw_buf2==NULL){ppw_buf2=(char*)CoGetMemoryBuffer(MemBk20_ID);CoTickDelay(50);}while(ppw_buf3==NULL){ppw_buf3=(char*)CoGetMemoryBuffer(MemBk20_ID);CoTickDelay(50);}for(i=0;i〈7;i++){ppw_buf1[i]=0;ppw_buf2[i]=0;ppw_buf3[i]=0;}i=0;VirExtMemoryRead(0,ppw_buf2,6);while(1){GUI_CLS();GUI_DrawHz16x16(32,2,HzInPassWord,4);GUI_DrawHz16x16(8,6,HzQueRen,3);GUI_DrawHz16x16(72,6,HzShanChu,3);GUI_P8x16Str(40,4,ppw_buf3);key_val=VirKeyValGet(20000);if(key_val>='0'&&key_val〈='9’&&i<6){ppw_buf1[i]=key_val;ppw_buf3[i++]=’*';}elseif(key_val==’D'){if(i>0){i——;}ppw_buf1[i]=0;ppw_buf3[i]=0;}elseif(key_val==’#'){cmp_res=strncmp(ppw_buf1,ppw_buf2,6);if(cmp_res==0){CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf1);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf2);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf3);return1;}else{switch(in_times){case1:GUI_CLS();GUI_DrawHz16x16(16,0,HzPWRong1,21);CoTimeDelay(0,0,2,0);break;case2:GUI_CLS();GUI_DrawHz16x16(16,0,HzPWRong2,17);CoTimeDelay(0,0,2,0);break;case3:Alarm_Flag=1;GUI_CLS();GUI_DrawHz16x16(24,2,HzPWRong3,6);CoTimeDelay(0,0,10,0);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf1);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf2);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf3);return0;//break;default:break;}in_times++;for(i=0;i〈7;i++){ppw_buf1[i]=0;ppw_buf3[i]=0;}i=0;}}elseif((key_val==KEY_NULL)||(key_val=='*')){CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf1);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf2);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf3);return0;}else{continue;}}}uint8_tSetPassWord(void){uint8_ti;charkey_val;char*ppw_buf1;char*ppw_buf2;char*ppw_buf3;uint8_tin_times=1;intcmp_res;while(ppw_buf1==NULL){ppw_buf1=(char*)CoGetMemoryBuffer(MemBk20_ID);CoTickDelay(50);}while(ppw_buf2==NULL){ppw_buf2=(char*)CoGetMemoryBuffer(MemBk20_ID);CoTickDelay(50);}while(ppw_buf3==NULL){ppw_buf3=(char*)CoGetMemoryBuffer(MemBk20_ID);CoTickDelay(50);}for(i=0;i<7;i++){ppw_buf1[i]=0;ppw_buf2[i]=0;ppw_buf3[i]=0;}i=0;while(1){GUI_CLS();GUI_DrawHz16x16(24,0,HzShuXinMiMa,5);GUI_DrawHz16x16(8,6,HzQueRen,3);GUI_DrawHz16x16(72,6,HzShanChu,3);GUI_P8x16Str(40,3,ppw_buf3);key_val=VirKeyValGet(20000);if(key_val>=’0’&&key_val<='9'&&i<6){if(in_times==1){ppw_buf1[i]=key_val;}elseif(in_times==2){ppw_buf2[i]=key_val;}ppw_buf3[i++]=’*';}elseif(key_val=='D’){if(i〉0){i-—;}if(in_times==1){ppw_buf1[i]=0;}elseif(in_times==2){ppw_buf2[i]=0;}ppw_buf3[i]=0;}elseif(key_val=='#’){if(i==6){if(in_times==1){in_times=2;for(i=0;i<7;i++){ppw_buf3[i]=0;}i=0;}elseif(in_times==2){cmp_res=strncmp(ppw_buf1,ppw_buf2,6);if(cmp_res==0){VirExtMemoryWrite(0,ppw_buf2,6);GUI_CLS();GUI_DrawHz16x16(16,2,HzCrPWSucs,7);CoTimeDelay(0,0,2,0);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf1);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf2);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf3);return1;}else{in_times=1;for(i=0;i<7;i++){ppw_buf1[i]=0;ppw_buf2[i]=0;ppw_buf3[i]=0;}i=0;GUI_CLS();GUI_DrawHz16x16(32,2,HzRInPassWord,4);CoTimeDelay(0,0,2,0);}}}}elseif((key_val==KEY_NULL)||(key_val=='*')){CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf1);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf2);CoFreeMemoryBuffer(MemBk20_ID,(void*)ppw_buf3);return0;}else{continue;}}}charPBuf1[14];charPBuf2[14];charPBuf3[14];uint8_tSetIPhone(void){uint8_ti,index=1;uint8_tfocus=0;uint8_tcmp_res;charkey_val;//charp_buf1[14];//charp_buf2[14];//charp_buf3[14];charp_index[8];//char*p_buf1;//char*p_buf2;//char*p_buf3;//char*p_index;//while(p_buf1==NULL)//{//p_buf1=(char*)CoGetMemoryBuffer(MemBk20_ID);//CoTickDelay(50);//}//while(p_buf2==NULL)//{//p_buf2=(char*)CoGetMemoryBuffer(MemBk20_ID);//CoTickDelay(50);//}//while(p_buf3==NULL)//{//p_buf3=(char*)CoGetMemoryBuffer(MemBk20_ID);//CoTickDelay(50);//}//while(p_index==NULL)//{//p_index=(char*)CoGetMemoryBuffer(MemBk20_ID);//CoTickDelay(50);//}for(i=0;i<14;i++){PBuf1[i]=0;PBuf2[i]=0;PBuf3[i]=0;p_index[i]=0;}VirExtMemoryRead(PHONE_IADD,p_index,8);while(1){while(1){VirExtMemoryRead(p_index[index],PBuf1,14);VirExtMemoryRead(p_index[index+1],PBuf2,14);VirExtMemoryRead(p_index[index+2],PBuf3,14);GUI_CLS();GUI_DrawHz16x16(32,0,HzDQHM,4);GUI_P8x16Str(8,2,PBuf1);GUI_P8x16Str(8,4,PBuf2);GUI_P8x16Str(8,6,PBuf3);key_val=VirKeyValGet(20000);if(key_val>='1’&&key_val<='7'){focus=key_val-48;break;}elseif(key_val==’A’){if(index>1){index—-;continue;}}elseif(key_val==’B'){if(index〈PHONE_MAX-2){index++;continue;}}elseif((key_val==KEY_NULL)||(key_val==’*’)){//CoFreeMemoryBuffer(MemBk20_ID,(void*)p_buf1);//CoFreeMemoryBuffer(MemBk20_ID,(void*)p_buf2);//CoFreeMemoryBuffer(MemBk20_ID,(void*)p_buf3);//CoFreeMemoryBuffer(MemBk20_ID,(void*)p_index);return1;}else{//continue;}}for(i=2;i<14;i++){PBuf1[i]=0;}i=0;while(1){GUI_CLS();GUI_DrawHz16x16(32,2,HzSRHM,4);GUI_DrawHz16x16(8,6,HzQueRen,3);GUI_DrawHz16x16(72,6,HzShanChu,3);GUI_P8x16Str(20,4,&PBuf1[2]);key_val=VirKeyValGet(20000);if(key_val>='0’&&key_val〈='9'&&i<11){PBuf1[i+2]=key_val;i++;}elseif(key_val=='D'){if(i>0){i-—;}PBuf1[i+2]=0;}elseif(key_val=='?!?{if(i==11){cmp_res=strncmp(&PBuf1[2],"00000000000",11);if(cmp_res==0){if(focus〈p_index[0]){for(i=focus;i〈p_index[0];i++){VirExtMemoryRead(p_index[i+1]+2,&PBuf1[2],11);VirExtMemoryWrite(p_index[i]+2,&PBuf1[2],11);}for(i=2;i〈14;i++){PBuf1[i]=0;}focus=p_index[0];PBuf1[0]=focus+48;VirExtMemoryWrite(p_index[focus],PBuf1,14);p_index[0]--;}elseif(focus==p_index[0]){for(i=2;i〈14;i++){PBuf1[i]=0;}PBuf1[0]=focus+48;VirExtMemoryWrite(p_index[focus],PBuf1,14);p_index[0]-—;}}else{if(focus>p_index[0]){p_index[0]++;focus=p_index[0];}PBuf1[0]=focus+48;VirExtMemoryWrite(p_index[focus],PBuf1,14);}VirExtMemoryWrite(PHONE_IADD,p_index,8);GUI_CLS();GUI_DrawHz16x16(32,2,HzSetSucss,4);CoTimeDelay(0,0,2,0);break;}}elseif((key_val==KEY_NULL)||(key_val=='*’)){break;}else{//continue;}}}}voidPhone_Init(void){uint8_ti;uint8_tadd_tab[8]={0,16,32,48,64,80,96,112};chardata_tab[2]={0,'’};for(i=PHONE_IADD;i<120;i++){VirExtMemoryWrite(i,data_tab,14);}VirExtMemoryWrite(PHONE_IADD,add_tab,8);for(i=1;i〈8;i++){dat(yī)a_tab[0]
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 乳品安全監(jiān)管體系構建考核試卷
- 教育文具在遠程教育中的應用考核試卷
- 樂器批發(fā)商的品牌市場渠道開發(fā)考核試卷
- 家用換氣扇產(chǎn)業(yè)鏈協(xié)同創(chuàng)新發(fā)展模式與實踐考核試卷
- 城市軌道交通的非折返運行與列車調度考核試卷
- 辦公自動化軟件綜合應用考核試卷
- 絲印染在體育用品上的獨特應用考核試卷
- 智能設備多模態(tài)交互設計考核試卷
- 工傷案例培訓課件
- 快手代運營合同范本
- 六宮格數(shù)獨解題技巧
- 公安機關通用告知書模板
- 工程款支付審批流程圖
- 人教版七年級歷史下冊第一單元填空題
- 封頭重量和容積計算
- 《小學數(shù)學課程與教學》教學大綱
- 《手機攝影》全套課件(完整版)
- 彩色學生電子小報手抄報模板春節(jié)41
- 筒形件拉深成形工藝分析及模具設計
- JGJ_T231-2021建筑施工承插型盤扣式鋼管腳手架安全技術標準(高清-最新版)
- 學校已具備的教學改革基礎和環(huán)境
評論
0/150
提交評論