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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

單片機六位電子密碼鎖全套設計資料(可接電磁鎖)含源碼,原理圖,仿真等

  [復制鏈接]
跳轉到指定樓層
樓主
ID:321409 發表于 2018-5-3 18:12 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
6位密碼     123123
管理員密碼  520025

電子密碼鎖原理圖如下:


矩陣鍵盤按鍵說明

  1       2       3       確認鍵
  4       5       6       手動關閉鎖
  7       8       9      修改密碼
密碼還原  0     刪除鍵   退出鍵

電子密碼鎖仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


制作出來的電子密碼鎖實物圖:


接電磁鎖說明
產品本身是不帶電磁鎖的,買家可以自己外接也可以和我們聯系購買。如果要接電磁鎖的話,需要外接電磁鎖的電源,我們是用的12V的電磁鎖,外接了12V的直流電源,照片和視頻里面沒有拍出來。
請買家自己要理解的是繼電器只是相當一個開關,只是開和關,上面是沒有電壓和電流的,需要自己外接電磁鎖的電源。

買多少V的電磁鎖就要買多少V的直流電源供電。

根據設定好的密碼,采用4×4鍵盤實現密碼的輸入功能,當密碼輸入正確之后,鎖就打開,如果輸入的密碼不正確,就鎖定按鍵3秒鐘,同時發出報警聲。
(1)單片機型號可選STC89C52。
(2)6位密碼的設定在程序中完成。
(3)密碼的輸入采用4×4鍵盤實現,輸入6位數字后,按回車鍵結束。
(4)若輸入的密碼正確,鎖打開,同時用發光二極管亮1秒作為提示。
(5)報警可采用蜂鳴器或揚聲器。

四、設計思路與方案
1.系統框圖

2. 組成部分
電子密碼鎖的設計主要由三部分組成:4×4矩陣鍵盤接口電路、顯示電路、報警電路。
(1)4×4矩陣鍵盤接口電路:設置6位密碼,通過鍵盤輸入密碼,若密碼正確,則鎖就打開。密碼可以由用戶自己在程序中修改設定(只支持6位密碼)。
(2)顯示電路:當密碼輸入時,按下一個數字鍵, 一個“-”就顯示在最右邊的數碼管上,同時將先前輸入的所有“-”向左移動一位。
(3)報警電路:由蜂鳴器和一個發光二極管組成。當密碼輸入正確時,發光二極管亮1秒鐘。若密碼輸入錯誤,則蜂鳴器發出報警聲提示,同時鍵盤鎖定3秒鐘。
3.設計的關鍵問題
電子密碼鎖設計的關鍵問題是實現密碼的輸入、清除、確認等功能:
(1) 密碼輸入功能:按下一個數字鍵,一個“-”就顯示在最右邊的數碼管上,同時將先前輸入的所有“-”向左移動一位。
(2)清除功能:當按下清除鍵時,清除前面輸入的所有值,并清除所有顯示。
(3)確認功能:當按下確認鍵,系統將輸入的密碼與內設密碼進行檢查核對,如果正確,鎖打開,否則不打開。


單片機源程序如下:
  1. #include <reg52.h>                 //調用單片機頭文件
  2. #define uchar unsigned char  //無符號字符型 宏定義        變量范圍0~255
  3. #define uint  unsigned int         //無符號整型 宏定義        變量范圍0~65535

  4. uchar value,i;                //變量

  5. sbit relay = P2^2;  //繼電器定義
  6. sbit beep  = P3^3;  //蜂鳴器定義

  7. sbit beiguan = P2^3;  //背光

  8. uint flag_time;

  9. uint flag_guan;

  10. uchar smg_i;
  11. uchar dis_smg[7]={0};

  12. uchar password[7]={6,5,4,3,2,1};            //密碼保存
  13. uchar password_bj[7]={1,2,3,4,5,6};        //密碼比較
  14. uchar code password_r[6] = {1,2,3,1,2,3} ;
  15. uchar code password_gl[6] = {5,2,0,0,2,5} ;
  16. uchar password_xg[6];        //密碼修改
  17. uchar flag_password;      //密碼正確否
  18. uchar flag_password_cichu1;//密碼錯誤次數

  19. bit flag_200ms=1;     //200ms標志位

  20. uchar key_can;

  21. uchar menu_1,menu_i;

  22. sbit scl = P2^1;        //24C02 IO口定義
  23. sbit sda = P2^0;        //24C02 IO口定義

  24. uchar code table_num[]="0123456789abcdefg";

  25. sbit rs=P2^5;         //寄存器選擇信號 H:數據寄存器          L:指令寄存器
  26. sbit rw=P2^6;         //寄存器選擇信號 H:數據寄存器          L:指令寄存器
  27. sbit e =P2^7;         //片選信號   下降沿觸發

  28. /***********************延時函數************************/
  29. void delay_uint(uint q)
  30. {
  31.         while(q--);
  32. }

  33. /***********************lcd1602寫命令函數************************/
  34. void write_com(uchar com)
  35. {
  36.         e=0;
  37.         rs=0;
  38.         rw=0;
  39.         P0=com;
  40.         delay_uint(3);
  41.         e=1;
  42.         delay_uint(25);
  43.         e=0;
  44. }

  45. /***********************lcd1602寫數據函數************************/
  46. void write_data(uchar dat)
  47. {
  48.         e=0;
  49.         rs=1;
  50.         rw=0;
  51.         P0=dat;
  52.         delay_uint(3);
  53.         e=1;
  54.         delay_uint(25);
  55.         e=0;        
  56. }

  57. /*********************光標控制***********************/
  58. void lcd1602_guanbiao(uchar open_off,uchar add)
  59. {
  60.         if(open_off == 1)   //開光標
  61.         {
  62.                 write_com(0x80+add);              //將光標移動到秒個位
  63.                 write_com(0x0f);                //顯示光標并且閃爍
  64.         }
  65.         else
  66.         {
  67.                 write_com(0x0c);   //關光標
  68.         }               
  69. }

  70. /***********************lcd1602上顯示兩位十進制數************************/
  71. void write_sfm2(uchar hang,uchar add,uchar date)
  72. {
  73.         uchar shi,ge;
  74.         if(hang==1)   
  75.                 write_com(0x80+add);
  76.         else
  77.                 write_com(0x80+0x40+add);
  78.         shi=date%100/10;
  79.         ge=date%10;                  
  80.         write_data(0x30+shi);
  81.         write_data(0x30+ge);        
  82. }

  83. /***********************lcd1602上顯示這字符函數************************/
  84. void write_string(uchar hang,uchar add,uchar *p)
  85. {
  86.         if(hang==1)   
  87.                 write_com(0x80+add);
  88.         else
  89.                 write_com(0x80+0x40+add);
  90.                 while(1)                                                                                                                 
  91.                 {
  92.                         if(*p == '\0')  break;
  93.                         write_data(*p);
  94.                         p++;
  95.                         delay_uint(50);
  96.                 }        
  97. }


  98. /***********************lcd1602初始化設置************************/
  99. void init_1602()
  100. {
  101.         write_com(0x38);        //
  102.         write_com(0x0c);
  103.         write_com(0x06);
  104.         delay_uint(1000);
  105.         write_string(1,0," Password Lock  ");        
  106.         write_string(2,0," Input:         ");
  107.         lcd1602_guanbiao(1,7+0x40);  //開光標
  108. }


  109. /***************啟始信號 ***************************/
  110. void start()
  111. {
  112.         sda = 1;
  113.         scl = 1;
  114.         sda = 0;
  115.         scl = 0;
  116. }

  117. /****************結束信號 **************************/
  118. void stop()
  119. {
  120.         sda = 0;
  121.         scl = 1;
  122.         sda = 1;
  123.         scl = 0;
  124. }

  125. /*****************檢測應答*************************/
  126. void ack()
  127. {
  128.         uchar i;
  129.         sda = 1;   
  130.         scl = 1;        
  131.         while((i < 100) & (sda == 1))        i++;
  132.         scl =0;
  133. }


  134. void ack_zhuji()
  135. {
  136.         sda = 0;
  137.         scl = 1;
  138.         scl = 0;
  139.         sda = 1;
  140. }

  141. /*****************非應答*************************/
  142. void no_ack()
  143. {
  144.         sda = 1;
  145.         scl = 1;
  146.         scl = 0;
  147. }

  148. /*****************寫一個字節*************************/
  149. void write_iic(uchar dat)
  150. {
  151.         uchar i;
  152.         for(i=0;i<8;i++)
  153.         {
  154.                 scl = 0;
  155.                 dat <<= 1 ;
  156.                 sda = CY;
  157.                 scl = 1;
  158.         }
  159.         scl = 0;
  160. }

  161. /*******************讀一個字節***********************/
  162. uchar read_iic()
  163. {
  164.         uchar i,value;
  165.         for(i=0;i<8;i++)
  166.         {
  167.                 scl = 1;
  168.                 value <<= 1;
  169.                 if(sda == 1)
  170.                         value |= 0x01;
  171.                 scl = 0;
  172.         }
  173.         return value;
  174. }

  175. /*****************向24C02寫一個字節進去*************************/
  176. void write_24c02(uchar add,uchar dat)
  177. {
  178.         start();
  179.         write_iic(0xa0);
  180.         ack();
  181.         write_iic(add);
  182.         ack();
  183.         write_iic(dat);
  184.         no_ack();
  185.         stop();
  186. }

  187. /******************從24C02讀一個字節進去************************/
  188. uchar read_24c02(uchar add)
  189. {
  190.         uchar value;
  191.         start();
  192.         write_iic(0xa0);
  193.         ack();
  194.         write_iic(add);
  195.         ack();

  196.         start();
  197.         write_iic(0xa1);
  198.         ack();
  199.         value = read_iic();
  200.         no_ack();
  201.         stop();
  202.         return value;
  203. }

  204. /*****************向24C02寫多個字節進去*************************/
  205. void write_24c02_8(uchar n,uchar add,uchar *p)
  206. {
  207.         uchar i;
  208.         EA = 0;
  209.         start();
  210.         write_iic(0xa0);
  211.         ack();
  212.         write_iic(add);        
  213.         for(i=0;i<n;i++)
  214.         {        
  215.                 ack();
  216.                 write_iic(*p);
  217.                 p++;                        
  218.         }  
  219.         no_ack();   
  220.         stop();        
  221.         EA = 1;
  222. }
  223. /******************從24C02讀多個字節進去************************/
  224. void read_24c02_8(uchar n,uchar add,uchar *p)
  225. {
  226.         uchar i;
  227.         EA = 0;
  228.         start();
  229.         write_iic(0xa0);
  230.         ack();
  231.         write_iic(add);
  232.         ack();

  233.         start();
  234.         write_iic(0xa1);
  235.         ack();
  236.         for(i=0;i<n;i++)
  237.         {
  238.                 p[i] = read_iic();
  239.                 if(i == n-1)
  240.                 {
  241.                         ack();
  242.                         stop();
  243.                 }
  244.                 else
  245.                         ack_zhuji();
  246.         }
  247.         EA = 1;
  248. }


  249. /***********************1ms延時函數*****************************/
  250. void delay_1ms(uint q)
  251. {
  252.         uint i,j;
  253.         for(i=0;i<q;i++)
  254.                 for(j=0;j<120;j++);
  255. }


  256. void key()         //獨立按鍵程序
  257. {
  258.         static uchar key_new = 0, key_l;
  259.         key_can = 20;                   //按鍵值還原
  260.         P1 = 0x0f;
  261.         if((P1 & 0x0f) != 0x0f)                //按鍵按下
  262.         {
  263.                 delay_1ms(1);                     //按鍵消抖動
  264.                 if(((P1 & 0x0f) != 0x0f) && (key_new == 1))
  265.                 {                                                //確認是按鍵按下
  266.                         key_new = 0;
  267.                         key_l = (P1 | 0xf0);   //矩陣鍵盤掃描
  268.                         P1 = key_l;
  269.                         switch(P1)
  270.                         {
  271.                                 case 0xee:  key_can = 1;  break;  //得到按鍵值
  272.                                 case 0xde:  key_can = 4;  break;   //得到按鍵值
  273.                                 case 0xbe:  key_can = 7;  break;   //得到按鍵值
  274.                                 case 0x7e:  key_can = 10;  break;   //得到按鍵值
  275.         
  276.                                 case 0xed:  key_can = 0;  break;  //得到按鍵值
  277.                                 case 0xdd:  key_can = 8;  break;   //得到按鍵值
  278.                                 case 0xbd:  key_can = 5;  break;   //得到按鍵值
  279.                                 case 0x7d:  key_can = 2;  break;   //得到按鍵值
  280.         
  281.                                 case 0xeb:  key_can = 3;  break;  //得到按鍵值
  282.                                 case 0xdb:  key_can = 6;  break;   //得到按鍵值
  283.                                 case 0xbb:  key_can = 9;  break;   //得到按鍵值
  284.                                 case 0x7b:  key_can = 11;  break;   //得到按鍵值
  285.         
  286.                                 case 0xe7:  key_can = 15;  break;  //得到按鍵值
  287.                                 case 0xd7:  key_can = 14;  break;  //得到按鍵值
  288.                                 case 0xb7:  key_can = 13;  break;   //得到按鍵值
  289.                                 case 0x77:  key_can = 12;  break;  //得到按鍵值  

  290.                         }        
  291.                 }                        
  292.         }
  293.         else
  294.         {
  295.                 key_new = 1;
  296.         }        
  297. }


  298. /***************把數組清空**********************/
  299. void clear_shuzu(uchar *p)
  300. {
  301.         for(i=0;i<7;i++)
  302.                 p[i] = 0;
  303. }

  304. /*************定時器0初始化程序***************/
  305. void time_init()         
  306. {
  307.         EA   = 1;                   //開總中斷
  308.         TMOD = 0X01;          //定時器0、工作方式1
  309.         ET0  = 1;                  //開定時器0中斷
  310.         TR0  = 1;                  //允許定時器0定時
  311. }

  312. /******************下載程序密碼初始化**********************/           
  313. void password_chushifa()
  314. {
  315.         scl = 0;
  316.         value = read_24c02(10) ;
  317.         if(value != 75)
  318.         {
  319.                 value = 75;
  320.                 beep = 0;
  321.                 write_24c02(10,value);
  322.                 delay_1ms(200);
  323.                 write_24c02_8(6,0,password_r);
  324.                 delay_1ms(200);
  325.                 read_24c02_8(6,0,password);
  326.                 beep = 1;         
  327.         }
  328. }


  329. /****************按鍵功能處理********************/           
  330. void key_with()
  331. {
  332.         static uchar value;
  333.         if(key_can == 14)   //手動關閉密碼鎖
  334.                 relay = 1;
  335.         if(menu_1 == 0)
  336.         {
  337.                 if(key_can <= 9)
  338.                 if(menu_i < 6)   //密碼輸入
  339.                 {
  340.                         menu_i ++;
  341.                         if(menu_i > 6)
  342.                                 menu_i = 6;
  343.                         smg_i = menu_i;
  344.                         for(i=6;i>0;i--)
  345.                                 password_bj[i] = password_bj[i-1];        
  346.                         password_bj[0] = key_can;
  347.                         for(i=0;i<smg_i;i++)
  348.                                 dis_smg[i] ='*';//0x30 + password_bj[i];
  349.                         write_string(2,7,dis_smg);        
  350.                         lcd1602_guanbiao(1,7 + menu_i + 0x40);  //開光標
  351.                 }        
  352.                 if(key_can == 11)         //密碼刪除
  353.                 {
  354.                         for(i=0;i<menu_i;i++)
  355.                                 password_bj[i] = password_bj[i+1];         
  356.                         menu_i --;
  357.                         password_bj[menu_i] = ' ';        
  358.                         dis_smg[menu_i] = ' ';
  359.                         write_string(2,7,dis_smg);        
  360.                         lcd1602_guanbiao(1,7 + menu_i + 0x40);  //開光標
  361.                 }
  362.                 if(key_can == 15)  //確認鍵
  363.                 {
  364.                         value = 0;
  365.                         for(i=0;i<6;i++)
  366.                         {
  367.                                 if(password_bj[i] == password_gl[i]) //判斷管理員密碼
  368.                                 {
  369.                                          value ++;
  370.                                         if(value >= 6)  //密碼正確
  371.                                         {
  372.                                                 write_string(2,0,"    return      ");
  373.                                                 beep = 0;
  374.                                                 delay_1ms(200);
  375.                                                 read_24c02_8(6,0,password);
  376.                                                 beep = 1;         
  377.                                                 delay_1ms(2000);
  378.                                         }
  379.                                 }
  380.                         }
  381.                         if(value < 6)
  382.                         for(i=0;i<6;i++)
  383.                         {
  384.                                 if(password_bj[i] == password[i])
  385.                                 {
  386.                                         flag_password = 1;         //密碼正確
  387.                                         relay = 0;     //打開密碼鎖
  388.                                         for(i=0;i<6;i++)
  389.                                                 dis_smg[i] = 0xbf;
  390.                                 }
  391.                                 else
  392.                                 {
  393.                                         flag_password = 0;
  394.                                         flag_password_cichu1 ++;
  395.                                         write_string(1,0," Password error ");        
  396.                                         write_string(2,0,"   cishu:       ");
  397.                                         write_sfm2(2,9,flag_password_cichu1);
  398.                                         delay_1ms(280);
  399.                         
  400.                                         for(i=0;i<6;i++)
  401.                                         {
  402.                                                 beep = ~beep;
  403.                                                 delay_1ms(200);
  404.                                         }
  405.                                         beep = 1;
  406.                                         delay_1ms(800);
  407.                                         break;               //密碼不正確
  408.                                 }
  409.                         }
  410.                         clear_shuzu(dis_smg);
  411.                         write_string(1,0," Password Lock  ");        
  412.                         write_string(2,0," Input:         ");
  413.                         lcd1602_guanbiao(1,7+0x40);  //開光標
  414.                         menu_i = 0;
  415.                 }
  416.         }                                                                        
  417. }

  418. /****************修改密碼********************/           
  419. void xiugai_password()
  420. {
  421.         if(key_can == 13)   //修改密碼
  422.         {
  423.                 if((relay == 0) && (menu_1 == 0))
  424.                 {
  425.                         menu_1 = 1;        menu_i = 0;
  426.                         clear_shuzu(password_bj);          //數據清空
  427.                         clear_shuzu(dis_smg);
  428.                         write_string(1,0,"Input1:          ");        
  429.                         write_string(2,0,"Input2:          ");
  430.                         lcd1602_guanbiao(1,7);  //開光標
  431.                 }        
  432.         }
  433.         if(menu_1 == 1)   //第一次輸入修改的密碼
  434.         {
  435.                 if(key_can <= 9)
  436.                 {
  437.                         if(menu_i < 6)
  438.                         {
  439.                                 menu_i ++;
  440.                                 if(menu_i > 6)
  441.                                         menu_i = 6;
  442.                                 smg_i = menu_i;
  443.                                 for(i=7;i>0;i--)
  444.                                         password_bj[i] = password_bj[i-1];        
  445.                                 password_bj[0] = key_can;
  446.                                 for(i=0;i<menu_i;i++)
  447.                                         dis_smg[i] ='*';
  448.                                 write_string(1,7,dis_smg);
  449.                                 lcd1602_guanbiao(1,7 + menu_i);  //開光標        
  450.                         }        
  451.                 }
  452.                 if(key_can == 11)  //刪除鍵
  453.                 {
  454.                         for(i=0;i<menu_i;i++)
  455.                                 password_bj[i] = password_bj[i+1];        
  456.                         menu_i --;
  457.                         password_bj[menu_i] = ' ';        
  458.                         dis_smg[menu_i] = ' ';
  459.                         write_string(1,7,dis_smg);        
  460.                         lcd1602_guanbiao(1,7 + menu_i);  //開光標        
  461.                 }        
  462.                 if(key_can == 15)  //確定鍵
  463.                 {
  464.                         clear_shuzu(password_xg);
  465.                         clear_shuzu(dis_smg);
  466.                         lcd1602_guanbiao(1,8 + 0x40);  //開光標
  467.                         menu_1 = 2;
  468.                     menu_i = 0;
  469.                         key_can = 20;
  470.                 }
  471.         }
  472.         if(menu_1 == 2)   //第二次輸入修改的密碼
  473.         {
  474.                 if(key_can <= 9)
  475.                 {
  476.                         if(menu_i < 6)
  477.                         {
  478.                                 menu_i ++;               
  479.                                 if(menu_i > 6)
  480.                                         menu_i = 6;
  481.                                 for(i=5;i>0;i--)
  482.                                         password_xg[i] = password_xg[i-1];        
  483.                                 password_xg[0] = key_can;
  484.                                 for(i=0;i<menu_i;i++)
  485.                                         dis_smg[i] ='*';//0x30 + password_xg[i];
  486.                                 write_string(2,7,dis_smg);           
  487.                                 lcd1602_guanbiao(1,7 + menu_i + 0x40);  //開光標
  488.                         }        
  489.                 }
  490.                 if(key_can == 11)  //刪除鍵
  491.                 {
  492.                         for(i=0;i<menu_i;i++)
  493.                                 password_xg[i] = password_xg[i+1];        
  494.                         password_xg[menu_i] = ' ';        
  495.                         dis_smg[menu_i] = ' ';
  496.                         write_string(2,7,dis_smg);        
  497.                         lcd1602_guanbiao(1,7 + menu_i + 0x40);  //開光標
  498.                 }        
  499.                 if(key_can == 15)  //確定鍵
  500.                 {
  501.                         for(i=0;i<6;i++)
  502.                         {
  503.                                 if(password_bj[i] == password_xg[i])
  504.                                 {
  505.                                         flag_password = 1;         //兩次輸入的密碼一樣                        
  506.                                 }
  507.                                 else
  508.                                 {
  509.                                         flag_password = 0;
  510.                                         write_string(1,0," Password Error ");        
  511.                                         write_string(2,0,"     reenter    ");
  512.                                         delay_1ms(300);
  513.                                         for(i=0;i<6;i++)
  514.                                         {
  515.                                                 beep = ~beep;                //提示三聲
  516.                                                 delay_1ms(300);
  517.                                         }
  518.                                         beep = 1;
  519.                                         delay_1ms(1000);
  520.                                         break;               //密碼不正確
  521.                                 }
  522.                         }
  523.                         if(flag_password == 1)                 //兩次輸入的密碼一樣的
  524.                         {                        
  525.                                 for(i=0;i<6;i++)
  526.                                 {
  527.                                         write_string(1,0,"    Password    ");        
  528.                                         write_string(2,0,"    Succeed     ");
  529.                                         password[i] = password_bj[i];   //保存密碼
  530.                                 }
  531.                                 write_24c02_8(6,0,password);
  532.                                 delay_1ms(300);
  533.                                 beep = 0;
  534.                                 delay_1ms(2000);
  535.                                 beep = 1;
  536.                         }
  537.                         clear_shuzu(password_xg);
  538.                         clear_shuzu(dis_smg);
  539.                         write_string(1,0," Password Lock  ");        
  540.                         write_string(2,0," Input:         ");
  541.                         lcd1602_guanbiao(1,7+0x40);  //開光標
  542.                         menu_1 = 0;
  543.                     menu_i = 0;

  544.                 }
  545.         }        
  546. }


  547. /******************主程序**********************/           
  548. void main()
  549. {
  550.         static uint value ;
  551.         password_chushifa();
  552.         time_init();   //定時器初始化
  553.         read_24c02_8(6,0,password);
  554.         init_1602();
  555.         beiguan = 0;
  556.         while(1)
  557. ……………………

  558. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼

所有資料51hei提供下載:
單片機電子密碼鎖 1602 6位.7z (1.21 MB, 下載次數: 668)

評分

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

查看全部評分

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

使用道具 舉報

來自 2#
ID:412826 發表于 2018-10-20 18:22 | 只看該作者
首先感謝樓主分享。其次我想問個問題。之前我們小組也做了一個密控密碼鎖,是帶12V電磁鎖。電源用的12V串聯電池。單片機通過LM7805,12V轉5V供電。但是出現了一個問題。就是小鎖運作時,會影響Lcd顯示亂碼 且無法恢復顯示。想問下電路可以怎么修改消除電源對LCD顯示的影響。

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 回帖助人的獎勵!

查看全部評分

回復

使用道具 舉報

板凳
ID:267010 發表于 2018-6-23 23:11 | 只看該作者
矩陣鍵盤按鍵說明

  1       2       3       確認鍵
  4       5       6       手動關閉鎖
  7       8       9      修改密碼
密碼還原  0     刪除鍵   退出鍵

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 補償

查看全部評分

回復

使用道具 舉報

地板
ID:247623 發表于 2018-6-27 11:39 | 只看該作者
可以用的,但是文件名需要重命名,加上.rar,就可以了
回復

使用道具 舉報

5#
ID:247623 發表于 2018-6-27 23:13 | 只看該作者
樓主你好,我在51黑論壇上看到你的電子密碼鎖設計,我想問一下,PCB文件能否發我,謝謝
回復

使用道具 舉報

6#
ID:28942 發表于 2018-7-5 21:53 | 只看該作者
樓主:上面給的6位密碼     123123管理員密碼  520025顯示密碼錯誤是什么情況?
回復

使用道具 舉報

7#
ID:205182 發表于 2018-7-5 23:24 | 只看該作者
要是能接一個進步電機就完美了
回復

使用道具 舉報

8#
ID:366464 發表于 2018-7-15 21:54 | 只看該作者
論壇有你而精彩!
回復

使用道具 舉報

9#
ID:366464 發表于 2018-7-16 14:36 | 只看該作者

樓主:上面給的6位密碼     123123管理員密碼  520025顯示密碼錯誤是什么情況?同感!
回復

使用道具 舉報

10#
ID:366464 發表于 2018-7-31 17:49 | 只看該作者
yilinghai 發表于 2018-6-27 11:39
可以用的,但是文件名需要重命名,加上.rar,就可以了

與五樓無關,此單片機密碼:   密碼還原成654321,點確認后修改密碼!
回復

使用道具 舉報

11#
ID:239907 發表于 2018-8-14 08:19 | 只看該作者
感謝分享,試一試!
回復

使用道具 舉報

12#
ID:387116 發表于 2018-8-28 15:12 | 只看該作者
zuiqf1978 發表于 2018-7-31 17:49
與五樓無關,此單片機密碼:   密碼還原成654321,點確認后修改密碼!

你做成功了嗎  我1602顯示的字母不全啊
回復

使用道具 舉報

13#
ID:399179 發表于 2018-10-20 18:56 來自手機 | 只看該作者
感謝樓主分享!
回復

使用道具 舉報

14#
ID:89938 發表于 2018-10-21 14:09 | 只看該作者
給的代碼是錯的,hex是對的
回復

使用道具 舉報

15#
ID:430813 發表于 2018-12-6 19:18 | 只看該作者
感謝樓主分享
回復

使用道具 舉報

16#
ID:463231 發表于 2019-1-10 18:15 | 只看該作者
感謝樓主的分享,求問為什么下載到單片機以后打開單片機蜂鳴器一直響
回復

使用道具 舉報

17#
ID:451480 發表于 2019-4-11 16:38 | 只看該作者
摟著的前面那些功能模塊的代碼我基本都看得懂,我自己也是仿照例程來寫的,可是為什么只是在驗證密碼的時候,只能對數字7進行判斷,其他的數字都沒有反應
回復

使用道具 舉報

18#
ID:718173 發表于 2020-4-12 16:47 來自手機 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

19#
ID:1142486 發表于 2025-1-5 11:49 | 只看該作者
密碼是什么呀
回復

使用道具 舉報

20#
ID:92810 發表于 2025-1-5 15:18 | 只看該作者

論壇有你而精彩!
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品亚洲第一 | 日韩中文一区二区 | 精品久久久久久亚洲精品 | 日韩在线视频精品 | 久久久www成人免费无遮挡大片 | 国产一区二区欧美 | 亚洲国产网 | 亚洲精品福利在线 | 久久五月婷 | 国产美女h视频 | 国产亚洲精品久久19p | 免费看一级毛片 | 欧洲精品一区 | 911影院| 神马福利 | 日韩不卡三区 | 国产区一区二区三区 | 日韩欧美国产一区二区 | 欧美影院 | 久久在看 | 国产日韩亚洲欧美 | 99久久日韩精品免费热麻豆美女 | 国产日产久久高清欧美一区 | 欧美福利在线 | 色综合一区| 日韩中文字幕在线视频观看 | 99re| 欧美日韩综合一区 | 久久另类| 亚洲成av人片在线观看无码 | 亚洲黄色av | 国产精品久久一区二区三区 | 美女久久久久久久 | 黄色国产| 日韩av手机在线观看 | av黄色免费在线观看 | 91精品国产91久久久久久吃药 | 久久欧美高清二区三区 | 波多野结衣在线观看一区二区三区 | 黄色国产在线视频 | 99精品视频免费观看 |