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

正文內(nèi)容

基于單片機電路設(shè)計密碼鎖(存儲版)

2025-07-27 19:58上一頁面

下一頁面
  

【正文】 lay(1)。 temp=_crol_(temp,1)。 delay(1)。 //點亮數(shù)碼管右邊N位 } if(N==2) //判斷輸入密碼個數(shù)是否為2 { temp=0xfe。 //按鍵0動作,設(shè)num=0 case 0x77:num=39。break。// 按鍵5動作,設(shè)num=5 case 0xbd:num=6。break。 hang=P1。 lie=P1。直到再一次輸入數(shù)字。P0口控制段選,P2口控制位選。如圖二所示,二極管亮。當(dāng)確認(rèn)有按鍵按下后,就要識別是哪一個按鍵被按下。(2) 報警、鎖定鍵盤功能。測試結(jié)果表明,設(shè)計達(dá)到電子密碼鎖的功能。目前使用的密碼鎖種類繁多,各具特色。設(shè)計主要功能有:1. 設(shè)置6位密碼,密碼通過鍵盤輸入,若密碼正確,則鎖打開,代表鎖的二極 管亮。 4. 密碼只能輸入6位數(shù)字,超過6位的輸入無效。本設(shè)計采用矩陣鍵盤對密碼進(jìn)行輸入,具有較高的優(yōu)勢,減少了I/O口的占用數(shù)目。(如指紋、眼底視網(wǎng)膜等)來控制鎖的開啟。另外系統(tǒng)還有LED 提示燈,報警蜂鳴器等。再根據(jù)掃描結(jié)果判斷按下鍵的位置。每次輸入的密碼與正確密碼進(jìn)行比較,如果相同,鎖開燈亮。本設(shè)計只允許輸入數(shù)字密碼6位,超過6位以后的數(shù)字無效,在C語言程序中以一個while循環(huán)實現(xiàn)。在開鎖情況下進(jìn)行修改密碼,點擊確認(rèn)密碼修改成功,否則結(jié)束返回。 addres=hang|lie。 switch(addres) // 讀取鍵值 { case 0xee:num=1。break。B39。 //按鍵9動作,設(shè)num=9 case 0x7b:num=39。 //按鍵D動作,設(shè)num=D } } }}數(shù)碼管顯示流程圖如圖八所示: 26 數(shù)碼管顯示程序為:void display(uchar N)//顯示{ if(N==1) //判斷輸入密碼個數(shù)是否為1 { temp=0xfe。 delay(1)。 } if(N==3) //判斷輸入密碼個數(shù)是否為3 { temp=0xfe。 delay(1)。 } if(N==4) // 判斷輸入密碼個數(shù)是否為4 { temp=0xfe。 delay(1)。 P0=0x40。 delay(1)。 P0=0x40。 P2=0xff。 P0=0x40。 P2=0xff。 P2=temp。 temp=_crol_(temp,1)。 for(m=50。 調(diào)用延時函數(shù) } }} 密碼重置的條件是在鎖開,即燈亮的情況下進(jìn)行的,所以調(diào)用密碼子程序開始必須對顯示器進(jìn)行清零并熄滅,關(guān)閉發(fā)光二極管。 //6位數(shù)字顯示子函數(shù) if(num==39。 b1=b。首先運用keil軟件編寫電子密碼鎖的源程序,本設(shè)計主要運用C語言編寫。密碼正確,鎖開;密碼輸入錯誤三次,報警;輸入密碼超過6位之后的數(shù)無效;數(shù)碼管顯示屏顯示密碼為“—”。 //字模定義void delay(uint z)。 //數(shù)字右移函數(shù) void display(uchar)。 sbit K=P3^1。 //數(shù)碼管熄滅 TR0=0。 // 重置密碼子程序 mark=0。 //從右往左數(shù)第六位密碼 b1=5。 EA=1。 //數(shù)字右移函數(shù) disp(a,b,c,d,e,f)。} a1=a。 }void delay(uint z) // 延時函數(shù){ uint x,y。 //輸入密碼個數(shù)加1 flag=0。 lie=P1。 hang=P1。break。 //按鍵5動作,設(shè)num=5 case 0xbd:num=6。break。 //按鍵0動作,設(shè)num=0 case 0x77:num=39。D39。(d1==d)amp。 //led燈點亮 a=b=c=d=e=f=0。 //點亮g段使顯示為“—” P2=temp。 temp=_crol_(temp,1)。 P2=temp。 temp=_crol_(temp,1)。 P2=temp。 temp=_crol_(temp,1)。 delay(1)。 temp=_crol_(temp,1)。 delay(1)。 P0=0x40。 delay(1)。 temp=_crol_(temp,1)。 P2=temp。 P2=0xff。 P0=0x40。 P2=0xff。 P0=0x40。 P2=0xff。 P0=0x40。 P2=0xff。 P0=0x40。 //錯誤次數(shù)累加 N=0。(f1==f)) //比較密碼是否正確 { mark=1。(b1==b)amp。C39。C39。break。 // 按鍵A動作,設(shè)num=A case 0xed:num=4。break。 //行列寄存器中的值相或得到按鍵值 while(addres!=0xff) //判斷是否有鍵按下,若adres的值不為0xff則有鍵按下 { delay(5)。 c=b。y0。 e1=e。} if(num==39。 //熄滅數(shù)碼管 N=0。 //第二位密碼 f1=1。 temp=0xfe。A39。 //數(shù)字右移函數(shù) fun_key()。uint to,aa。 // 初始化設(shè)置void exter0()?;仡櫞舜螁纹瑱C課程設(shè)計,至今我仍感觸頗多。Protues仿真電路圖如圖十四所示圖十四 protues仿真電路圖Keil調(diào)試程序圖(圖十五)七設(shè)計總結(jié)與展望課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識發(fā)現(xiàn)、提出、分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程。 f1=f。C39。 // 輸入密碼個數(shù)清零 D0=1。n) { K=~K。 P2=0xff。 P0=0x40。 delay(1)。 temp=_crol_(temp,1)。 delay(1)。 temp=_crol_(temp,1)。 P2=temp。 temp=_crol_(temp,1)。 P2=temp。 P2=0xff。 P2=temp。 P2=0xff。 P2=temp。 //延時使左邊第一位不停閃爍 P2=0xff。break。 //按鍵7動作,設(shè)num=7 case 0xdb:num=8。break。 //按鍵2動作,設(shè)num=2 case 0xbe:num=3。 P1=0x0f。圖七 鍵盤掃描流程圖鍵盤掃描C語言程序為:void get_key(){ P1=0xf0。 (3) 當(dāng)按下功能鍵時,相應(yīng)的功能鍵實現(xiàn)相應(yīng)的功能,而數(shù)碼管全部回零熄滅。顯示電路如圖四所示。在本次設(shè)計中用發(fā)光二極管代替電磁鎖,二極管亮表示鎖開,二極管滅表示沒有開鎖。在這種行列式矩陣鍵盤編碼的單片機系統(tǒng)中,鍵盤處理程序首先執(zhí)行等待按鍵并確認(rèn)有無按鍵按下的程序段,還要對按鍵進(jìn)行消抖處理。三 本設(shè)計所要實現(xiàn)的目標(biāo)本次設(shè)計使用ATMEL公司的AT89S51 實現(xiàn)一基于單片機的電子密碼鎖的設(shè)計,其主要具有如下功能:(1) 密碼通過鍵盤輸入,若密碼正確,LED燈亮,則將密碼鎖打開。軟件使用C語言編程,運用自上而下的模塊化設(shè)計思想,使系統(tǒng)朝著分布式、小型化方向發(fā)展,增強系統(tǒng)的可擴展性和運行的穩(wěn)定性。大大提高了主人物資的安全性,安全可以代替老式機械鎖。 二、設(shè)計的內(nèi)容及要求本設(shè)計采用單片機為主控芯片,結(jié)合外圍電路組成電子密碼控制系統(tǒng)。 5. 具有自動報警功能:當(dāng)密碼輸入錯誤三次,報警,蜂鳴器響10S。密碼的顯示采用6位數(shù)碼管實現(xiàn),為確保安全性統(tǒng)一使用“—”顯示密碼。從而大大提高了鎖的安全性,使不法之徒無從下手,人們也就能對自身財產(chǎn)安全有了更多的保障。四設(shè)計原理和硬件仿真方案密碼的輸入用矩陣鍵盤實現(xiàn),包括數(shù)字鍵和功能鍵。給相應(yīng)的按鍵賦值即可實現(xiàn)數(shù)字鍵和功能鍵。如果輸入錯誤則用一個變量來記錄輸入錯誤的次數(shù),當(dāng)輸入密碼錯誤達(dá)到三次時,蜂鳴器工作發(fā)出報警聲音,本次設(shè)計使用的是聲音間斷蜂鳴器聲音報警來報警,如此循環(huán),即可聽到“嘟嘟嘟”的間斷響聲。數(shù)碼管顯示原理:(1) “—”顯示原理:在選擇位選的情況下,段選僅點亮“g”管即可顯示當(dāng)位為“—”;(2) 實現(xiàn)右移逐漸點亮原理: 當(dāng)輸入一個數(shù)字時,第五位(從左往右數(shù))賦值給第六位,第四位的值賦給第五位,第三位的值賦給第四位,第二位的值賦給第三位,第一位的值賦給第二位,輸入的值賦給第一位,同時點亮第一位數(shù)碼管。若密碼修改成功則再執(zhí)行之前的操作。 // 行列寄存器中的值相或得到按鍵值 while(addres!=0xff) //判斷是否有鍵按下,若adres的值不為0xff則有鍵按下 { delay(5)。break。 //按鍵A動作,設(shè)num=A case 0xed:num=4。break。C39。 P0=0x40。 P2=0xff。 P0=0x40。 P2=0xff。 P0=0x40。 P2=0xff。 P2=temp。 P2=0xff。 P2=temp。 temp=_crol_(temp,1)。 P2=temp。 temp=_crol_(temp,1)。 delay(1)。 P0=0x40。m0。然后再調(diào)用輸入密碼子程序、鍵盤掃描子程序進(jìn)行密碼修改。D39。 c1=c。源程序編寫后運行生成目標(biāo)文件供protues仿真調(diào)試。在設(shè)計的過程中遇到了各種各樣的問題,譬如說斷電密碼保護(hù)的設(shè)計,由于電路和編程都過于復(fù)雜,本設(shè)計并未加入。 //延時函數(shù)void get_key()。 // 數(shù)碼管顯示程序void alarm()。void main(){ init()。 mark=0。 } } }}void init() // 初始化設(shè)置{ K=0。 //第五位密碼 c1=4。 ET0=1。 //數(shù)字顯示函數(shù) if(num==39。 b1=b。 for(x=100。 f=e。 P1=0x0f。 addres=hang|lie。 //按鍵3動作,設(shè)num=3 case 0x7e:num=39。break。 // 按鍵8動作,設(shè)num=8 case 0xbb:num=9。D39。) //按鍵是否為D { num=0xff。amp。 //數(shù)碼管熄滅 N=0。 delay(1)。 //帶循環(huán),使其挨
點擊復(fù)制文檔內(nèi)容
語文相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1