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

正文內(nèi)容

基于51單片機(jī)的簡(jiǎn)易電子密碼鎖畢業(yè)設(shè)計(jì)課程設(shè)計(jì)【最新】-在線瀏覽

2025-07-25 01:07本頁(yè)面
  

【正文】 時(shí){ uchar i。i125。} }}void Nop(void) //空操作{ _nop_()。 _nop_()。}/*起始條件*/void Start(void){ Sda=1。 Nop()。 Nop()。 Scl=1。 Sda=1。}/*應(yīng)答位*/void Ack(void){ Sda=0。 Scl=1。 Scl=0。 Nop()。 Nop()。} /*發(fā)送數(shù)據(jù)子程序,Data為要求發(fā)送的數(shù)據(jù)*/void Send(uchar Data){ uchar BitCounter=8。 do { temp=Data。 Nop()。0x80)==0x80) Sda=1。 Scl=1。 Data=temp。 } while(BitCounter)。}/*讀一字節(jié)的數(shù)據(jù),并返回該字節(jié)值*/uchar Read(void){ uchar temp=0。 uchar BitCounter=8。 do{ Scl=0。 Scl=1。 if(Sda) temp=temp|0x01。0xfe。 temp=temp1。 } while(BitCounter)。 }void WrToROM(uchar Data[],uchar Address,uchar Num){ uchar i。 PData=Data。iNum。 Send(0xa0)。 Send(Address+i)。 Send(*(PData+i))。 Stop()。 }}void RdFromROM(uchar Data[],uchar Address,uchar Num){ uchar i。 PData=Data。iNum。 Send(0xa0)。 Send(Address+i)。 Start()。 Ack()。 Scl=0。 Stop()。 for(x=xms。x) for(y=110。y)。//數(shù)據(jù)/指令選擇置為指令 lcd1602_rw=0。//送入數(shù)據(jù) delay(1)。//拉高使能端,為制造有效的下降沿做準(zhǔn)備 delay(1)。//en由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令}//寫(xiě)數(shù)據(jù)write_1602dat(uchar dat)//***液晶寫(xiě)入數(shù)據(jù)函數(shù)****{ lcd1602_rs=1。 //讀寫(xiě)選擇置為寫(xiě) P0=dat。 lcd1602_en=1。 lcd1602_en=0。//設(shè)置液晶工作模式,意思:16*2行顯示,5*7點(diǎn)陣,8位數(shù)據(jù) write_1602(0x0c)。//整屏不移動(dòng),光標(biāo)自動(dòng)右移 write_1602(0x01)。 switch(m) { case (0x18): k=1。 case (0x28): k=2。 case (0x48): k=3。 case (0x88): k=39。break。break。break。break。B39。 case (0x12): k=7。 case (0x22): k=8。 case (0x42): k=9。 case (0x82): k=39。break。*39。 case (0x21): k=0。 case (0x41): k=39。break。D39。 } return(k)。 P1=0xf0。0xf0)!=0xf0) { Delay5Ms()。 if((P1amp。 //確定行線 i=0。 //精確定位 while(i4) { if((P1amp。0xff)。 //已定位后提前退出 } else { i++。 } } } else { return 0。0xf0)!=0xf0)。 //行線與列線組合后返回 } else return 0。 Delay5Ms()。}//========================二聲提示音,表示操作成功========================void TwoAlam(void){ ALAM=0。 ALAM=1。 ALAM=0。 ALAM=1。 Delay5Ms()。 Delay5Ms()。 Delay5Ms()。 Delay5Ms()。 Delay5Ms()。}//=====================顯示輸入的N個(gè)數(shù)字,用H代替以便隱藏============================void DisplayOne(void){// DisplayOneChar(9+N,1,39。)。 write_1602dat(39。)。 if(pass==1) { //DisplayListChar(0,1,LockOpen)。 for(i=0。i++) { write_1602dat(LockOpen[i])。 write_1602(er)。i16。 } } else { //DisplayListChar(0,1,start_line)。 for(i=0。i++) { write_1602dat(start_line[i])。 if(CorrectCont==1) { //DisplayListChar(0,0,Input)。 for(i=0。i++) { write_1602dat(Input[i])。 unsigned char j。 DisplayChar()。 } else { if(ReInputEn==1) { if(N==6) { ReInputCont++。i6。 else { //DisplayListChar(0,1,Error)。 for(j=0。j++) { write_1602dat(Error[j])。 //錯(cuò)誤提示 pass=0。 //關(guān)閉重置功能, ReInputCont=0。 break。 write_1602(er)。j16。 } TwoAlam()。 //將新密碼寫(xiě)入24C02存儲(chǔ) ReInputEn=0。 CorrectCont=0。 //DisplayListChar(0, 1, again)。 for(j=0。j++) { write_1602dat(again[j])。i6。 //將第一次輸入的數(shù)據(jù)暫存起來(lái) } } N=0。 { ALAM=~ALAM。 }}//=======================取消所有操作============================================void Cancel(void){ unsigned char i。 //DisplayListChar(0, 1, start_line)。 for(j=0。j++) { write_1602dat(start_line[j])。 //提示音 for(i=0。i++) { InputData[i]=0。 //關(guān)閉鎖 ALAM=1。 //操作標(biāo)志位清零 pass=0。 //重置輸入充許標(biāo)志清零 ErrorCont=0。 //密碼正確輸入次數(shù)清零 ReInputCont=0。 s3_keydown=0。 N=0。 RdFromROM(CurrentPassword,0,6)。i6。 } else { ErrorCont++。 for(i=0。i++) { write_1602dat(Error[i])。 while(1)。 //開(kāi)啟定時(shí) key_disable=1。 break。 if(CorrectCont==1) //正確輸入計(jì)數(shù),當(dāng)只有一次正確輸入時(shí),開(kāi)鎖, { //DisplayListChar(0,1,LockOpen)。 for(j=0。j++) { write_1602dat(LockOpen[j])。 //操作成功提示音 KEY=0。 //置正確標(biāo)志位 TR0=1。 //開(kāi)鎖指示燈亮 for(j=0。j++) //將輸入清除 { InputData[i]=0。 write_1602(er)。j16。 } TwoAlam()。 //允許重置密碼輸入 CorrectCont=0。amp。amp。amp。amp。amp。 //強(qiáng)制將初始密碼寫(xiě)入24C02存儲(chǔ) //DisplayListChar(0,1,initword)。 for(j=0。j++) { write_1602dat(initword[j])。 Delay400Ms()。 N=0。 write_1602(er)。j16。 } ThreeAlam()。 } } } else //當(dāng)已經(jīng)開(kāi)啟重置密碼功能時(shí),而按下開(kāi)鎖鍵, { //DisplayListChar(0,1,Er_try)。 for(j=0。j++) { write_1602dat(Er_try[j])。 } } else { //DisplayListChar(0,1,Error)。 for(j=0。j++) { write_1602dat(Error[j])。 //錯(cuò)誤提示音 pass=0。 //將輸入數(shù)據(jù)計(jì)數(shù)器清零,為下一次輸入作準(zhǔn)備 operation=1。 unsigned char i,j。 TMOD=0x11。 TH0=0x3C。 ET0=1。 Delay400Ms()。 //LCD初始化 write_1602(yi)。i16。//向液晶屏寫(xiě)日歷顯示的固定符號(hào)部分 } write_1602(er)。i16。//寫(xiě)顯示時(shí)間固定符號(hào),兩個(gè)冒號(hào) } write_1602(er+9)。 //設(shè)置光標(biāo)為閃爍 Delay5Ms()。 //初始化數(shù)據(jù)輸入位數(shù) while(1) { if(key_disable==1) Alam_KeyUnable()。 //關(guān)報(bào)警 KEY=keynum()。 } else { NUM=coding(KEY)。A39。 break。B39。 break。C39。 break。D39。 break。*39。 break。39。 break。 write_1602(er)。i16。 } operation=0。 { OneAlam()。*39。 for(j=0。j++) { write_1602(er+6+j)。*39。 } InputData[N]=NUM。 } else //輸入數(shù)據(jù)位數(shù)大于6后,忽略輸入 { N=6。 } } } } } } }}//*********************************中斷服務(wù)函數(shù)**************************************void time0_int(void) interrupt 1 { TL0=0xB0。 //TR0=1。 if(countt0==20) { countt0=0。 if(pass==1) { if(second==1) { open_led=1。 //關(guān)定時(shí)器 TL0=0xB0。 seco
點(diǎn)擊復(fù)制文檔內(nèi)容
公司管理相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1