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

正文內(nèi)容

基于單片機(jī)的電子密碼鎖設(shè)計(jì)(參考版)

2025-01-21 16:27本頁面
  

【正文】 i8。} } }endififndef __test_H__define __test_H__/*密碼檢測*/uchar test(){ uchar flag。count=0。 } num=keyscan()。 delay(5)。k++) { P2=~n。 for(k=0。 count=scdisp()。 while(1) { int k。er=1。 temp1[0]=0。 } temp2[count]=0。 } if(count==0) { P0=leddisp[16]。kcount。 if(count0) { count。 }/*刪除鍵處理函數(shù) 查詢刪除標(biāo)志位*/void delete() { uchar k。 count++。 temp1[0]=num。 if(num10) { temp2[count]=num。save=0。} }uchar scdisp(){ esc=0。k8。} }void mov(uchar wd[],uchar pw[]){ uchar k。k0。 }}endififndef __dydisp_H__define __dydisp_H__void move(uchar wd[]){ uchar k。amp。 } num=keyscan()。 delay(5)。i8。} }} void cddisp(uchar z) //密碼輸入界面//{ while(1) { P2=0xfe。 if(open==1) { open=0。 while(1) { disp(HELLO,8)。 }}void hel() //歡迎界面//{ er=1。 delay(5)。k++) { P2=~n。 for(k=0。return num。0xf0。 } while(temp!=0xf0) { temp=P1。break。su=0。break。su=0。break。su=0。break。 switch(temp) { case 0xe7:num=0。0xf0。 temp=P1。0xf0。 temp=P1。0xf0。 } while(temp!=0xf0) { temp=P1。break。su=0。break。 case 0xbb:num=3。su=0。break。 switch(temp) { case 0xeb:num=1。0xf0。 temp=P1。0xf0。 temp=P1。0xf0。 } while(temp!=0xf0) { temp=P1。break。su=0。break。 case 0xbd:num=6。su=0。break。 switch(temp) { case 0xed:num=4。0xf0。 temp=P1。0xf0。 temp=P1。0xf0。 } while(temp!=0xf0) { temp=P1。break。su=0。break。 case 0xbe:num=9。su=0。break。 switch(temp) { case 0xee:num=7。0xf0。 temp=P1。0xf0。 temp=P1。}uchar keyscan()。y0。x0。 void delay(uint z)//延時程序//{ uint x,y。uchar esc,alter,save,del,ent,open。uchar temp1[8],temp2[8],temp3[8]。uchar min[8]={1,2,3,4,5,6}。uchar code CLOSED[]={12,18,0,5,14,13}。uchar code HELLO[]={21,21,17,14,18,18,0,21}。sbit su=P3^4。} 附錄二 頭文件程序清單ifndef _top_H__define __top_H__includeincludedefine uint unsigned intdefine uchar unsigned charsbit ok=P3^3。 break。 esc=0。} } while(!num1) { if(esc==1) { if(num2==2) { while(1) { disp(CLOSED,6)。 ok=1。delay(500)。 if(j==1) {ok=0。goto start。 while(num1) { if(esc==1) {esc=0。goto start。 if(esc==1) {esc=0。loop: cddisp(4)。 su=1。附錄附錄一 主程序程序清單includeincludeincludeincludeincludeincludeinclude//uchar temp1[8],temp2[8]。[20] 樊昌信,[M],北京:國防工業(yè)出版社,2007。[18] 童詩白,華成英,模擬電子技術(shù)基礎(chǔ)[M],北京:高等教育出版社,2000。[16] [M],北京:電子工業(yè)出版社,2006。[14] [M],北京:北京航空大學(xué)出版社,1998。[12] Wireless World,1998,vol、84,No、1509,p69。[10] [J].家庭電子,2000,(07)。[8] [J].機(jī)電產(chǎn)品開發(fā)與創(chuàng)新,2004,(03)。[6] [J].電子技術(shù),2004,(03)。[4] [M].現(xiàn)代電子技術(shù),2005,(13)。[2] 祖龍起,[J].大連輕工業(yè)學(xué)院學(xué)報(bào),2002,(01)。雖然依依不舍,但是對未來的路,我充滿了信心。 最后再一次感謝所有在畢業(yè)設(shè)計(jì)中曾經(jīng)幫助過我的良師益友和同學(xué),以及在設(shè)計(jì)中被我引用或參考的論著的作者。最后要感謝的就是我的父母、朋友,對于他們我更是有千言萬語,還是匯聚成一句話:感謝你們一直都伴隨著我。還要感謝的是我們各課任課老師,他們從大一把我們迎進(jìn)來,到現(xiàn)在把我們送走,在四年來一直照顧我們的學(xué)習(xí)和生活,所以在這里也一定要特別感謝他們。黃老師一絲不茍的作風(fēng),嚴(yán)謹(jǐn)求實(shí)的態(tài)度,踏踏實(shí)實(shí)的精神,不僅授我以文,而且教我做人,給以終生受益無窮之道。]在這份大學(xué)的最后一頁里,我要感謝的人很多,首先要感謝我的學(xué)校,感謝在這四年中交給我的做人道理,讓我從一個懵懂得高中生變成一個成熟的青年。致 謝四年的大學(xué)生活不知不覺中就要結(jié)束了,在這段難忘的生活中,有我許多美好的回憶。也可以放棄傳統(tǒng)的按鍵輸入密碼模式,借助傳感器技術(shù)運(yùn)用聲控來實(shí)現(xiàn)密碼輸入,又或者人臉識別技術(shù),還有一種就是用戶指紋輸入方式,這些都可以使開鎖的時間更短更方便。通過幾個月對電子密碼鎖的研究學(xué)習(xí),發(fā)覺這種密碼輸入可以進(jìn)行改革。使其有很高的智能化水平。由于使用的是單片機(jī)作為核心的控制元件,配合其他器件,使本密碼控制系統(tǒng)具有功能性強(qiáng),性能可靠,電路簡單,成本低的特點(diǎn)。但由于水平有限,電路也存在一定問題??稍谝馔庑姑艿那闆r下隨時修改密碼。從經(jīng)濟(jì)實(shí)用的角度出發(fā),采用美國INTEL公司的單片機(jī)80C51與低功耗CMOS型E2PROM AT24C01作為主控芯片與數(shù)據(jù)存儲器單元,結(jié)合外圍的鍵盤輸入、顯示、報(bào)警、開鎖等電路并用匯編編寫主控芯片的控制程序,研制了一款可以多次更改密碼具有報(bào)警功能的電子密碼鎖。不過由于了解的專業(yè)知識尚淺,對課題的研究經(jīng)驗(yàn)不足,使得在技術(shù)解決上稍微欠缺一些,所幸該系統(tǒng)能基本完成一個電子密碼鎖應(yīng)有的功能特性:開鎖提示,錯誤報(bào)警,密碼修改。66 電子密碼鎖密碼修改仿真圖結(jié) 論在著手本次畢業(yè)設(shè)計(jì)時,通過網(wǎng)絡(luò)和圖書館查閱資料,加上導(dǎo)師的悉心指點(diǎn),結(jié)合生活中對密碼鎖的功能特性要求,設(shè)計(jì)出了這套電子密碼鎖的主要硬件結(jié)構(gòu)和軟件設(shè)計(jì)。 圖64 電子密碼鎖仿真開鎖過程截圖若出入密碼錯誤時,顯示屏則顯示ERRO。圖62 PROTEUS仿真電路圖將KEIL C軟件生成的HEX文件導(dǎo)入芯片中,并按下仿真按鈕,數(shù)碼管顯示歡迎界面:圖63 電子密碼鎖歡迎界面1. 開鎖過程若要開鎖,則按下OPEN鍵,輸入初始密碼123456后再按下ENT鍵密碼輸入正確,則開鎖。當(dāng)連好各個模塊電路的導(dǎo)線后,導(dǎo)入芯片程序,運(yùn)行該密碼鎖仿真電路,通過按鍵可以進(jìn)行密碼鎖的開鎖,修改密碼,錯誤密碼三次以上報(bào)警的操作,LED顯示屏顯示相應(yīng)的操作現(xiàn)象,密碼鎖正確可以開鎖,進(jìn)而可以修改密碼,密碼錯誤由喇叭發(fā)出報(bào)警聲,如果系統(tǒng)出現(xiàn)錯誤還可以通過復(fù)位電路進(jìn)行復(fù)位。 PROTEUS仿真在硬件和軟件都能實(shí)現(xiàn)的條件下,利用PROTEUS進(jìn)行仿真,通過不停的調(diào)試和改正,最后終于實(shí)現(xiàn)了密碼鎖的功能。當(dāng)全部調(diào)試和修改完成后,將程序固化到80C51中。這個階段若有故障,可以考慮各子程序運(yùn)行時是否破壞了現(xiàn)場,緩沖單元、工作寄存器是否發(fā)生沖突,標(biāo)志位的建立和清除是否有誤,堆棧區(qū)是否有溢出,輸入設(shè)備的狀態(tài)是否正常等等,若用者系統(tǒng)是在開發(fā)機(jī)的監(jiān)控程序下運(yùn)行時,還要考慮用者緩沖單元是否和監(jiān)控程序的工作單元 發(fā)生沖突。調(diào)試時,一定要符合入口條件和出口條件,調(diào)試可用單步運(yùn)行和斷點(diǎn)運(yùn)行方式,通過檢查用者系統(tǒng)的CPU現(xiàn)場情況、RAM的內(nèi)容和I/O口的狀態(tài),檢測程序執(zhí)行結(jié)果是否符合設(shè)計(jì)要求,有無循環(huán)錯誤、有無機(jī)器碼錯誤以及轉(zhuǎn)移地址的錯誤,同時,還可以發(fā)現(xiàn)系統(tǒng)中存在的硬件設(shè)計(jì)錯誤和軟件算法錯誤。圖61 KEIL C工作界面圖對于模塊結(jié)構(gòu)程序。硬件調(diào)試辦法脫機(jī)調(diào)試是在加電前,先用萬用表等工具,按圖紙仔細(xì)核對線路是否正確,并對元器件的安裝、型號、規(guī)格、等進(jìn)行仔細(xì)檢查,特別是在焊接時有無走線之間相互短路等。另外,走線和布置的不合理也會造成系統(tǒng)可靠性差。(2) 元器件錯誤 元器件錯誤的原因有器件損壞或性能不符合要求,電解電容、二極管的極性接反或集成塊裝反等。 } 第六章 調(diào)試與實(shí)現(xiàn)單片機(jī)應(yīng)用系統(tǒng)的硬件調(diào)試和軟件調(diào)試是分不開的,許多硬件故障只有通過軟、硬件聯(lián)調(diào)才能發(fā)現(xiàn),但一般是先排除系統(tǒng)中比較明顯的硬件故障后才和軟件一起調(diào)試[20]。goto loop0。 mov(temp2,fill)。 goto loop1。 mov(temp2,fill)。k++) { if(temp2[k]==temp3[k]) { flag2=1。 for(k=0。 cddisp(3)。 dydisp()。loop1: cddisp(3)。 j=test()。loop0: cddisp(0)。}/*密碼修改*/uchar chang(){ uchar k,flag2=0。 keyscan()。 P2=0x80。 while(!esc) { su=0。break。 num=keyscan()。 while(1) { disp(OPENED,6)。delay(500)。delay(500)。delay(500)。 num1=test()。 } } return(flag)。 er=0。 i = 8。 er=1。i++) { if (min[i]==temp2[i]) { flag = 1。 for (i=0。如果輸入錯誤,則執(zhí)行報(bào)警程序。 break。 if(ent==1||esc==1){ent=0。 n=n1。 P0=leddisp[temp1[k]]。kcount。 delete()。int n=0x80。mov(temp2,fill)。 } } }/*密碼輸入動態(tài)顯示*/void dydisp(){ok=1。 } if(count==0) {temp2[0]=0。 P2=0x80。k++) {temp1[k]=temp1[k+1]。 for(k
點(diǎn)擊復(fù)制文檔內(nèi)容
畢業(yè)設(shè)計(jì)相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1