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

正文內(nèi)容

紅外遙控電磁密碼鎖設(shè)計方案(編輯修改稿)

2025-06-02 01:22 本頁面
 

【文章內(nèi)容簡介】 本身就具有反相器的作用,所以控制步進機的信號都經(jīng)過了反相器反相處理再接入ULN2003A。4 系統(tǒng)軟件設(shè)計 主程序設(shè)計本系統(tǒng)的軟件程序主要包括主程序、接收解碼程序、密碼判斷和報警程序、密碼修改程序、遙控器學習識別程序幾個大的模塊程序。主程序首先是初始化程序,然后就等待紅外接收頭輸出端的低電平,低電平出現(xiàn)說明遙控有鍵按下,外部中斷設(shè)定為下降沿觸發(fā),故單片機進入中斷服務(wù)程序進行信號的接收解碼。當接收到遙控器識別按鍵時,單片機查找并判斷此遙控器ID是否已存在。當ID不存在時,系統(tǒng)進入遙控器學習模式,保存新ID及其鍵碼;當遙控器ID已存在時,系統(tǒng)進入密碼輸入界面,并且接收到八位的密碼以后就開始運行密碼核對程序,當密碼輸入正確后,就可以進行開鎖、上鎖或修改密碼的操作。當密碼輸入錯誤的時候就會進入密碼輸入提醒程序提醒用戶重新輸入密碼,密碼輸入累積到3次時系統(tǒng)會報警并鎖定。 系統(tǒng)模塊密碼設(shè)置子程序 由于設(shè)計是分模塊化進行,所以子程序是整體軟件系統(tǒng)的組成部分,子程序不但可以使程序化整為零,使其復雜簡單化,同時也方便閱讀,修改等,每個功能模塊都有它自己的子程序,在本設(shè)計中是用LCD顯示數(shù)據(jù),所以就要用到顯示子程序,設(shè)計中用的是矩陣鍵盤,所以就用到鍵盤掃描子程序,例如還有顯示初始化子程序、LCD忙檢測子程序、關(guān)閉狀態(tài)顯示子程序、開鎖狀態(tài)顯示子程序、密碼輸入及修改狀態(tài)顯示子程序、密碼輸入錯誤后的提示子程序等。如下圖為密碼修改子程序流程圖 選擇模式舊密碼輸入新密碼輸入存入緩存再次輸入密碼比較密碼重新輸入返回YN是否大于3次鎖定NY 設(shè)置密碼子程序 在硬件支持的環(huán)境下,用proteus設(shè)計好的電路,Keil編好的程序編譯成芯片可識別的S51文件,利用PC機寫進proteus程序圖芯片內(nèi)進行仿真測試,并對其出現(xiàn)的錯誤進行修改,~。 50 keil編譯程序成功 keil生成hex文件 proteus調(diào)用keil的hex文件進行仿真5 結(jié)論本設(shè)計利用STC89C52單片機芯片完成了基于紅外遙控密碼鎖的設(shè)計,實現(xiàn)了紅外遙控和鍵盤輸入控制,顯示部分實現(xiàn)了LCD1602液晶屏顯示,在報警部分設(shè)計了蜂鳴器在密碼輸入錯誤三次蜂鳴器報警的功能。它的創(chuàng)新點在于用了一塊單獨的89C52芯片進行紅外解碼,而且解碼部分軟件設(shè)計用的是C語言,而顯示鍵盤部分用的是C語言,使得他們既能夠很好的完成各自的任務(wù)也能很好的兼容在一起完成整個系統(tǒng)的任務(wù)。然而系統(tǒng)還是存在如下一些不足:沒有考慮過多外部因素對系統(tǒng)的影響,比如密碼丟失,誤操作對系統(tǒng)的影響。報警與提示功能做得不夠完善,遙控的有效距離沒有進行系統(tǒng)的論證。這些因素有待進一步完善。致謝隨著畢業(yè)論文的完稿,我的畢業(yè)設(shè)計工作也即將結(jié)束,回顧設(shè)計過程,深深地體味到學習過程中的苦樂相伴,既有遇到困難時尋求解決的艱辛,更有攻克難關(guān)后的喜悅。這里我要特別感謝我的導師——陳斯老師,陳老師一絲不茍的作風,嚴謹求實的態(tài)度,踏踏實實的精神,不僅授我以文,而且教我做人,雖歷時三載,卻給以終生受益無窮之道。感激之情是無法用言語表達的,同時感謝我班所有同學給予我的幫助和支持,難忘我們共度的求學歲月,在這短短的兩個月時間里,陳老師認真負責、有條不紊、實事求是的態(tài)度,給我留下了深刻的印象,使我受益非淺。也向所有給予我?guī)椭椭С值睦蠋熀屯瑢W表示由衷的感謝!參考文獻[1] 謝維成,楊加國. 單片機原理與應(yīng)用及C51程序設(shè)計[M]北京,清華大學出版社,2006年8月第1版[2] 張友德,趙志英,涂時亮. 單片機微型機原理、應(yīng)用與實驗[M]上海:復旦大學出版社,2006年第5版[3] 楊將新,李華軍,劉東駿. 單片機程序設(shè)計及應(yīng)用從基礎(chǔ)到實踐[M] 西安:電子工業(yè)出版社,2006年3月[4] [M]北京:電子工業(yè)出版社,2008年3279.[5] 紀宗南. 單片機外圍器件實用手冊[M]北京:北京航空航天大學出版社,1998年7882[6] 陳濤. 單片機及C51程序設(shè)計[M] 機械工業(yè)出版社,2008年1月[7] 田立,田清,代方震. 51單片機C語言程序設(shè)計快速入門[M] 人名郵電出版社,2007年1月[8] 曹龍漢. MCS51單片機原理及應(yīng)用[M]重慶:重慶出版社,2004年2835附錄:源程序代碼:includetypedef unsigned char uint8。typedef unsigned int uint16。sbit lcden=P1^0。sbit lcdrs=P1^1。sbit beep=P3^5。sbit gled=P2^7。sbit rled=P2^0。sbit lock=P2^1。sbit in1=P2^7。//sbit in2=P2^6。sbit in3=P2^5。sbit in4=P2^4。uint8 irtime,bitnum,codenum,irnum,inputnum。uint8 startflag,irreceok,irprosok。uint8 irdata[33],ircode[4],inputword[6],settempword[12],resetword[12],password[6]。//uint8 password[6]={1,1,1,1,1,1}。bit flagkey=1,flagkeyok=1。bit inputflag=1,flaginput=1。bit setflag=1,flagset1=1,flagset2=1。bit resetflag=1,flagreset1=1,flagreset2=1。uint8 code sysinit[] = {System loading }。uint8 code sysrun[] = {Motor running }。uint8 code settab1[] = {Set inipassword:}。uint8 code settab2[] = { Set again: }。uint8 code setOK[] = { SetPasswordOK! }。uint8 code setNO[] = { SetPasswordNO! }。uint8 code iuputtab[] = {Input password: }。uint8 code correct[] = { Correct! }。uint8 code locktab[] = { Lock open! }。uint8 code error[] = { Error! }。 uint8 code resettab1[]= {Set newpassword:}。uint8 code resettab2[]= { Set again: }。uint8 code resetOK[] = {ResetPasswordOK!}。uint8 code resetNO[] = {ResetPasswordNO!}。void delayms(uint16 z){ uint16 x,y。 for(x=z。x0。x) for(y=110。y0。y)。}//=======================一聲提示音 ========================void OneAlam(void){ beep=0。 delayms(500)。 beep=1。}//========================發(fā)射指示燈,表示操作成功========================void ir_led(void){ rled=0。 delayms(100)。 rled=1。 delayms(100)。}//========================解密指示燈,表示操作成功========================void op_led(){ uint16 i。 for(i=128。i0。i) { in1=1。in2=0。in3=0。in4=0。 delayms(20)。 in1=0。in2=1。in3=0。in4=0。 delayms(20)。 in1=0。in2=0。in3=1。in4=0。 delayms(20)。 in1=0。in2=0。in3=0。in4=1。 delayms(20)。 }}//========================三聲提示音,表示錯誤========================void ThreeAlam(void){ beep=0。 delayms(500)。 beep=1。 delayms(500)。 beep=0。 delayms(500)。 beep=1。 delayms(500)。 beep=0。 delayms(500)。 beep=1。}void Timer0_init(void){ TMOD=0x02。 TH0=0。 TL0=0。 EA=1。 ET0=1。 TR0=1。}void Int0_init(void){ IT0=1。 EX0=1。 EA=1。}void write_(uint8 ){ lcdrs=0。 P0=。 delayms(5)。 lcden=1。 delayms(5)。 lcden=0。}void write_data(uint8 date){ lcdrs=1。 P0=date。 delayms(5)。 lcden=1。 delayms(5)。 lcden=0。}void Lcd_init(void){ lcden=0。 write_(0x38)。 write_(0x0c)。 write_(0x06)。 write_(0x01)。}void IR_pros(void)//0x1C{ uint8 k,i,j。 uint8 value。 k=1。//不含引導碼 for(j=
點擊復制文檔內(nèi)容
公司管理相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖片鄂ICP備17016276號-1