欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開始

搜索
查看: 2412|回復(fù): 2
打印 上一主題 下一主題
收起左側(cè)

基于51單片機(jī)的電子密碼鎖程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:860769 發(fā)表于 2020-12-15 17:38 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
      
本系統(tǒng)采用以單片機(jī)為核心元件的控制方案。由于單片機(jī)種類繁多,各種型號(hào)都有其一定的應(yīng)用環(huán)境,因此在選用時(shí)要多加比較,合理選擇,以獲得最佳的性價(jià)比。一般來(lái)說(shuō)在選取單片機(jī)時(shí)從下面幾個(gè)方面考慮:性能、存儲(chǔ)器、運(yùn)行速度、I/O口、定時(shí)/計(jì)數(shù)器、串行接口、模擬電路功能、工作電壓、功耗、封裝形式、抗干擾性、保密性,除了以上的一些方面外,還有一些最基本的條件,比如:中斷源的數(shù)量和優(yōu)先級(jí)、工作溫度范圍、有沒(méi)有低電壓檢測(cè)功能、單片機(jī)內(nèi)有無(wú)時(shí)鐘振蕩器、有無(wú)上電復(fù)位功能等。在開發(fā)過(guò)程中還要考慮開發(fā)工具、編程器、開發(fā)成本、開發(fā)人員的適應(yīng)性、技術(shù)支持和服務(wù)等因素。基于以上因素本設(shè)計(jì)選用單片機(jī)STC89C516作為本設(shè)計(jì)的核心元件,利用單片機(jī)靈活的編程設(shè)計(jì)和豐富的I/O端口,及其控制的準(zhǔn)確性,實(shí)現(xiàn)基本的密碼鎖功能。在單片機(jī)的外圍電路外接輸入鍵盤用于密碼的輸入和一些功能的控制,外接AT24C02芯片用于密碼的存儲(chǔ),外接LCD1602顯示器用于顯示作用。
二、 硬件設(shè)計(jì)硬件連接如下:      
           P1 -->矩陣鍵盤
                        P20--> EEPROM模塊SDA
                        P21--> EEPROM模塊SCL
                        P22-->繼電器模塊J15
其他管腳說(shuō)明:
P0               LCD1602_DATAPINS
P2^7          LCD1602_E;
P2^5                LCD1602_RW;
P2^6                LCD1602_RS;
P1       矩陣鍵盤
P2^1;  存儲(chǔ)模塊  24C02 SCL
P2^0   存儲(chǔ)模塊 24C02 SDA
2.1 主控芯片
2.2存儲(chǔ)模塊24c02
存儲(chǔ)模塊的設(shè)計(jì)是把WP引腳接到GND上因?yàn)橐屍骷M(jìn)行正常的讀/寫操作,把SDA串行數(shù)據(jù)/地址與單片機(jī)的P2.0引腳使AT24C02與單片機(jī)進(jìn)行所有數(shù)據(jù)的發(fā)送或接收,把SCL串行時(shí)鐘引腳與單片機(jī)的P2.1引腳相連接,讓單片機(jī)產(chǎn)生一個(gè)AT24C02工作的時(shí)鐘,使其正常的工作。存儲(chǔ)模塊電路如圖所示。
AT24C02的特點(diǎn):數(shù)據(jù)線看門狗定時(shí)器;可編程復(fù)位門級(jí);高數(shù)據(jù)傳輸速率400kHz速率和I2C總線;2.7V至7V電壓;低功耗CMOS工藝兼容;16 bespate寫緩沖區(qū);反撇寫保護(hù)芯片;高低電平復(fù)位信號(hào)輸出;100萬(wàn)擦除周期;保存長(zhǎng)達(dá)100年。
2.3顯示模塊LCD1602
如果想要了解系統(tǒng)的運(yùn)行與工作狀態(tài)顯示器是不可缺少的,顯示器是一個(gè)典型的輸出設(shè)備并且它的實(shí)際應(yīng)用也是極為廣泛的,幾乎所有的電子產(chǎn)品都會(huì)使用到顯示器其差別僅在于顯示器的結(jié)構(gòu)類型不同而已。最簡(jiǎn)單的顯示器可以是LED發(fā)光二極管或者數(shù)碼管,它可以給出一個(gè)簡(jiǎn)單的開關(guān)信息或者數(shù)字顯示,而需要顯示復(fù)雜的完整的信息上述的器件就不能勝任,而液晶的出現(xiàn)就很好的解決了這一問(wèn)題,它不僅顯示內(nèi)容豐富而且好節(jié)約了單片機(jī)的管腳資源。本設(shè)計(jì)采用的是液晶顯示LCD1602。LCD1602內(nèi)部的字符已經(jīng)儲(chǔ)存了不同的字符形式,每一個(gè)字符都有一個(gè)固定的代碼,其代碼與標(biāo)準(zhǔn)的ASCII字符代碼一致。因此只要寫入顯示字符的ASCII碼即可,這種標(biāo)準(zhǔn)化的設(shè)計(jì)給使用帶來(lái)很大的方便。比如英文字母“C”的ASCII代碼是01000011(43H),顯示時(shí)單片機(jī)往液晶模塊寫入顯示指令,模塊就會(huì)把地址為43H中的點(diǎn)陣字符圖形識(shí)別出,并會(huì)在液晶屏相應(yīng)位置上看到字母“C”。
目前市場(chǎng)字符液晶絕大多數(shù)是基于HD44780的液晶芯片,控制原理是完全相同的,因此基于HD44780的寫控制程序可以很容易地應(yīng)用到市場(chǎng)上大部分的字符液晶。LCD1602液晶的幾個(gè)特性:+5V電壓、對(duì)比度可調(diào)、內(nèi)含復(fù)位電路;提供各種控制命令,如:清屏、字符閃爍、光標(biāo)閃爍、顯示移位等多種功能;有80字節(jié)顯示數(shù)據(jù)存儲(chǔ)器DDRAM;內(nèi)建有160個(gè)5X7點(diǎn)陣的字型的字符發(fā)生器CGROM 8個(gè)可由用戶自定義的5X7的字符發(fā)生器CGRAM。1602的引腳如下所示:
LCD1602采用標(biāo)準(zhǔn)的16腳接口,其中VSS為地電源,VDD接5V正電源,VEE為液晶顯示器。RS為寄存器選擇,高電平時(shí)選擇數(shù)據(jù)寄存器、低電平時(shí)選擇指令寄存器。RW為讀寫信號(hào)線,高電平1時(shí)進(jìn)行讀操作,低電平0時(shí)進(jìn)行寫操作。E端為使能端。D0~D7為8位雙向數(shù)據(jù)線。
2.4鍵盤輸入模塊
鍵盤是單片機(jī)十分重要的輸入設(shè)備,是實(shí)現(xiàn)人機(jī)對(duì)話的紐帶。鍵盤是由一組規(guī)則排列的按鍵組成,一個(gè)按鍵實(shí)際上就是一個(gè)開關(guān)元件,即鍵盤是一組規(guī)則排列的開關(guān)。根據(jù)按鍵與單片機(jī)的連接方式不同,按鍵主要分為獨(dú)立式按鍵和矩陣式按鍵 ,有了這些按鍵,對(duì)單片機(jī)的控制就方便多了。
本設(shè)計(jì)按鍵數(shù)量較多,所以采用矩陣式按鍵以節(jié)省I/O口線。將16個(gè)按鍵分為4排4列排列好,下圖是矩陣鍵盤硬件結(jié)構(gòu)。當(dāng)有一個(gè)鍵按下時(shí),通過(guò)某一邊引腳賦低電平,掃描全部引腳看是否與最初的賦值一樣,不一樣則根據(jù)相應(yīng)的算法(通過(guò)改變后的值與初始值相或,根據(jù)結(jié)果賦值)確定是哪個(gè)鍵按下。
2.5開鎖電路
開鎖電路的功能是當(dāng)輸入正確的密碼后密碼鎖將被鎖定,既開鎖。當(dāng)單片機(jī)P2.2引腳發(fā)出信號(hào)經(jīng)三極管放大后,觸動(dòng)電磁閥即會(huì)把鎖打開。一旦輸入密碼,單片機(jī)便會(huì)與初始密碼進(jìn)行比對(duì),如果密碼輸入3次都與原始密碼不相符即會(huì)報(bào)警。其原理圖如圖3-11所示

單片機(jī)源程序如下:
  1. /**************************************************************************************
  2. *                              電子密碼鎖                                                                                                  *
  3. 實(shí)現(xiàn)現(xiàn)象:下載程序輸入正確密碼,會(huì)聽到繼電器吸合的聲音
  4. 硬件連接:
  5.            P1 -->矩陣鍵盤
  6.                                          P20--> EEPROM模塊SDA
  7.                                          P21--> EEPROM模塊SCL
  8.                                          P22-->繼電器模塊J15
  9.                                          
  10.                                          矩陣鍵盤:
  11.                                          0      1      2       3
  12.                                          
  13.                                          4      5      6       7
  14.                                          
  15.                                          8      9    返回    確定
  16.                                          
  17.                                          $      $      $       $
  18. 注意事項(xiàng):無(wú)                                                                                                                                                                  
  19. ***************************************************************************************/

  20. #include "reg52.h"                       //此文件中定義了單片機(jī)的一些特殊功能寄存器
  21. #include "lcd.h"
  22. #include "key.h"
  23. #include "i2c.h"

  24. #define u16 unsigned int           //對(duì)數(shù)據(jù)類型進(jìn)行聲明定義
  25. #define u8 unsigned char

  26. sbit AS=P2^2;               //繼電器

  27. /*****************************************************************************/

  28. /*****************************************************************************/
  29. u8 pw_num,Error_Num,PassWord_Length=6;
  30. u8 PASSWORD[]={6,6,6,6,6,6,6,6,6,6};
  31. u8 INPUT_PW_Tab[10];
  32. u8 key_num,Step,Step5,Load_first_flag=0;
  33. /*****************************************************************************/

  34. /*******************************************************************************/
  35. bit result_flag,Input_suc_flag;
  36. bit List1=0;
  37. /*****************************************************************************/

  38. /*******************************************************************************/
  39. void Step_0();
  40. void Step_1();
  41. void Step_2();
  42. void Step_3();
  43. void Step_4();
  44. void Step_5();
  45.                  void Step5_0();
  46.            void Step5_1();
  47.            void Step5_2();
  48.            void Step5_3();
  49.            void Step5_4();
  50.            void Step5_5();
  51. void Step_6();
  52. /********************************************************************************/

  53. /*******************************************************************************/
  54. void CipherComparison();
  55. void input_password(bit m);
  56. void Read_Password();



  57. /*******************************************************************************
  58. * 函 數(shù) 名       : main
  59. * 函數(shù)功能                 : 主函數(shù)
  60. * 輸    入       : 無(wú)
  61. * 輸    出             : 無(wú)
  62. *******************************************************************************/
  63. void main()
  64. {       
  65.         u8 data1,a;
  66.         //        ShowString(0x00," Pechin Science ");  
  67.         //        At24c02Write(0,0);                                                //開機(jī)顯示密碼
  68.         LcdWriteCom(0x01);  //清屏
  69.         for(data1=0;data1<PassWord_Length+2;data1++)
  70.         {
  71.                 a=At24c02Read(data1)+0x30;
  72.                  LcdWriteData(a);       
  73.           delay(1000);       
  74.   }
  75.        
  76.         delay(1000);
  77.         LcdInit();
  78.         delay(1000);
  79.         Step=0;
  80.         Step5=0;
  81.         Error_Num=0x00;
  82.   Read_Password();
  83.        
  84.     //保存 密碼長(zhǎng)度
  85. //                for(j=0;j<10;j++)
  86. //                {
  87. //                        At24c02Write(j,j);
  88. //                        delay(100);       
  89. //                }
  90. //       

  91.        
  92.         while(1)
  93.                                 {       
  94.                                                                 key_num=KeyDown();                   //讀取輸入值

  95.                                                                                 switch(Step)
  96.                                                                                 {
  97.                                                                                                 case 0:
  98.                                                                                                  {Step_0();break;}
  99.                                                                                                 case 1:
  100.                                                                                                  {Step_1();break;}
  101.                                                                                                 case 2:
  102.                                                                                                  {Step_2();break;}
  103.                                                                                                 case 3:
  104.                                                                                                  {Step_3();break;}       
  105.                                                                                                 case 4:
  106.                                                                                                  {Step_4();break;}       
  107.                                                                                                 case 5:
  108.                                                                                                  {Step_5();break;}       
  109.                                                                                                 case 6:
  110.                                                                                                  {Step_6();break;}       
  111.                                                                                                   
  112.                                                                                 }

  113.                                  }                               
  114. }

  115. /*****************************************************************************/

  116. /*******************************************************************************/
  117. void Step_0()
  118. {
  119.                                         LcdInit();
  120.                                         ShowString(0x00," Pechin Science ");                           //第一行顯示Pechin Science
  121.                 ShowString(0x10,"    WELCOME!    ");                           // 第二行顯示 WELCOME!  
  122.                                         while(KeyDown()==0xff)Step=1;                                  //  有按鍵按下進(jìn)入下一步  
  123. }
  124. /*****************************************************************************/

  125. /*******************************************************************************/
  126. void Step_1()
  127. {
  128.                 LcdWriteCom(0x01);                                           //清屏
  129.           ShowString(0x00,"Unlock");
  130.                 ShowString(0x0f,"<");                                               //1602第一行顯示unlock
  131.           ShowString(0x10,"Change Password");
  132.                 ShowString(0x1f," ");                                                // 1602第二行顯示Change Password                                                                                   
  133.           Step=2;                                                              //
  134. }
  135. /*****************************************************************************/

  136. /*******************************************************************************/
  137. void Step_2()
  138. {

  139.         if(key_num!=0x0b)  
  140.                 {
  141.                                         if((key_num==0x01) ||( key_num==0x09))                    //1鍵或9鍵按下
  142.                                         {
  143.                                                                 List1=~List1;                           //Change Password
  144.                                                                 if(List1==0)
  145.                                                                         {                                                  
  146.                                                                         ShowString(0x0f,"<");                           // Unlock            <
  147.                                                                         ShowString(0x1f," ");                                  // Change Password  
  148.                                                                 }
  149.                                                                 else
  150.                                                                 {
  151.                                                                         ShowString(0x0f," ");                           // Unlock            
  152.                                                                         ShowString(0x1f,"<");                                  // Change Password   <
  153.                                                                 }
  154.                                         }
  155.                 }
  156.         else                                                           //確認(rèn)鍵按下
  157.         {
  158.                                         if(List1==0){Step=3;}
  159.                                         else        {Step=5;List1=0;}
  160.         }
  161. }
  162. /*****************************************************************************/

  163. /*******************************************************************************/
  164. void Step_3()                                             //
  165. {
  166.                                                                 Step=4;
  167.                       pw_num=0;
  168.                                                                 LcdInit();
  169.                                                                 ShowString(0x00,"Pass Word:  ");
  170.                
  171.                                                
  172. }
  173. /*****************************************************************************/

  174. /*******************************************************************************/
  175. void Step_4()                                                
  176. {
  177.            input_password(0);                                              //輸入密碼并以*顯示
  178.            if(Input_suc_flag==1){Step=6;}                                  //密碼輸入完成進(jìn)入下一步
  179.       Input_suc_flag=0;                                              //清除密碼輸入完成標(biāo)志
  180. }
  181. /*****************************************************************************/

  182. /*******************************************************************************/
  183. void Step_5()                                                        //修改密碼
  184. {
  185.         switch(Step5)
  186.         {
  187.                
  188.                         case 0: {Step5_0();}  break;
  189.                         case 1: {Step5_1();}  break;
  190.                         case 2: {Step5_2();}  break;
  191.                         case 3: {Step5_3();}  break;
  192.                   case 4: {Step5_4();}  break;
  193.                         case 5:        {Step5_5();}        break;

  194.         }
  195. }
  196. /*****************************************************************************/

  197. /*******************************************************************************/
  198. void Step_6()
  199. {
  200.         CipherComparison();                                //密碼比對(duì)
  201.         if(result_flag==1)                                 //密碼正確
  202.                 {
  203.                                 LcdInit();
  204.                                 ShowString(0x00,"    WELCOME!");
  205.                                 AS=0;                                         //開繼電器
  206.                                 delay(60000);
  207.                                 delay(60000);
  208.                                 AS=1;                                                //關(guān)繼電器
  209.                 }
  210.         else                                                //密碼錯(cuò)誤
  211.                 {
  212.                                 LcdInit();
  213.                                 ShowString(0x00,"Error 01!");
  214.                 }
  215.                
  216.                 Step=0;
  217.        

  218. }

  219. /****************************************************************************************
  220. 密碼輸入函數(shù)
  221. 密碼長(zhǎng)度:pw_num
  222. 密碼輸入完成標(biāo)志:Input_suc_flag
  223. *****************************************************************************************/

  224. void Step5_0()                 
  225. {
  226.                 LcdWriteCom(0x01);  //清屏
  227.           ShowString (0x00,"Input PassWord:");     //1602顯示:輸入密碼
  228.           Step5=1;
  229.           pw_num=0;
  230. }
  231. void Step5_1()               
  232. {
  233.                 input_password(0);                  //   輸入密碼并以*顯示
  234.                 if(Input_suc_flag==1)               //密碼輸入完成
  235.                         {
  236.                                                         Step5=2;                  //
  237.                                                         Input_suc_flag=0;         //清除密碼輸入完成標(biāo)志
  238.                         }
  239. }
  240. void Step5_2()                //
  241. {
  242.      CipherComparison();                //密碼比對(duì)
  243.            Step5=3;
  244. }
  245. void Step5_3()                //
  246. {
  247.     if(result_flag==0)         //        密碼錯(cuò)誤
  248.                                 {
  249.                                                         if(Error_Num<3)             //輸出錯(cuò)誤次數(shù)小于3
  250.                                                         {
  251.                                                                 Error_Num++;
  252.                                                                 LcdInit();
  253.                                                                 ShowString (0x00,"Error 01");
  254.                                                                 delay(20000);
  255.                                                                 Step5=0;
  256.                                                         }
  257.                                                         else                          //密碼錯(cuò)誤次數(shù)大于3
  258.                                                         {
  259.                                                                 Error_Num=0;
  260.                                                                 Step=0;
  261.                                                         }
  262.                                        
  263.                                 }
  264.                 else                                                                                                     //密碼正確
  265.                                 {
  266.                                         LcdInit();
  267.                                         ShowString (0x00,"New PassWord:");       
  268.                                         pw_num=0;
  269.                                         Step5=4;
  270.                                 }
  271.                        
  272.                                        
  273. }
  274. void Step5_4()
  275. {
  276.                 input_password(1);                                                    //輸入密碼并顯示
  277.                 if(Input_suc_flag==1)                  //輸入完成
  278.                         {
  279.                                 Step5=5;
  280.                                 Input_suc_flag=0;
  281.                                 LcdWriteCom(0x01);  //清屏
  282.               ShowString (0x00,"      OK!");
  283.                         }
  284. }
  285. void Step5_5()
  286. {
  287.         unsigned char j;
  288.        
  289.         PassWord_Length=pw_num;                         //讀取輸入密碼長(zhǎng)度
  290.         At24c02Write(0,Load_first_flag);        
  291.   delay(100);       
  292.         At24c02Write(1,PassWord_Length);                //保存 密碼長(zhǎng)度
  293.         delay(100);
  294.         for(j=0;j<PassWord_Length;j++)         
  295.         {
  296.                 PASSWORD[j]=INPUT_PW_Tab[j];                                //讀取密碼
  297.                 At24c02Write(j+2,INPUT_PW_Tab[j]);                          //保存密碼至EEPROM
  298.                 delay(100);
  299. }
  300.         Step5=0;
  301.         Step=0;
  302. }


  303. void Read_Password()
  304. {
  305.         unsigned char j;

  306.         Load_first_flag=At24c02Read(0x00);
  307.         if(Load_first_flag==0)                          //初次運(yùn)行
  308.         {
  309.        
  310.                 Load_first_flag=1;
  311.                 At24c02Write(0,0x01);
  312.                 delay(100);
  313.                 At24c02Write(1,0x06);           //寫默認(rèn)密碼長(zhǎng)度6至EEPROM
  314.                 delay(100);
  315.                 for(j=0;j<PassWord_Length;j++)
  316.                 {
  317.                         At24c02Write(j+2,8);              //寫默認(rèn)密碼888888至EEPROM
  318.                         PASSWORD[j]=INPUT_PW_Tab[j];     //讀密碼
  319.                         delay(100);
  320.                 }
  321.         }
  322.        
  323.         Load_first_flag=At24c02Read(0x00);
  324.         PassWord_Length=At24c02Read(0x01);  //讀取密碼長(zhǎng)度
  325.         for(j=0;j<PassWord_Length;j++)       //讀取密碼
  326.         {
  327.                 PASSWORD[j]=At24c02Read(j+2);
  328.         }
  329.        
  330. }
  331. void input_password(bit m)
  332. {
  333.         unsigned char j;
  334.         if(key_num!=0x0b)                                      //ok鍵沒(méi)有按下
  335.                 {
  336.                                         if(key_num<0x0a)                               //1-9按下
  337.                                         {
  338.                                                 INPUT_PW_Tab[pw_num]=key_num;                //保存至輸入密碼數(shù)組
  339.                                                 pw_num=pw_num+1;                              //密碼長(zhǎng)度+1
  340.                                                
  341.                                                  LcdWriteCom(0xc0);
  342.                                                  for(j=0;j<pw_num;j++)
  343.                                                                 {
  344.                                                                                                 if(m==0) {LcdWriteData('*');        }                        //密碼隱藏
  345.                                                                                                 else     {LcdWriteData(INPUT_PW_Tab[j]+0x30);}         //顯示密碼
  346.                                                                 }
  347.                                                                                        
  348.                                         }
  349.                                         if(key_num==0x0a)                              //返回鍵按下
  350.                                         {
  351.                                                 if(pw_num!=0) {pw_num=pw_num-1;}
  352.                                                 else          {Step=0;}
  353.                                                
  354.                                                          
  355.                                                 // ShowString (0x00,"Pass Word:");  
  356.                     LcdWriteCom(0xc0);                                               
  357.                                                                                 for(j=0;j<pw_num;j++)
  358.                                                                                         {
  359.                                                                                                                 if(m==0) {LcdWriteData('*');        }                   //密碼隱藏
  360.                                                                                                                 else     {LcdWriteData(INPUT_PW_Tab[j]+0x30);}    //顯示密碼       
  361.                                                                                    }
  362.                                                                                         LcdWriteData(' ');
  363.                                         }
  364.                 }
  365.         else                          //ok鍵按下
  366.           {
  367.                         if(pw_num==0)          
  368.                                         {
  369.                                                         Step=0;
  370.                                                   LcdWriteCom(0x01);
  371.                                                   ShowString (0x00,"Error 02!");
  372.                                                         delay(10000);
  373.                                         }
  374.                
  375.                         else{               
  376.                                                         Input_suc_flag=1;
  377.                                         }
  378.                                          //AS=0;                       
  379.                 }               
  380. }
  381. /*******************************************************
  382.                 密碼比對(duì)
  383. ********************************************************/
  384. void CipherComparison()
  385. {
  386.         u8 i,j=0;

  387.         if(PassWord_Length==pw_num)                       //密碼長(zhǎng)度比對(duì)
  388.         {
  389.                 for(i=0;i<PassWord_Length;i++)                  //密碼比對(duì)
  390.                 {
  391.                        
  392.                                 if(PASSWORD[i]!=INPUT_PW_Tab[i])
  393.                                         {
  394.                                                 result_flag=0;break;                     //密碼錯(cuò)誤
  395.                                         }
  396.                                 else
  397.                                         {
  398.                                                 result_flag=1;                          //密碼正確
  399.                                         }
  400.                                           INPUT_PW_Tab[i]=0XFF;                   //清除密碼緩存數(shù)組
  401.                 }
  402.         }
  403.         else
  404.         {result_flag=0;}
  405.        
  406. }
復(fù)制代碼

所有程序51hei提供下載:
程序.zip (63.28 KB, 下載次數(shù): 15)



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

使用道具 舉報(bào)

沙發(fā)
ID:865733 發(fā)表于 2020-12-22 19:45 | 只看該作者
51黑論壇里面這個(gè)密碼鎖很多:http://www.raoushi.com/bbs/dpj-22586-1.html
回復(fù)

使用道具 舉報(bào)

板凳
ID:866052 發(fā)表于 2020-12-25 18:55 | 只看該作者
請(qǐng)問(wèn)有軟件設(shè)計(jì)的流程圖嗎
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表