久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1953|回復: 0
打印 上一主題 下一主題
收起左側

用24C04與1602LCD設計 單片機電子密碼鎖程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:482473 發表于 2022-3-27 16:02 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
//改動的主要是main函數中while循環內的代碼.
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
   uchar i = 0;
   uchar IIC_Password[10];
   uchar IS_Valid_User = 0;
   P0 = 0xFF;     
   P1 = 0xFF;
   P2 = 0xFF;  


   TMOD = 0x02;                     //T0設置為8位自動重裝模式
   TH0 = 175;                  
   TL0 = 175;
   TR0 = 1;                         //啟動T0


   DelayMS(10);               
   LCD_Init();                      //初始化LCD  
   
   IIC_24C04_Init();                //初始化24C04  
   
   Display_String(Title_Text,0x00); //在第1行顯示標題
   
   //24C04的內容已由初始化BIN文件導入
   //將24C04中預先寫入的密碼讀入pass
   RecString(0xa0, 0 , IIC_Password, 6);   
   IIC_Password[6] = '\0';


   while(1)
   {
      P1 = 0xF0;
      if(P1 != 0xF0) KeyNo = Keys_Scan();  //掃描鍵盤獲取鍵序號KeyNo

      switch ( KeyNo )
      {
           case 0:  case 1: case 2: case 3: case 4:
           case 5:  case 6: case 7: case 8: case 9:
                        
                   if ( i<= 5 )             //密碼限制在6位以內
                   {
                        //如果i為0則執行一次清屏
                        if (i ==0) Display_String("                ",0x40);
                    
                        UserPassword[ i] = KeyNo + '0';[ i]
                        UserPassword[i+1] = '\0';
              
                        DSY_BUFFER[ i] = '*';[ i]
                        DSY_BUFFER[i+1] = '\0';
                    
                        Display_String(DSY_BUFFER,0x40);
                     
                        i++;
                    }
                    break;
               
           case 10: //按A鍵開鎖
                    if (strcmp(UserPassword,IIC_Password) == 0)
                    {
                       LED_OPEN = 0;  //點亮LED
                       Clear_Password();
                       Display_String("Unlock OK!      ",0x40);
                       IS_Valid_User = 1;
                    }
                    else
                    {
                       LED_OPEN =1;   //關閉LED
                       Clear_Password();
                       Display_String("ERROR !         ",0x40);
                       IS_Valid_User = 0;
                    }
                    i = 0;
                    break;
                    
           case 11: //按B鍵上鎖
                    LED_OPEN =1;   
                    Clear_Password();
                    Display_String(Title_Text,0x00);
                    Display_String("                ",0x40);
                    i = 0;                        
                    IS_Valid_User = 0;               
                    break;
                                   
           case 12: //按C鍵設置新密碼
                    //如果是合法用戶則提示輸入新密碼
                    if ( !IS_Valid_User ) Display_String("No rights !",0x40);
                    else
                    {
                       i = 0;
                       Display_String("New Password:   ",0x00);
                       Display_String("                ",0x40);
                     }
           
                    break;                        
                    
           case 13: //按D鍵保存新密碼
                    if ( !IS_Valid_User ) Display_String("No rights !",0x40);
                    else
                    {
                       SendString(0xa0, 0 , UserPassword, 6);
                       
                       //重新讀入剛寫的密碼
                       RecString(0xa0, 0 , IIC_Password, 6);   
                       IIC_Password[6] = '\0';                           
                       
                       i = 0;
                       Display_String(Title_Text,0x00);
                       Display_String("Password Saved! ",0x40);
                     }               
                    
                    break;                        
      
           case 14: //按E鍵消除所有輸入
                    i = 0;
                    Clear_Password();
                    Display_String("                ",0x40);            
       }

       Beep();         
       DelayMS(100);
       P1= 0xF0;
       while (P1 != 0xF0);    //如果有鍵未釋放則等待
       while (P1 == 0xF0);    //如果沒有再次按下按鍵則等待
   }
}

評分

參與人數 1黑幣 +10 收起 理由
admin + 10 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂1 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久激情av | 日本福利一区 | 久草精品视频 | 日本一区二区电影 | 91久久精品视频 | 美女激情av| av在线免费不卡 | 国产欧美精品区一区二区三区 | 麻豆国产一区二区三区四区 | 国产中文字幕网 | 欧美a区| 成人黄色电影在线观看 | 免费观看一级特黄欧美大片 | 免费观看一级特黄欧美大片 | 最新中文字幕在线 | 在线观看中文字幕 | 一级看片| 国产一区二区三区在线 | 黄色一级特级片 | 午夜视频精品 | 欧美最猛黑人xxxx黑人 | 亚洲成人免费av | 欧美精品电影一区 | 国产成人精品一区二 | 一二三区av | 亚洲国产精品va在线看黑人 | 欧美精品一区二区三区蜜桃视频 | 久久久久久九九九九 | 龙珠z在线观看 | 中文字幕一区二区三区四区五区 | 91免费在线视频 | 丁香婷婷久久久综合精品国产 | 久久成人一区 | 国产片一区二区三区 | 国产精品日日夜夜 | 亚洲国产免费 | 日日日视频 | 亚洲成av人片在线观看 | 亚洲二区视频 | 日韩免费网站 | 日韩国产在线 |