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

正文內(nèi)容

基于單片機(jī)的密碼鎖設(shè)計(jì)畢業(yè)論文-資料下載頁

2025-06-27 19:41本頁面
  

【正文】 Cyc)。}//===================400ms 延時(shí)==============================void Delay400Ms(void){ unsigned char TempCycA = 5。 unsigned int TempCycB。 while(TempCycA) { TempCycB=7269。 while(TempCycB)。 }}25//=============================================================================================//================================24C02========================================================//=============================================================================================void mDelay(uint t) //延時(shí){ uchar i。 while(t) { for(i=0。i125。i++) {。} }} void Nop(void) //空操作{ _nop_()。 _nop_()。 _nop_()。 _nop_()。}/*起始條件*/void Start(void){ Sda=1。 Scl=1。 Nop()。 Sda=0。 Nop()。} /*停止條件*/void Stop(void){ Sda=0。 Scl=1。 Nop()。 Sda=1。 Nop()。26}/*應(yīng)答位*/void Ack(void){Sda=0。Nop()。Scl=1。Nop()。Scl=0。}/*反向應(yīng)答位*/void NoAck(void){ Sda=1。 Nop()。 Scl=1。 Nop()。 Scl=0。} /*發(fā)送數(shù)據(jù)子程序,Data 為要求發(fā)送的數(shù)據(jù)*/void Send(uchar Data){ uchar BitCounter=8。 uchar temp。 do { temp=Data。 Scl=0。 Nop()。 if((tempamp。0x80)==0x80) Sda=1。 else Sda=0。 Scl=1。 temp=Data1。 Data=temp。 BitCounter。 } while(BitCounter)。 Scl=0。}27/*讀一字節(jié)的數(shù)據(jù),并返回該字節(jié)值*/uchar Read(void){ uchar temp=0。uchar temp1=0。uchar BitCounter=8。Sda=1。do{Scl=0。Nop()。Scl=1。Nop()。if(Sda)temp=temp|0x01。elsetemp=tempamp。0xfe。if(BitCounter1){temp1=temp1。temp=temp1。}BitCounter。}while(BitCounter)。return(temp)。}void WrToROM(uchar Data[],uchar Address,uchar Num){ uchar i。 uchar *PData。 PData=Data。 for(i=0。iNum。i++) { Start()。 Send(0xa0)。 Ack()。 Send(Address+i)。 Ack()。 Send(*(PData+i))。 Ack()。 Stop()。 mDelay(20)。 }}28void RdFromROM(uchar Data[],uchar Address,uchar Num){ uchar i。 uchar *PData。 PData=Data。 for(i=0。iNum。i++) { Start()。 Send(0xa0)。 Ack()。 Send(Address+i)。 Ack()。 Start()。 Send(0xa1)。 Ack()。 *(PData+i)=Read()。 Scl=0。 NoAck()。 Stop()。 }}//==================================================================================================//=======================================LCD1602====================================================//==================================================================================================define yi 0x80 //LCD 第一行的初始位置,因?yàn)?LCD1602 字符地址首位 D7 恒定為 1(100000000=80)define er 0x80+0x40 //LCD 第二行初始位置(因?yàn)榈诙械谝粋€(gè)字符位置地址是 0x40)//延時(shí)函數(shù),后面經(jīng)常調(diào)用void delay(uint xms)//延時(shí)函數(shù),有參函數(shù){uint x,y。for(x=xms。x0。x) for(y=110。y0。y)。}//寫指令write_1602(uchar )//****液晶寫入指令函數(shù) ****{lcd1602_rs=0。//數(shù)據(jù)/指令選擇置為指令29lcd1602_rw=0。 //讀寫選擇置為寫P0=。//送入數(shù)據(jù)delay(1)。lcd1602_en=1。//拉高使能端,為制造有效的下降沿做準(zhǔn)備delay(1)。lcd1602_en=0。//en 由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令}//寫數(shù)據(jù)write_1602dat(uchar dat)//***液晶寫入數(shù)據(jù)函數(shù) ****{lcd1602_rs=1。//數(shù)據(jù)/指令選擇置為數(shù)據(jù)lcd1602_rw=0。 //讀寫選擇置為寫P0=dat。//送入數(shù)據(jù)delay(1)。lcd1602_en=1。 //en 置高電平,為制造下降沿做準(zhǔn)備delay(1)。lcd1602_en=0。 //en 由高變低,產(chǎn)生下降沿,液晶執(zhí)行命令}//初始化void lcd_init(void){write_1602(0x38)。//設(shè)置液晶工作模式,意思:16*2 行顯示,5*7 點(diǎn)陣,8 位數(shù)據(jù)write_1602(0x0c)。//開顯示不顯示光標(biāo)write_1602(0x06)。//整屏不移動(dòng),光標(biāo)自動(dòng)右移write_1602(0x01)。//清顯示}//========================================================================================//=========================================================================================//==============將按鍵值編碼為數(shù)值=========================unsigned char coding(unsigned char m) {unsigned char k。switch(m){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。30case (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。}return(k)。}//=====================按鍵檢測(cè)并返回按鍵值===============================unsigned char keynum(void){ 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){ if((P1amp。0xf0)!=0xf0) { col=~(P1amp。0xff)。 //確定列線 break。 //已定位后提前退出 }else { i++。 P1=a[i]。 }}}else {return 0。31}while((P1amp。0xf0)!=0xf0)。 return (row|col)。 //行線與列線組合后返回 } else return 0。 //無鍵按下時(shí)返回 0}//=======================一聲提示音,表示有效輸入========================void OneAlam(void){ALAM=0。Delay5Ms()。 ALAM=1。}//========================二聲提示音,表示操作成功========================void TwoAlam(void){ALAM=0。Delay5Ms()。 ALAM=1。 Delay5Ms()。ALAM=0。Delay5Ms()。 ALAM=1。}//========================三聲提示音,表示錯(cuò)誤========================void ThreeAlam(void){ALAM=0。Delay5Ms()。 ALAM=1。 Delay5Ms()。ALAM=0。Delay5Ms()。 ALAM=1。 Delay5Ms()。ALAM=0。Delay5Ms()。 ALAM=1。}//=====================顯示輸入的 N 個(gè)數(shù)字,用 H 代替以便隱藏============================void DisplayOne(void){// DisplayOneChar(9+N,1,39。*39。)。32write_1602(yi+5+N)。write_1602dat(39。*39。)。}//=======================顯示提示輸入=========================void DisplayChar(void){unsigned char i。if(pass==1){//DisplayListChar(0,1,LockOpen)。write_1602(er)。for(i=0。i16。i++){write_1602dat(LockOpen[i])。}}else{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(void){unsigned char i。if(CorrectCont==1){//DisplayListChar(0,0,Input)。33
點(diǎn)擊復(fù)制文檔內(nèi)容
環(huán)評(píng)公示相關(guān)推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1