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

正文內(nèi)容

紅外遙控電子密碼鎖設(shè)計畢業(yè)設(shè)計-資料下載頁

2025-08-17 09:32本頁面

【導(dǎo)讀】[摘要]:本文論述了基于AT89C51單片機的紅外遙控電子密碼鎖系統(tǒng)設(shè)計。給出了具體的實現(xiàn)方案。了單片機的串行通信工作原理的基礎(chǔ)上,同時也設(shè)計了紅外發(fā)送接收器電路,以及電子密碼鎖的電路設(shè)計等。以實現(xiàn)密碼設(shè)定、密碼顯示、密碼修改、本機開鎖、遠程遙控開鎖、密碼輸入錯誤報警等等。紅外發(fā)送器和紅外接收器。從古來有之,由原來機械鎖到現(xiàn)在電子密碼鎖,鎖帶給我們功能是越來越方便、可靠?,F(xiàn)在人們通常都用的是彈子鎖,成本低但缺點是鑰匙容易丟失所以造成了安全性低。

  

【正文】 2_rw=0。 //讀寫選擇置為寫 P0=dat。//送入數(shù)據(jù) delay(1)。 lcd1602_en=1。 //en 置高電平,為制造下降沿做準備 delay(1)。 lcd1602_en=0。 //en 由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令 } //初始化 void lcd_init() { write_1602(0x38)。//設(shè)置液晶工作模式,意思: 16*2 行顯示, 5*7 點陣, 8 位數(shù)據(jù) write_1602(0x0c)。//開顯示不顯示光標 write_1602(0x06)。//整屏不移動,光標自動右移 write_1602(0x01)。//清顯示 陜西理工學(xué)院畢業(yè)設(shè)計 第 25 頁 共 44 頁 } //======================================================================================== //========================================================================================= //==============將按鍵值編碼為數(shù)值 ========================= unsigned char coding(unsigned char m1,unsigned char hh) { unsigned char k。 if(IrOK==1) { IrOK=0。 switch(m1) { case (0x0c): k=1。break。 case (0x18): k=2。break。 case (0x5e): k=3。break。 // case (0xff): k=39。A39。break。 // case (0x08): k=4。break。 case (0x1c): k=5。break。 case (0x5a): k=6。break。 // case (0x82): k=39。B39。break。 // case (0x42): k=7。break。 case (0x52): k=8。break。 case (0x4a): k=9。break。 // case (0x84): k=39。C39。break。 // case (0x43): k=39。*39。break。 //撤銷 case (0x16): k=0。break。 case (0x15): k=39。39。break。 //確認鍵 case (0x0d): k=39。D39。break。 //重設(shè)密碼 case (0x45): k=39。A39。break。 // case (0x47): k=39。A39。break。 // case (0x44): k=39。A39。break。 // case (0x40): k=39。A39。break。 // case (0x07): k=39。A39。break。 // case (0x09): k=39。A39。break。 // case (0x19): k=39。A39。break。 // // default:。 } } 陜西理工學(xué)院畢業(yè)設(shè)計 第 26 頁 共 44 頁 else { switch(hh) { case (0x11): k=1。break。 case (0x21): k=2。break。 case (0x41): k=3。break。 case (0x81): k=39。A39。break。 case (0x12): k=4。break。 case (0x22): k=5。break。 case (0x42): k=6。break。 case (0x82): k=39。B39。break。 case (0x14): k=7。break。 case (0x24): k=8。break。 case (0x44): k=9。break。 case (0x84): k=39。C39。break。 case (0x18): k=39。*39。break。 case (0x28): k=0。break。 case (0x48): k=39。39。break。 case (0x88): k=39。D39。break。 // default:。 } } return(k)。 } //===================== 按 鍵 檢 測 并 返 回 按 鍵 值=============================== unsigned char keynum() { unsigned char row,col,i。 P1=0xf0。 if((P1amp。0xf0)!=0xf0) { Delay5Ms()。 Delay5Ms()。 if((P1amp。0xf0)!=0xf0) { row=P1^0xf0。 //確定行線 i=0。 P1=a[i]。 //精確定位 while(i4) { 陜西理工學(xué)院畢業(yè)設(shè)計 第 27 頁 共 44 頁 if((P1amp。0xf0)!=0xf0) { col=~(P1amp。0xff)。 //確定列線 break。 //已定位后提前退出 } else { i++。 P1=a[i]。 } } } else { return 0。 } while((P1amp。0xf0)!=0xf0)。 return (row|col)。 //行線與列線組合后返回 } else return 0。 //無鍵按下時返回 0 } //=======================一聲提示音,表示有效輸入 ======================== void OneAlam() { ALAM=0。 Delay5Ms()。 ALAM=1。 } //========================二聲提示音,表示操作成功 ======================== void TwoAlam() { ALAM=0。 Delay5Ms()。 ALAM=1。 Delay5Ms()。 ALAM=0。 Delay5Ms()。 陜西理工學(xué)院畢業(yè)設(shè)計 第 28 頁 共 44 頁 ALAM=1。 } //========================三聲提示音 ,表示錯 誤 ======================== void ThreeAlam() { ALAM=0。 Delay5Ms()。 ALAM=1。 Delay5Ms()。 ALAM=0。 Delay5Ms()。 ALAM=1。 Delay5Ms()。 ALAM=0。 Delay5Ms()。 ALAM=1。 } //===================== 顯示輸入的 N 個數(shù)字,用 H 代替以便隱藏============================ void DisplayOne() { // DisplayOneChar(9+N,1,39。*39。)。 write_1602(yi+5+N)。 write_1602dat(39。*39。)。 } //=======================顯示提示輸入 ========================= void DisplayChar() { unsigned char i。 if(pass==1) { //DisplayListChar(0,1,LockOpen)。 write_1602(er)。 for(i=0。i16。i++) { write_1602dat(LockOpen[i])。 } } else { 陜西理工學(xué)院畢業(yè)設(shè)計 第 29 頁 共 44 頁 if(N==0) { //DisplayListChar(0,1,Error)。 write_1602(er)。 for(i=0。i16。i++) { write_1602dat(Error[i])。 } } else { //DisplayListChar(0,1,start_line)。 write_1602(er)。 for(i=0。i16。i++) { write_1602dat(start_line[i])。 } } } } void DisplayInput() { unsigned char i。 if(CorrectCont==1) { //DisplayListChar(0,0,Input)。 write_1602(er)。 for(i=0。i16。i++) { write_1602dat(Input[i])。 } } } //======================== 重 置 密 碼================================================== //================================================================================== void ResetPassword() { unsigned char i。 unsigned char j。 陜西理工學(xué)院畢業(yè)設(shè)計 第 30 頁 共 44 頁 if(pass==0) { pass=0。 DisplayChar()。 ThreeAlam()。 } else { if(ReInputEn==1) { if(N==6) { ReInputCont++。 if(ReInputCont==2) { for(i=0。i6。) { if(TempPassword[i]==InputData[i]) //將兩次輸入的新密碼作對比 i++。 else { //DisplayListChar(0,1,Error)。 write_1602(er)。 for(j=0。j16。j++) { write_1602dat(Error[j])。 } ThreeAlam()。 //錯誤提示 pass=0。 ReInputEn=0。 //關(guān)閉重置功能, ReInputCont=0。 DisplayChar()。 break。 } } if(i==6) { //DisplayListChar(0,1,ResetOK)。 write_1602(er)。 for(j=0。j16。j++) { write_1602dat(ResetOK[j])。 } 陜西理工學(xué)院畢業(yè)設(shè)計 第 31 頁 共 44 頁 TwoAlam()。 //操作成功提示 WrToROM(TempPassword,0,6)。 //將新密碼寫入 24C02存儲 ReInputEn=0。 } ReInputCont=0。 CorrectCont=0。
點擊復(fù)制文檔內(nèi)容
教學(xué)課件相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1