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

正文內(nèi)容

畢業(yè)設(shè)計-基于at89s52單片機的電子密碼鎖控制系統(tǒng)設(shè)計-在線瀏覽

2024-08-01 01:41本頁面
  

【正文】 52L C D 顯示模塊復(fù)位電路 圖 系統(tǒng)結(jié)構(gòu)框圖 鹽城工學(xué)院課程設(shè)計說明書( 2021) 3 單片機及其最小系統(tǒng) 復(fù)位電路的設(shè)計 復(fù)位是單片機的初始化操作。因而,復(fù)位是一個很重要的操作方式。該復(fù)位電路采用按鍵電平復(fù)位式復(fù)位電路。也能使 RST 為一段時間的高電平,從而實現(xiàn)上電或開關(guān)復(fù)位的操作。 圖 復(fù)位電路 時鐘電路的設(shè)計 時鐘電路為單片機產(chǎn)生時序脈沖,單片機所有運算與控制過程都是在統(tǒng)一的時序脈沖的驅(qū)動下的進行的 ,如果單片機的時鐘電路停止工作(晶振停振),那么單片機也就停止運行了。如圖 。其原理圖如圖 。 在這種行列式矩陣鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認有無按鍵按下的程序段。對鍵的識別方法通常有兩種:一種是通用的組行掃描 查詢法;另一種是速度較快的線反轉(zhuǎn)法。首先辨別鍵盤中有無按鍵被按下,在單片機I/O 口向鍵盤送全掃描字,然后讀入行線狀態(tài)來判斷。如果有按鍵被按下,總會有一根行線電瓶被拉至低電平從而使行線不全為 1。方法是:依次給列線送低電平,然后檢查所有行線狀態(tài),如果全為 1,則所按下的按鍵不在此列;如果不全為 1,則所按下的 按鍵必在此列,而且是在與零電平行線相交的交點上的那個按鍵。其中退格鍵的功能是當(dāng)輸入密碼錯誤的時候,清除前面已經(jīng)輸入的數(shù)據(jù),重新輸入。 按鍵功能表 按鍵 鍵名 功能說明 09鍵 數(shù)字鍵 輸入密碼 E鍵 確認 確認密碼 F鍵 退格 退出 LCD 顯示電路 本系統(tǒng)設(shè)計的顯示電路是為了給使用者以提示而設(shè)置的。開鎖時,按下鍵盤上的開鎖按鍵后,利用鍵盤上的數(shù)字鍵 0- 9輸入密碼,每按下一個數(shù)字鍵后在顯示器上顯示一個 *,輸入多少位就顯示多少個 *。通過 LCD 顯示屏,可以清楚地判斷出密碼鎖所處的狀態(tài)。 圖 ( a) 開機狀態(tài) 圖 (b) 等待輸入狀態(tài) 圖 (c) 密碼輸入正確狀態(tài) eA l oW H l n e r p l e D a s e E t O K 鹽城工學(xué)院課程設(shè)計說明書( 2021) 7 4 程序設(shè)計 模塊介紹 本設(shè)計將密碼鎖軟件分為以下幾個模塊 (程序見附錄程序清單 ): ( 1)主程序模塊 主程序主要完成系統(tǒng)及外圍電路的初始化,控制 LCD 根據(jù)按鍵操作進行各個狀態(tài)的轉(zhuǎn)化,實現(xiàn)密碼鎖的人機交互界面。 ( 3) LCD1602 驅(qū)動 包括液晶屏的初始化程序和字符顯示,字符串顯示等基本函數(shù),供主程序調(diào)用 ( 4) AT24C02 存取程序 包括 I2C 總線的讀寫時序模擬控制及讀寫程序 主程序流程圖如圖 所示: 開始系統(tǒng)初始化密碼輸入顯示菜單二鍵盤掃描顯示菜單一 啟動密碼輸入?(F 鍵按下)鎖定密碼比較關(guān)鎖延時1 s開鎖提示正確 密碼正確?密碼正確標志= 1 ?存新密碼提示錯誤錯誤次數(shù)加1查看密碼 修改密碼?錯誤了3 次? D 鍵按下?NYNYNYYNYNYN 鹽城工學(xué)院課程設(shè)計說明書( 2021) 8 圖 主程序流程圖 5 課程設(shè)計總結(jié) 在做本次課程設(shè)計的過程中,我感觸最深的當(dāng)屬查閱大量的設(shè)計資料了。我們是在做單片機課程設(shè) 計,但我們不是藝術(shù)家,他們可以拋開實際盡情在幻想的世界里翱翔,而我們一切都要有據(jù)可依,有理可尋,不切實際的構(gòu)想永遠只能是構(gòu)想,永遠無法升級為設(shè)計。雖然過去從未獨立應(yīng)用過它們,但在學(xué)習(xí)的過程中帶著問題去學(xué)我發(fā)現(xiàn)效率很高,這是我做這次課程設(shè)計的又一收獲。 另外,這次課程設(shè)計讓我感到了團隊合作的重 要性。還有要感謝指導(dǎo)老師在我們遇到困難時,給予我們的建議與鼓勵。發(fā)現(xiàn)、提出、分析、解決問題和實踐能力的提高都會受益于我在以后的學(xué)習(xí)、工作和生活中。 sbit lcdrs= P2^0。 sbit light= P3^0。 uchar j 。 //用來在定時器中計數(shù)的 全局變量 uchar code table[]= Hello!。 uchar code table2[]=Enter please: 。 uchar password[]={2,0,1,0,9,3} 。 //保存輸入的數(shù)據(jù) uchar conflag 。 //鎖鍵盤標志 uchar startflag。 //延時子函數(shù) void wright_(uchar )。 //寫數(shù)據(jù)函數(shù) void init()。 // 顯示 OK void delete()。 //帶返回值的鍵盤掃描程序 void enter_code(uchar t)。 //確認密碼對不對,把輸入的數(shù)據(jù)與密碼逐一對比,完全一樣剛正確, void succeed_an()。 //輸入密碼 失敗時 響應(yīng) void lockkey()。 //復(fù)位函數(shù) void display_enter()。 init()。 // 鎖鍵期間也要進行鍵盤掃描 if(temp!=No_key) //重新記時三秒 { aa=0。 //反復(fù)掃描輸入,等待隨時輸入 if(temp!=No_key) //有按鍵按下才進行下面的操作 { if(temp==10) { reset()。 //開始標志置位 } if(startflag) { enter_code(temp)。 //進行確認判斷 if(conflag) //密碼確認為正確 { succeed_an()。 //密碼錯誤,作相應(yīng)反應(yīng) } } if(temp==14) { delete()。 wright_(0x80)。num13。 } } /****** 顯示 OK********/ void display_OK() { uchar num。 for(num=0。num++) { wright_data(table1[num])。 //確定刪除對象 wright_data(39。)。 //刪除后數(shù)據(jù)清零 wright_(0x80+0x40+j)。 display_enter()。 //擦除屏幕上的顯示 for(num=0。num++) { save[num]=0。 39。 //顯示的是空格 } wright_(0x80+0x40)。 //各種變量要清零回起始狀態(tài) conflag=0。 } /****** 輸入密碼正確進行響應(yīng) ********/ void succeed_an() { light=0。 //顯示成功 delay(1000)。 //燈滅 } /****** 輸入密碼錯誤進行響應(yīng) ********/ void fail_an() { lockkey()。 } /******輸入密碼并在屏幕上顯示星號 ******/ void enter_code(uchar t) { if(t=0amp。t10) { if(j==0) { wright_(0x80+0x40) 。*39。 } else { wright_data(39。) 。 //保存輸入的數(shù)據(jù) } } /******校對密碼以確定是不是正確的 **********/ void confirm() { uchar k。k6。 鹽城工學(xué)院課程設(shè)計說明書( 2021) 21 } } if(k==6) //要是條件退出的話說明六個數(shù)全對密碼 { conflag=1。 TL0=(6553650000)%256。 light1=0。 //清零可以方便下次再使用 light1=1。 //標志清零解除鍵鎖,方便下次使用 } } } /******初始化 ***********/ void init() { uchar num。 TH0=(6553650000)/256。 ET0=1。 //開啟總中斷 TR0=1。 //這個必須要置 零,否則無法正常顯示 lcden=0。 //初始化 wright_(0x0c) 。 //清顯示 wright_(0x80) 。num9。 delay(1)。 lcddata=。 lcden=1。 lcden=0。 lcddata=date。 lcden=1。 lcden=0。 for(x=z。x) for(y=110。y) 。 //num 的初值要為無鍵盤按下時的返回值 /*********掃描第一行 ****************/ KEY=0xfe。 temp=tempamp。 //讀出高四位 while(temp!=0xf0) { delay(5)。 temp=tempamp。 while(temp!=0xf0) /
點擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1