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

正文內(nèi)容

基于51單片機的簡易帶密碼計算器設(shè)計報告-資料下載頁

2025-06-18 21:42本頁面
  

【正文】 ta。 _nop_()。 EN_CLR。 }/* 清屏函數(shù)*/ void LCD_Clear(void) { LCD_Write_Com(0x01)。 DelayMs(5)。 }/* 靜態(tài)顯示字符串函數(shù)*/ void LCD_Write_String(unsigned char x,unsigned char y,unsigned char *s) { while (*s) { LCD_Write_Char(x,y,*s)。 s ++。 x++。 } } /* 移動顯示字符串函數(shù)*/ void LCD_Write_String_Move(unsigned char x,unsigned char y,unsigned char *s) { //字符串的起始位置 ,字符串的行0為第一行1為第二行,放字符串 if (y == 0) { LCD_Write_Com(0x80 + x)。 //表示第一行 } else { LCD_Write_Com(0xC0 + x)。 //表示第二行 } while (*s) { LCD_Write_Data( *s)。 s ++。 } }/* 寫入字符函數(shù)*/void LCD_Write_Char(unsigned char x,unsigned char y,unsigned char Data) { if (y == 0) { LCD_Write_Com(0x80 + x)。 } else { LCD_Write_Com(0xC0 + x)。 } LCD_Write_Data( Data)。 }/* 初始化函數(shù)*/ void LCD_Init(void) { LCD_Write_Com(0x38)。 /*顯示模式設(shè)置*/ DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 DelayMs(5)。 LCD_Write_Com(0x38)。 LCD_Write_Com(0x08)。 /*顯示關(guān)閉*/ LCD_Write_Com(0x01)。 /*顯示清屏*/ LCD_Write_Com(0x06)。 /*顯示光標移動設(shè)置*/ DelayMs(5)。 LCD_Write_Com(0x0C)。 /*顯示開及光標設(shè)置*/ } ifndef __MIMASUO_H__define __MIMASUO_H__void mimasuo(void)。void password_Right()。void password_Wrong()。endif//包含頭文件,一般情況不需要改動,頭文件包含特殊功能寄存器的定義includeincludeincludeincludeinclude unsigned char temp[17]。 //用于存放動態(tài)顯示的字符串 bit Flag=0。 //密碼是否正確標志位 unsigned char inputtimes,sen=3,j。//密碼輸入錯誤次數(shù),剩余次數(shù),通用循環(huán)變量unsigned char time。 //倒計時時間變量void mimasuo(void){ unsigned char num,i=0。 //鍵盤掃描的返回值,計算輸入次數(shù),普通循環(huán)變量,剩余輸入次數(shù),字符指針, unsigned char passwordtemp[16]。 //最大輸入16個, unsigned char passwordlength,PLEN。 //輸入密碼長度,實際密碼長度 unsigned char code password[]={39。139。,39。239。,39。339。,39。439。}。//可以更改此密碼做多組測試 //定義密碼,實際上密碼需要存在eeprom中,可以通過程序更改。 PLEN=sizeof(password)/sizeof(password[0])。//用于計算出實際密碼長度 LCD_Clear()。 LCD_Write_String(0,0,Input Password:)。 //寫入第二行信息,提示輸入密碼 LCD_Write_String(0,1,Finished By 39。=39。)。 num=0xff。 while(num==0xff) num=KeyPro()。 //循環(huán)掃描鍵盤,直到按鍵有效 _mima LCD_Write_String(0,1, )。//用16個空格來模擬表示清除第二行 for(。Flag!=1。) { num=KeyPro()。 //掃描鍵盤 _mima_ if(num!=0xff) //如果掃描是按鍵有效值則進行處理 { if(i16) { passwordtemp[i]=num。 LCD_Write_Char(i,1,39。*39。)。//輸入的密碼用*代替 } i++。 //輸入次數(shù)值累加 if((39。=39。==num)||(i==16))//輸入按鍵39。=39?;蛘呙艽a輸入到最大值16,表示輸入結(jié)束,需要進行比對 { passwordlength=i1。 //計算輸入密碼長度,除去等號占有的一位 i=0。 //計數(shù)器復(fù)位 if(passwordlength==PLEN)//長度相等則比較,否則直接輸出錯誤 { Flag=1。//先把比較位置1 for(j=0。jPLEN。j++)//循環(huán)比較8個數(shù)值,如果有一個不等 則最終Flag值為0 Flag=Flagamp。amp。(passwordtemp[j]==password[j])。//比較輸入值和已有密碼,如果比較全部相同,標志位置1 } if(Flag) { password_Right()。 //密碼正確,進入打開界面 break。 //跳出for大循環(huán) } else password_Wrong()。 //密碼錯誤,提示重新輸入 } } }} void password_Right(){ unsigned char a=0。 unsigned char code *p=Opening!。 EA=1。 LCD_Clear()。 //清屏/ LCD_Write_String(0,0,Password Right!)。//密碼正確顯示的信息 DelayMs(250)。 while (*p) //使字符串動態(tài)顯示,保留原始的字符逐個向右顯示 { LCD_Write_Char(a,1,*p)。 a ++。 p ++。 DelayMs(500)。 } EA=0。 //字符顯示完成,蜂鳴器關(guān)閉 DelayMs(500)。 LCD_Clear()。 // } void password_Wrong(){ LCD_Clear()。 //清屏/ static LCD_Write_String(0,0,Wrong! Retry!)。//密碼錯誤,提示重新輸入 sprintf(temp,You Only %d Times,(int)sen)。//動態(tài)顯示剩余輸入次數(shù) LCD_Write_String(0,1,temp)。 inputtimes++。//連續(xù)輸入錯誤,則次數(shù)累加 for(j=0。j40。j++) { DelayMs(50)。 //結(jié)合for語句延時2s if(j==1||j==3||j==5||j==7||j==9||j==11||j==13) //密碼報錯,使蜂鳴器發(fā)出嘀嘀嘀聲,連續(xù)7聲 EA=1。 else EA=0。 } LCD_Clear()。 LCD_Write_String(0,0,Input Password:)。 //寫入第一行信息,提示輸入密碼 if(inputtimes==4) { LCD_Clear()。 //清屏/ LCD_Write_String(0,0,Wrong 3 times!)。//密碼錯誤,提示重新輸入 for(time=15。time0。time,EA=1) { sprintf(temp,Wait %02d second,(int)time)。//動態(tài)顯示剩余時間 LCD_Write_String(0,1,temp)。 for(j=0。j14。j++) //延時大約1秒 { DelayMs(60)。 if(j1) EA=0。 //關(guān)閉蜂鳴器,以實現(xiàn)秒加一次響一次 } } sen=3。inputtimes=0。 //計數(shù)重置 EA=0。 //關(guān)閉總中斷,其實為了關(guān)閉蜂鳴器 LCD_Clear()。 LCD_Write_String(0,0,Input Password:)。 //寫入第二行信息,提示輸入密碼 }} /**/
點擊復(fù)制文檔內(nèi)容
環(huán)評公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1