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

正文內(nèi)容

基于單片機(jī)的電子密碼鎖設(shè)計(jì)畢業(yè)設(shè)計(jì)說(shuō)明書(shū)論文(編輯修改稿)

2024-07-23 15:10 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 0 D3 數(shù)據(jù)3 VL 液晶顯示偏壓 11 D4 數(shù)據(jù)4 RS 數(shù)據(jù)/命令選擇 12 D5 數(shù)據(jù)5 R/W 讀/寫(xiě)選擇 13 D6 數(shù)據(jù)6 E 使能信號(hào) 14 D7 數(shù)據(jù)7 D0 數(shù)據(jù) 15 BLA 背光源正極8 D1 數(shù)據(jù) 16 BLK 背光源負(fù)極1602 型 LCD 主要技術(shù)參數(shù):顯示容量:162 個(gè)字符芯片工作電壓:—工作電流:模塊最佳工作電壓:字符尺寸:(寬高)常用指令見(jiàn)下表:表 LCD1602 常見(jiàn)指令 晶體振蕩器 晶體振蕩器(簡(jiǎn)稱晶振)可以產(chǎn)生一定頻率的時(shí)鐘信號(hào),這一信號(hào)經(jīng)過(guò)調(diào)頻后可成為處理器中各處的總線頻率。 現(xiàn)在使用最多當(dāng)屬石英晶體振蕩器,也稱石英晶體諧振器。石英晶體振蕩器具有精度高和穩(wěn)定度高的優(yōu)點(diǎn),它同時(shí)可以作為一種晶體諧振元件實(shí)現(xiàn) LC 諧振回路的功能:穩(wěn)定頻率和選擇頻率。石英晶體振蕩器在生活中的電子設(shè)備里隨處可見(jiàn),為它們產(chǎn)生時(shí)鐘信號(hào),應(yīng)用在在單片機(jī)中時(shí)也是如此。石英晶體具有壓電效應(yīng),石英晶體振蕩器就是利用這一特點(diǎn)制作成的,簡(jiǎn)稱為石英晶體或晶體、晶振。大多數(shù)晶振是這樣構(gòu)成的:從特定角度切下矩形或圓形的石英晶體薄片,并在其對(duì)應(yīng)面上敷銀制成電極,并在上面各焊一根引線接到管腳上,再加上封裝外殼 [11]。3 系統(tǒng)設(shè)計(jì) 整體思路本系統(tǒng)主要包括單片機(jī)、矩陣鍵盤(pán)、復(fù)位電路、晶振電路和液晶顯示器等部分。作為整個(gè)系統(tǒng)的輸入,矩陣鍵盤(pán)擔(dān)當(dāng)著與用戶交互的核心任務(wù),用戶可以再此輸入密碼或控制程序的運(yùn)行方向。功能上,首先由用戶由矩陣鍵盤(pán)輸入密碼,而后與事先存儲(chǔ)的密碼進(jìn)行比較,判斷出密碼的正確與否,然后單片機(jī)會(huì)控制特定引腳的電平以觸發(fā)開(kāi)鎖電路或者報(bào)警電路。實(shí)用產(chǎn)品只須將單片機(jī)的負(fù)載由發(fā)光二極管替換為實(shí)際鎖具的開(kāi)鎖電路即可,當(dāng)然也可以用繼電器的常開(kāi)觸點(diǎn)去控制電磁鐵吸合線圈 [12]。 具體的講,本設(shè)計(jì)可以分為硬件部分與軟件部分倆大部分。其中硬件部分又分為鍵盤(pán)輸入電路、復(fù)位電路、晶振電路、顯示電路、報(bào)警或解鎖提示電路等幾大模塊;相應(yīng)的,軟件部分由主程序、按鍵檢測(cè)子程序、LCD 顯示子程序、密碼修改子程序、報(bào)警聲音子程序等組成。圖 系統(tǒng)框圖 系統(tǒng)硬件部分設(shè)計(jì)本系統(tǒng)外圍電路包括鍵盤(pán)輸入電路、復(fù)位電路、晶振電路、顯示電路、報(bào)警或解鎖提示電路等。結(jié)合本設(shè)計(jì)的原定目標(biāo),鍵盤(pán)輸入電路選擇 43 矩陣鍵盤(pán),顯示電路選擇顯示屏 LCD1602 來(lái)完成。其原理圖如圖 所示。圖 系統(tǒng)原理圖 鍵盤(pán)輸入電路單片機(jī)系統(tǒng)中,常用的鍵盤(pán)設(shè)計(jì)方式有獨(dú)立式鍵盤(pán)和矩陣式鍵盤(pán)兩種。獨(dú)立式鍵盤(pán)是指每個(gè) I/O 輸入端口對(duì)應(yīng)一個(gè)物理按鍵的鍵盤(pán)。其優(yōu)點(diǎn)是鍵盤(pán)結(jié)構(gòu)簡(jiǎn)單,按鍵識(shí)別容易;缺點(diǎn)是占用 I/O 口較多。矩陣式鍵盤(pán)適合用在按鍵數(shù)量較多的系統(tǒng)中,它將 I/O 口分別引出線,并分為行線和列線,在每一個(gè)行線和列線相交的地方放置一個(gè)按鍵,這種方案下,一個(gè)占用 7 個(gè) I/O 端口的 43 的行列結(jié)構(gòu)可以構(gòu)成一個(gè) 12 鍵的鍵盤(pán)。顯然這種方式與獨(dú)立式鍵盤(pán)相比節(jié)省了很多 I/O 端口,但算法相對(duì)復(fù)雜 [13]。常用的矩陣式鍵盤(pán)掃描原理有反轉(zhuǎn)和行/列掃描法。本設(shè)計(jì)中采用行掃描法,具體原理將在軟件部分介紹。鍵盤(pán)功能及其引腳接法如圖 所示: 圖 鍵盤(pán)輸入原理圖 復(fù)位電路單片機(jī)復(fù)位可以讓整個(gè)系統(tǒng)(單片機(jī)芯片本身)從一個(gè)確定的初始狀態(tài)開(kāi)始工作。在單片機(jī)剛剛上電時(shí)、斷電后和執(zhí)行出錯(cuò),復(fù)位都是必須的操作。RST為高電平并保持一定時(shí)間后,單片機(jī)進(jìn)入復(fù)位狀態(tài),在此期間,P0 口呈現(xiàn)高阻態(tài),P1-P3 口均呈現(xiàn)高電平,同時(shí) PSEN 信號(hào)無(wú)效、ALE 為高電平。本設(shè)計(jì)在最基礎(chǔ)的復(fù)位電路基礎(chǔ)上,添加了一個(gè)按鍵以實(shí)現(xiàn)手動(dòng)復(fù)位功能。在剛接通電源時(shí)電容 C1 兩端電勢(shì)差很小,電阻 R1 上的電壓接近電源電壓,這會(huì)使得 RST 為高電平,接著,電容進(jìn)入充電過(guò)程,RST 端電勢(shì)步降低,當(dāng) RST端的電壓表現(xiàn)為低電平時(shí),CPU 脫離復(fù)位狀態(tài),只要電容 C3 大小適當(dāng),就能夠保證 RST 的高電平有效持續(xù)時(shí)間多于 24 個(gè)振蕩周期,此時(shí)單片機(jī)就能夠?qū)崿F(xiàn)可靠的復(fù)位。手動(dòng)復(fù)位按鍵的加入,使得死機(jī)時(shí)有了可靠的復(fù)位方法。在按下復(fù)位鍵后,電容 C3 將會(huì)經(jīng)由 R6 進(jìn)行放電,此過(guò)程結(jié)束后,RST 端的電位就會(huì)由兩個(gè)電阻的分壓情況決定 [14]。復(fù)位電路的原理如下圖所示:圖 復(fù)位電路原理圖 晶振電路將晶體振蕩器按下圖所示方式連接到 XTAL1 引腳和 XTAL2 引腳上,就構(gòu)成了晶振電路。圖示是一種電容三點(diǎn)式振蕩器,振蕩信號(hào)的頻率取決于晶振頻率和兩個(gè)電容的容量,其中,晶振頻率又是主要因素。一般而言,晶振頻率的取值范圍在 0~33MHz 之間,兩個(gè)電容的取值范圍在 5~30pF 之間。根據(jù)實(shí)際情況,本設(shè)計(jì)中采用 24MHZ 做系統(tǒng)的外部晶振。電容取值為 22pF[15]。晶振電路原理圖如圖 所示:C12pFC22pFX1CRYSTAL圖 晶振電路原理圖 顯示電路 為了使密碼鎖的顯示效果使人滿意、電路簡(jiǎn)潔,此處使用了 LCD1602 作為顯示模塊的核心,而不是普通的數(shù)碼管。接通電源后顯示器處于等待開(kāi)鎖狀態(tài),提示用戶輸入密碼,當(dāng)用戶需要開(kāi)鎖時(shí),可以使用數(shù)字鍵 0-9 輸入密碼,每次按鍵都會(huì)把處理結(jié)果反饋到屏幕上。當(dāng)密碼輸入結(jié)束后,按下確認(rèn)鍵,系統(tǒng)將會(huì)把輸入的密碼和事先保存的對(duì)比,若正確,LCD 將顯示“Unlock succeed!”,電子密碼鎖被打開(kāi);否則,LCD 顯示屏?xí)@示“Wrong Password,Unlock Failed!”,電子密碼鎖保持原狀態(tài)。在密碼修改的過(guò)程中,LCD 顯示屏?xí)@示更為多樣的信息:“Change Password? (Y/N)”、“Old Password:”、“Wrong Password,Match Failed!”、“Enter New PW:”、“The Password must be 6 bits!”、“The Password has changed!”等等,電子鎖當(dāng)前所處的狀態(tài)一目了然。其顯示部分及引腳接口如圖 所示:圖 顯示電路原理圖 報(bào)警、解鎖提示電路本設(shè)計(jì)報(bào)警部分電路由蜂鳴器實(shí)現(xiàn)。當(dāng)輸入密碼并確認(rèn)后,單片機(jī)的 引腳將輸出特定頻率的方波,則蜂鳴器被導(dǎo)通而發(fā)出聲音。當(dāng)密碼錯(cuò)誤時(shí),發(fā)出的聲音為短促的 3 聲“嘟” ,音高相同;當(dāng)密碼正確時(shí),發(fā)出的聲音為一小段樂(lè)聲。當(dāng)解鎖成功時(shí),接于 端口的綠色 LED 燈將會(huì)亮起,提示鎖已打開(kāi)。在實(shí)際應(yīng)用的電子密碼鎖產(chǎn)品中,可以把其替換為電磁繼電器的輸入,原理仍是不變。報(bào)警、解鎖提示部分電路原理圖如圖 所示(圖中 led 接 口,air 接 口) 。圖 報(bào)警、解鎖提示電路原理圖 系統(tǒng)軟件部分設(shè)計(jì)本設(shè)計(jì)的軟件部分由主程序、按鍵檢測(cè)子程序、LCD 顯示子程序、密碼修改子程序、報(bào)警聲音子程序等組成。 主程序流程圖如圖 所示為主程序流程圖,系統(tǒng)上電后將進(jìn)行初始化,然后開(kāi)始進(jìn)行鍵盤(pán)掃描,此時(shí)在鍵盤(pán)上輸入密碼,若密碼正確,則開(kāi)鎖成功,播放成功提示音,密碼錯(cuò)誤則會(huì)提示,包括屏幕畫(huà)面及聲音。圖 主程序流程圖 按鍵檢測(cè)子程序設(shè)計(jì)本設(shè)計(jì)中的的密碼輸入使用了 4*3 矩陣鍵盤(pán),鍵盤(pán)上除數(shù)字鍵 0—9 以外還有 2 個(gè)功能鍵。該矩陣鍵盤(pán)的按鍵檢測(cè)采用行掃描法,具體步驟如下:令第一行為低電平,其余行和列為高電平,即給 P1 口賦值 0xFE?!?1延時(shí) 5~20ms 再次進(jìn)行檢測(cè),實(shí)現(xiàn)按鍵消抖?!?2讀 P1 口的值,判斷當(dāng)前是否有鍵被按下。若無(wú)鍵按下,其值仍應(yīng)為○ 30xFE。若第一個(gè)按鍵按下,則第一列會(huì)被拉低,即 P1 口的讀取值應(yīng)為 0xEE,即 0xEE 為第一行第一列按鍵的鍵碼。同理可得第一行另兩個(gè)按鍵的鍵碼為0xDE、0xBE [16]。用同樣的方法,令其它行為低電平,經(jīng)上述 3 個(gè)步驟也可判斷其它按鍵是否按下。根據(jù)上述過(guò)程,該矩陣鍵盤(pán)的按鍵檢測(cè)掃描程序設(shè)計(jì)如下:uchar code rowScan[]={0xFE,0xFD,0xFB,0xF7}。 //行掃描碼uchar code key12[]={0xEE,0xDE,0xBE,0xED,0xDD,0xBD,0xEB,0xDB,0xBB,0xE7,0xD7,0xB7} // 1 2 3 4 5 6 7 8 9 * 0 uchar code keyValue[]=123456789*0。define KEY P1//=====鍵盤(pán)掃描函數(shù)==========uchar keyScan(void) //返回值:有鍵按下時(shí)獲得的鍵盤(pán)值(1234567890*) ,無(wú)鍵按下時(shí)返回字符‘$’{uchar k = 0,flag = 0。for(k = 0。k 4。 k++){KEY = rowScan[k]。 //逐行掃描delay(10)。 //按鍵掃描if(KEY != rowScan[k]){uchar i=0。for(i = 0。 i 12。 i++){if(KEY == key12[i]){ //比較鍵碼flag=1。break。}}while(KEY != rowScan[k])。 //等待按鍵釋放if(flag)return keyValue[i]。}}return 39。$39。} LCD顯示子程序設(shè)計(jì)LCD 顯示是本設(shè)計(jì)的核心模塊之一,為了能在屏幕上總能顯示恰當(dāng)?shù)男畔?,本設(shè)計(jì)中 LCD 顯示子程序的功能,應(yīng)為保障單個(gè)字符、字符串的顯示,為主程序或其他子程序留出接口,以便需要時(shí)可以很容易調(diào)用。本著上述目的,LCD 顯示子程序的結(jié)構(gòu)如下圖所示,它的目的是提供字符與字符串的顯示函數(shù)。不同層次的函數(shù)之間是被調(diào)用的關(guān)系。圖 顯示模塊結(jié)構(gòu)圖各函數(shù)原型及參數(shù)介紹如下:void LCDWriteData(uchar Data) // 寫(xiě)數(shù)據(jù)函數(shù)○ 1void LCDWriteCmd(uchar Cmd) // 寫(xiě)指令函數(shù)○ 2void LCDPosition(uchar row,uchar column) //將坐標(biāo)轉(zhuǎn)換為 LCD 的坐○ 3標(biāo)參數(shù): row 為所在行數(shù)(1 或 2) ,column 為在行中的位置(0~15)在指定位置寫(xiě)數(shù)據(jù)函數(shù)○ 4void writeChar(uchar row,uchar column, char c)參數(shù): row 指定行,column 指定列位置,c 為待寫(xiě)入的數(shù)據(jù)。寫(xiě)字符串函數(shù)○ 5void writeString(uchar row,uchar column1,uchar column2, char *s)參數(shù):row 表示行,column1 表示第一行起始地址,column2 表示下一行起始地址,均從 1 開(kāi)始。 void moveString(char *s) //移動(dòng)字符串函數(shù)○ 6 void LCDInit(void) //液晶初始化函數(shù)○ 7{ LCDWriteCmd(0x38)。 //設(shè)置 16*2 顯示,5*7 點(diǎn)陣,8 位數(shù)據(jù)接口 delay(30)。 LCDWriteCmd(0x01)。//清屏 delay(30)。 LCDWriteCmd(0x06)。//地址加一,整屏右移 delay(30)。 LCDWriteCmd(0x0f)。//開(kāi)顯示,光標(biāo)閃爍,顯示光標(biāo)} 密碼修改子程序設(shè)計(jì) 在本設(shè)計(jì)中,密碼修改功能是使用外部中斷觸發(fā)的,這意味用戶得以隨時(shí)進(jìn)行密碼的修改,十分方便。因此,密碼修改子程序同時(shí)也是外部中斷 0 服務(wù)程序。若要修改密碼,須先輸入舊密碼密碼,密碼驗(yàn)證通過(guò)后方可設(shè)置新密碼,新密碼輸入結(jié)束后,驗(yàn)證位數(shù),然后保存新密碼。流程如圖 所示。圖 密碼修改程序流程圖 報(bào)警聲音子程序設(shè)計(jì)本程序的設(shè)計(jì)類似于電子音樂(lè)盒,可以實(shí)現(xiàn) 1~7 七個(gè)音符的各種組合,理論上可以播放任意音樂(lè),但音階始終位于 1 個(gè)八度內(nèi)。音調(diào)取決于物體振動(dòng)的頻率,頻率越高,所發(fā)聲音音調(diào)也就越高。本程序就是利用單片機(jī)產(chǎn)生不同頻率的方波,來(lái)驅(qū)動(dòng)蜂鳴器發(fā)出不同音調(diào)的聲音。設(shè)計(jì)中,系統(tǒng)使用了定時(shí)中斷的方法。這里以起中的音階“1”為例說(shuō)明,其初值設(shè)為 0xF720,對(duì)應(yīng)十進(jìn)制數(shù) 63264,則計(jì)數(shù) 65536 63264 = 2272 次后溢出進(jìn)入中斷,若單片機(jī)外接 24MHZ 晶振,則計(jì)數(shù)一次對(duì)應(yīng) ,即計(jì)數(shù)1136μs 后溢出。一個(gè)音階周期為 1136μs2 = 2272μs,對(duì)應(yīng)頻率為 1 / 2272μs = 440Hz。次頻率為音階 “1”所對(duì)應(yīng)的頻率值。其他頻率對(duì)應(yīng)的計(jì)數(shù)初值可按照此方法推算出來(lái),具體見(jiàn)表
點(diǎn)擊復(fù)制文檔內(nèi)容
黨政相關(guān)相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1