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

正文內(nèi)容

智能密碼鎖單片機(jī)課程設(shè)計(jì)-在線瀏覽

2024-08-09 02:09本頁(yè)面
  

【正文】 YNYNNNY掃描矩陣鍵盤(pán)存儲(chǔ)數(shù)字按下設(shè)置密碼鍵?與原密碼相符?第1步?第2步?1602顯示Error,鎖鍵盤(pán)3秒按下確定鍵? 讀出原密碼存儲(chǔ)第一次新密碼輸入新密碼兩次一樣? 設(shè)置失敗設(shè)置成功N 修改密碼子程序流程圖 Y 修改密碼子程序流程圖 查看用戶信息子程序流程圖 YNYN顯示用戶信息按下解鎖鍵? 返回主程序密碼正確? 返回主程序 查看用戶子程序流程圖Y 蜂鳴器打開(kāi) 鎖住鍵盤(pán)PC 機(jī)發(fā)來(lái)信號(hào)?解除警報(bào)、程序復(fù)位N初始化串口通信 報(bào)警子程序流程圖 Y 報(bào)警子程序流程圖第5章 系統(tǒng)仿真 系統(tǒng)仿真通過(guò)keil將源程序編譯成16進(jìn)制 HEX文件,再加入到C51單片機(jī)中。 未運(yùn)行時(shí)的仿真圖 通過(guò)點(diǎn)擊運(yùn)行按鈕之后,仿真圖開(kāi)始運(yùn)行。在密碼正確的情況下可以查看用戶信息,在密碼錯(cuò)誤三次的情況下,蜂鳴器會(huì)報(bào)警,需要在電腦用正確的用戶名才能解除警報(bào)。軟件程序中在設(shè)定密碼的尾部加了個(gè)字符‘a(chǎn)’,作為一個(gè)簡(jiǎn)單的加密工作。解鎖狀態(tài)按下“查看用戶信息鍵”的時(shí)候,可以循環(huán)查看用戶信息。按下了“修改密碼”鍵,LCD1602顯示“Old Password”,即輸入舊密碼,密碼正確是才開(kāi)始修改密碼,LCD1602顯示“New Password”, 兩次輸入一樣則設(shè)置成功,LCD1602顯示“Set Success”和你所設(shè)定的新密碼,下次要輸入的密碼則需要新密碼才能解鎖。 如果輸入舊密碼錯(cuò)誤則顯示“Error”,鎖定鍵盤(pán)三秒后進(jìn)入主界面。在輸入密碼的過(guò)程中想取消上次所輸入的一個(gè)數(shù)字時(shí),按下“撤銷(xiāo)”鍵,可以取消上次所輸入的數(shù)字。 系統(tǒng)結(jié)果分析在實(shí)物的調(diào)試過(guò)程中,解除警報(bào)這個(gè)操作是我調(diào)試用的最長(zhǎng)時(shí)間,剛開(kāi)始每次解除警報(bào)之后,下次輸入密碼反應(yīng)很慢,而且錯(cuò)三次之后不能準(zhǔn)確報(bào)警,但是復(fù)位之后才能再次正確運(yùn)行。 在所有程序測(cè)試完成之后,以前還行,目前沒(méi)有發(fā)現(xiàn)問(wèn)題。通過(guò)PC機(jī)才可以解除警報(bào),當(dāng)忘記密碼時(shí),可以用PC機(jī)初始化密碼。本系統(tǒng)設(shè)計(jì)當(dāng)中遇到主要問(wèn)題如下①解除警報(bào)。②容易被破解密碼。因此在程序里面自動(dòng)在密碼的后面加入了字符‘a(chǎn)’,作為一個(gè)程序讀取密碼的結(jié)束標(biāo)志,起到簡(jiǎn)單的加密。希望將來(lái)能通過(guò)手機(jī)控制密碼鎖,當(dāng)錯(cuò)誤三次時(shí),只有用戶通過(guò) 自己的手機(jī)發(fā)送短信才能解除警報(bào)和初始化密碼。 //定義串行時(shí)鐘線sbit SDA=P3^5。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 //當(dāng)時(shí)鐘線為高電平時(shí)數(shù)據(jù)線拉低,AT24C02開(kāi)始工作 _nop_()。 //時(shí)鐘線清零便于后續(xù)操作 _nop_()。 _nop_()。 _nop_()。 //當(dāng)時(shí)鐘線為高電平時(shí),數(shù)據(jù)線拉高AT24C02停止 _nop_()。 for(i=0。i++) //傳送八位數(shù)據(jù) { date=date1。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 _nop_()。 SCL=0。 SDA=1。i8。 SCL=1。 if(SDA==1) //讀出高電平 j=1。 result=(result1)|j。 } _nop_()。 //返回讀出來(lái)的數(shù)值}void clock() //等待AT24C02的應(yīng)答{ uchar i=1。 _nop_()。 // _nop_()。 SCL=0。}uchar Read_24C02(uchar address){ uchar ReadData。 Write_Byte_24C02(0xa0)。 Write_Byte_24C02(address)。 start()。 //寫(xiě)入讀數(shù)據(jù)命令 clock()。 stop()。 return ReadData。 //開(kāi)始AT24C02 Write_Byte_24C02(0xa0)。 Write_Byte_24C02(address)。 Write_Byte_24C02(date)。 stop()。}/*********************************************************/include void delay1ms(int ms){ uchar i,j。ms0。i3。j99。 }void delay(unsigned char x) //x*{ unsigned char i。 i13。 //定義ISP特殊寄存器sbit Led=P1^0。bit ChuShi=0。 //定義報(bào)警燈標(biāo)識(shí)sbit bell=P3^7。uchar code t[]={1234a}。uchar h,fen,miao。uchar Warn=0。 //程序從零開(kāi)始執(zhí)行}*/void Bell_(){ uchar i=0,judge=0xff。 //TR0=1。 led=0。 delay(200)。 led=0。 P1=(0xff|Unlock)。 delay(200)。 if(Solve==1) //接收到PC機(jī)發(fā)送的解除警報(bào)則解除警報(bào) { Solve=0。 Warn=0。 //延時(shí)一段時(shí)間等硬件做好準(zhǔn)備 ISP_CONTR=0x20。 }}void Lock_Time(){ //bit Flag。 uchar shi,ge。 //初始化時(shí)間設(shè)置 TR0=1。 //清屏幕 lcd_cmd(0x0c)。 fen=Read_24C02(21)。while(1) { if(miao==60) { fen++。 // Flag=1。 fen=0。 } // Flag=0。 ge=h%10。 lcd_date(numtable[shi])。 lcd_date(39。)。 ge=fen%10。 lcd_date(numtable[ge])。:39。 shi=miao/10。 lcd_date(numtable[shi])。 i=key_scan()。 Write_24C02(20,h)。 Write_24C02(22,miao)。u39。 Write_24C02(21,fen)。 Init_ser()。 Init_PM()。 break。 }} }void main(){ bit New=0。 init_24C02()。 //初始化1602 Init_PM()。 // Write_24C02(20,0)。// Write_24C02(22,0)。 Bell_()。 } if(ChuShi) //接收到初始信號(hào) { ChuShi=0。i5。 //初始為1234 ISP_CONTR=0x20。 judge=keyHandle(i)。 if(judge==39。) Look_information()。j39。 New=JugdeNewPassWord(judge)。 } }void INT_T0() interrupt 1{ static uchar num=0。 TL0=0xb0。 if(num==20) { miao++。 num=0。 }}void INT_ser() interrupt 4{ uchar a。 if(a==39。) ChuShi=1。s39。}/**********************************************************/include include sbit rs=P3^2。sbit EN=P3^6。 uchar temp。 rw=1。 P0=0xff。 result=(bit)(tempamp。 delay1ms(1)。 return result。 rs=1。 EN=1。 delay1ms(1)。}void lcd_cmd(uchar cmd){ while(lcd_bz())。 rw=0。 P0=cmd。 EN=0。 delay1ms(1)。 //光標(biāo)不閃爍 delay1ms(1)。 //光標(biāo)左移 delay1ms(1)。 //清屏幕 delay1ms(1)。 uchar key_h,key_l。 if(P2!=0xf0) { delay1ms(10)。 key_l=(P2amp。 //屏蔽低位 P2=0x0f。0x0f)|0xf0。 while((P2amp。 //等待按鍵釋放 result=(~key_l)+(~key_h)。 } } return 0xff。 switch(key_zhi) { case 0x11: result=39。break。439。 case 0x14: result=39。break。239。 case 0x22
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1