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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

可設定新密碼的單片機密碼鎖proteus仿真設計 帶源程序

[復制鏈接]
跳轉到指定樓層
樓主



這是一個可以設定新密碼的單片機電子密碼鎖設計
所有資料下載:
密碼鎖程序設計.rar (61.02 KB, 下載次數: 21)


密碼鎖源程序:
  1. #include <reg51.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char   //宏定義
  4. uchar code  LEDData[] ={0xc0,0xf9,0xa4,0xb0,0x99,
  5.                         0x92,0x82,0xf8,0x80,0x90,0xff,0xBF};        //共陽數碼管

  6. sbit weixuan1 = P2 ^ 7;        //數碼管位選定義
  7. sbit weixuan2 = P2 ^ 6;
  8. sbit weixuan3 = P2 ^ 5;
  9. sbit weixuan4 = P2 ^ 4;

  10. //sbit hongse = P2 ^ 2;
  11. //sbit lvse = P2 ^ 1;
  12. //sbit lanse = P2 ^ 0;

  13. sbit K7 = P1 ^ 0;        //按鍵
  14. sbit K8 = P1 ^ 1;
  15. sbit K9 = P1 ^ 2;
  16. sbit K4 = P1 ^ 3;
  17. sbit K5 = P1 ^ 4;
  18. sbit K6 = P1 ^ 5;
  19. sbit K1 = P1 ^ 6;
  20. sbit K2 = P1 ^ 7;
  21. sbit K3 = P3 ^ 0;
  22. sbit K0 = P3 ^ 1;
  23. sbit K10 = P3 ^ 2;
  24. sbit K11 = P3 ^ 3;

  25. int a, b, c, d, moshi = 0, jishu = 0;

  26. uint mi[4] = {1, 2, 3, 4};
  27. uint ma[4] = {10, 10, 10, 10};

  28. /*****延時子程序*****/
  29. void Delay(uint i)
  30. {
  31.     while( i-- );
  32. }

  33. void qudou(void)     //去抖延遲
  34. {
  35.     int i;
  36.     for(i = 0; i < 2400; i++);
  37. }

  38. /*****顯示溫度子程序*****/
  39. void xianshi()
  40. {
  41.     weixuan1 = 0;
  42.     weixuan2 = 0;
  43.     weixuan3 = 0;
  44.     weixuan4 = 0;
  45.     P0 = LEDData[a];
  46.     weixuan1 = 1;
  47.     weixuan2 = 0;
  48.     weixuan3 = 0;
  49.     weixuan4 = 0;
  50.     Delay(300);

  51.     weixuan1 = 0;
  52.     weixuan2 = 0;
  53.     weixuan3 = 0;
  54.     weixuan4 = 0;
  55.     P0 = LEDData[b];
  56.     weixuan1 = 0;
  57.     weixuan2 = 1;
  58.     weixuan3 = 0;
  59.     weixuan4 = 0;
  60.     Delay(300);

  61.     weixuan1 = 0;
  62.     weixuan2 = 0;
  63.     weixuan3 = 0;
  64.     weixuan4 = 0;
  65.     P0 = LEDData[c];
  66.     weixuan1 = 0;
  67.     weixuan2 = 0;
  68.     weixuan3 = 1;
  69.     weixuan4 = 0;
  70.     Delay(300);

  71.     weixuan1 = 0;
  72.     weixuan2 = 0;
  73.     weixuan3 = 0;
  74.     weixuan4 = 0;
  75.     P0 = LEDData[d];
  76.     weixuan1 = 0;
  77.     weixuan2 = 0;
  78.     weixuan3 = 0;
  79.     weixuan4 = 1;
  80.     Delay(300);
  81. }

  82. void key_guan()
  83. {
  84.     if (K0 == 0)                  //按鍵0按下
  85.     {
  86.         qudou();
  87.         if(K0 == 0)
  88.         {
  89.             jishu = 1;
  90.             ma[0] = 0;
  91.             moshi = 1;
  92.         }
  93.         while(K0 == 0);
  94.     }

  95.     if (K1 == 0)                  //按鍵1按下
  96.     {
  97.         qudou();
  98.         if(K1 == 0)
  99.         {
  100.             jishu = 1;
  101.             ma[0] = 1;
  102.             moshi = 1;
  103.         }
  104.         while(K1 == 0);
  105.     }

  106.     if (K2 == 0)                  //按鍵2按下
  107.     {
  108.         qudou();
  109.         if(K2 == 0)
  110.         {
  111.             jishu = 1;
  112.             ma[0] = 2;
  113.             moshi = 1;
  114.         }
  115.         while(K2 == 0);
  116.     }

  117.     if (K3 == 0)                  //按鍵3按下
  118.     {
  119.         qudou();
  120.         if(K3 == 0)
  121.         {
  122.             jishu = 1;
  123.             ma[0] = 3;
  124.             moshi = 1;
  125.         }
  126.         while(K3 == 0);
  127.     }

  128.     if (K4 == 0)                  //按鍵4按下
  129.     {
  130.         qudou();
  131.         if(K4 == 0)
  132.         {
  133.             jishu = 1;
  134.             ma[0] = 4;
  135.             moshi = 1;
  136.         }
  137.         while(K4 == 0);
  138.     }

  139.     if (K5 == 0)                  //按鍵5按下
  140.     {
  141.         qudou();
  142.         if(K5 == 0)
  143.         {
  144.             jishu = 1;
  145.             ma[0] = 5;
  146.             moshi = 1;
  147.         }
  148.         while(K5 == 0);
  149.     }

  150.     if (K6 == 0)                  //按鍵6按下
  151.     {
  152.         qudou();
  153.         if(K6 == 0)
  154.         {
  155.             jishu = 1;
  156.             ma[0] = 6;
  157.             moshi = 1;
  158.         }
  159.         while(K6 == 0);
  160.     }

  161.     if (K7 == 0)                  //按鍵7按下
  162.     {
  163.         qudou();
  164.         if(K7 == 0)
  165.         {
  166.             jishu = 1;
  167.             ma[0] = 7;
  168.             moshi = 1;
  169.         }
  170.         while(K7 == 0);
  171.     }

  172.     if (K8 == 0)                  //按鍵8按下
  173.     {
  174.         qudou();
  175.         if(K8 == 0)
  176.         {
  177.             jishu = 1;
  178.             ma[0] = 8;
  179.             moshi = 1;
  180.         }
  181.         while(K8 == 0);
  182.     }

  183.     if (K9 == 0)                  //按鍵9按下
  184.     {
  185.         qudou();
  186.         if(K9 == 0)
  187.         {
  188.             jishu = 1;
  189.             ma[0] = 9;
  190.             moshi = 1;
  191.         }
  192.         while(K9 == 0);
  193.     }
  194. }

  195. void key_shuru()
  196. {
  197.     if (K0 == 0)                  //按鍵0按下
  198.     {
  199.         qudou();
  200.         if(K0 == 0)
  201.         {
  202.             ma[jishu] = 0;
  203.             jishu++;
  204.         }
  205.         while(K0 == 0);
  206.     }

  207.     if (K1 == 0)                  //按鍵1按下
  208.     {
  209.         qudou();
  210.         if(K1 == 0)
  211.         {
  212.             ma[jishu] = 1;
  213.             jishu++;
  214.         }
  215.         while(K1 == 0);
  216.     }

  217.     if (K2 == 0)                  //按鍵2按下
  218.     {
  219.         qudou();
  220.         if(K2 == 0)
  221.         {
  222.             ma[jishu] = 2;
  223.             jishu++;
  224.         }
  225.         while(K2 == 0);
  226.     }

  227.     if (K3 == 0)                  //按鍵3按下
  228.     {
  229.         qudou();
  230.         if(K3 == 0)
  231.         {
  232.             ma[jishu] = 3;
  233.             jishu++;
  234.         }
  235.         while(K3 == 0);
  236.     }

  237.     if (K4 == 0)                  //按鍵4按下
  238.     {
  239.         qudou();
  240.         if(K4 == 0)
  241.         {
  242.             ma[jishu] = 4;
  243.             jishu++;
  244.         }
  245.         while(K4 == 0);
  246.     }

  247.     if (K5 == 0)                  //按鍵5按下
  248.     {
  249.         qudou();
  250.         if(K5 == 0)
  251.         {
  252.             ma[jishu] = 5;
  253.             jishu++;
  254.         }
  255.         while(K5 == 0);
  256.     }

  257.     if (K6 == 0)                  //按鍵6按下
  258.     {
  259.         qudou();
  260.         if(K6 == 0)
  261.         {
  262.             ma[jishu] = 6;
  263.             jishu++;
  264.         }
  265.         while(K6 == 0);
  266.     }

  267.     if (K7 == 0)                  //按鍵7按下
  268.     {
  269.         qudou();
  270.         if(K7 == 0)
  271.         {
  272.             ma[jishu] = 7;
  273.             jishu++;
  274.         }
  275.         while(K7 == 0);
  276.     }

  277.     if (K8 == 0)                  //按鍵8按下
  278.     {
  279.         qudou();
  280.         if(K8 == 0)
  281.         {
  282.             ma[jishu] = 8;
  283.             jishu++;
  284.         }
  285.         while(K8 == 0);
  286.     }

  287.     if (K9 == 0)                  //按鍵9按下
  288.     {
  289.         qudou();
  290.         if(K9 == 0)
  291.         {
  292.             ma[jishu] = 9;
  293.             jishu++;
  294.         }
  295.         while(K9 == 0);
  296.     }
  297. }

  298. void key_xinmima()
  299. {
  300.     if (K0 == 0)                  //按鍵0按下
  301.     {
  302.         qudou();
  303.         if(K0 == 0)
  304.         {
  305.             ma[jishu] = 0;
  306.             jishu++;
  307.         }
  308.         while(K0 == 0);
  309.     }

  310.     if (K1 == 0)                  //按鍵1按下
  311.     {
  312.         qudou();
  313.         if(K1 == 0)
  314.         {
  315.             ma[jishu] = 1;
  316.             jishu++;
  317.         }
  318.         while(K1 == 0);
  319.     }

  320.     if (K2 == 0)                  //按鍵2按下
  321.     {
  322.         qudou();
  323.         if(K2 == 0)
  324.         {
  325.             ma[jishu] = 2;
  326.             jishu++;
  327.         }
  328.         while(K2 == 0);
  329.     }

  330.     if (K3 == 0)                  //按鍵3按下
  331.     {
  332.         qudou();
  333.         if(K3 == 0)
  334.         {
  335.             ma[jishu] = 3;
  336.             jishu++;
  337.         }
  338.         while(K3 == 0);
  339.     }

  340.     if (K4 == 0)                  //按鍵4按下
  341.     {
  342.         qudou();
  343.         if(K4 == 0)
  344.         {
  345.             ma[jishu] = 4;
  346.             jishu++;
  347.         }
  348.         while(K4 == 0);
  349.     }

  350.     if (K5 == 0)                  //按鍵5按下
  351.     {
  352.         qudou();
  353.         if(K5 == 0)
  354.         {
  355.             ma[jishu] = 5;
  356.             jishu++;
  357.         }
  358.         while(K5 == 0);
  359.     }

  360.     if (K6 == 0)                  //按鍵6按下
  361.     {
  362.         qudou();
  363.         if(K6 == 0)
  364.         {
  365.             ma[jishu] = 6;
  366.             jishu++;
  367.         }
  368.         while(K6 == 0);
  369.     }

  370.     if (K7 == 0)                  //按鍵7按下
  371.     {
  372.         qudou();
  373.         if(K7 == 0)
  374.         {
  375.             ma[jishu] = 7;
  376.             jishu++;
  377.         }
  378.         while(K7 == 0);
  379.     }

  380.     if (K8 == 0)                  //按鍵8按下
  381.     {
  382.         qudou();
  383.         if(K8 == 0)
  384.         {
  385.             ma[jishu] = 8;
  386.             jishu++;
  387.         }
  388.         while(K8 == 0);
  389.     }

  390.     if (K9 == 0)                  //按鍵9按下
  391.     {
  392.         qudou();
  393.         if(K9 == 0)
  394.         {
  395.             ma[jishu] = 9;
  396.             jishu++;
  397.         }
  398.         while(K9 == 0);
  399.     }
  400. }

  401. void guan()
  402. {
  403. //    hongse = 0;
  404. //    lvse = 1;
  405. //    lanse = 1;
  406.     a = 11;
  407.     b = 11;
  408.     c = 11;
  409.     d = 11;
  410.     key_guan();
  411. }

  412. void shuru()
  413. {
  414. //    hongse = 1;
  415. //    lvse = 1;
  416. //    lanse = 0;
  417.     switch(jishu)
  418.     {
  419.     case 1:
  420.         a = 10;
  421.         b = 10;
  422.         c = 10;
  423.         d = 11;
  424.         break;
  425.     case 2:
  426.         a = 10;
  427.         b = 10;
  428.         c = 11;
  429.         d = 11;
  430.         break;
  431.     case 3:
  432.         a = 10;
  433.         b = 11;
  434.         c = 11;
  435.         d = 11;
  436.         break;
  437.     case 4:
  438.         a = 11;
  439.         b = 11;
  440.         c = 11;
  441.         d = 11;
  442.         break;
  443.     }
  444.     if(jishu < 4)
  445.         key_shuru();
  446.     else
  447.     {
  448.         if (K10 == 0)                  //按鍵4按下
  449.         {
  450.             qudou();
  451.             if(K10 == 0)
  452.             {
  453.                 if(mi[0] == ma[0])
  454.                     if(mi[1] == ma[1])
  455.                         if(mi[2] == ma[2])
  456.                             if(mi[3] == ma[3])
  457.                             {
  458.                                 moshi = 2;
  459.                                 jishu = 0;
  460.                                 ma[0] = 10;
  461.                                 ma[1] = 10;
  462.                                 ma[2] = 10;
  463.                                 ma[3] = 10;
  464.                             }
  465.                             else
  466.                             {
  467.                                 moshi = 0;
  468.                                 jishu = 0;
  469.                                 ma[0] = 10;
  470.                                 ma[1] = 10;
  471.                                 ma[2] = 10;
  472.                                 ma[3] = 10;
  473.                             }
  474.                         else
  475.                         {
  476.                             moshi = 0;
  477.                             jishu = 0;
  478.                             ma[0] = 10;
  479.                             ma[1] = 10;
  480.                             ma[2] = 10;
  481.                             ma[3] = 10;
  482.                         }
  483.                     else
  484.                     {
  485.                         moshi = 0;
  486.                         jishu = 0;
  487.                         ma[0] = 10;
  488.                         ma[1] = 10;
  489.                         ma[2] = 10;
  490.                         ma[3] = 10;
  491.                     }
  492.                 else
  493.                 {
  494.                     moshi = 0;
  495.                     jishu = 0;
  496.                     ma[0] = 10;
  497.                     ma[1] = 10;
  498.                     ma[2] = 10;
  499.                     ma[3] = 10;
  500.                 }
  501.             }
  502.             while(K10 == 0);
  503.         }
  504.     }
  505. }

  506. void kai()
  507. {
  508. //    hongse = 1;
  509. //    lvse = 0;
  510. //    lanse = 1;
  511.     a = 0;
  512.     b = 0;
  513.     c = 0;
  514.     d = 0;
  515.     if (K11 == 0)                  //按鍵9按下
  516.     {
  517.         qudou();
  518.         if(K11 == 0)
  519.         {
  520.             moshi = 3;
  521.             a = 10;
  522.             b = 10;
  523.             c = 10;
  524.             d = 10;
  525.         }
  526.         while(K11 == 0);
  527.     }
  528. }

  529. void xinmima()
  530. {
  531. //    hongse = 0;
  532. //    lvse = 0;
  533. //    lanse = 0;
  534.     switch(jishu)
  535.     {
  536.     case 1:
  537.         a = 10;
  538.         b = 10;
  539.         c = 10;
  540.         d = ma[0];
  541.         break;
  542.     case 2:
  543.         a = 10;
  544.         b = 10;
  545.         c = ma[0];
  546.         d = ma[1];
  547.         break;
  548.     case 3:
  549.         a = 10;
  550.         b = ma[0];
  551.         c = ma[1];
  552.         d = ma[2];
  553.         break;
  554.     case 4:
  555.         a = ma[0];
  556.         b = ma[1];
  557.         c = ma[2];
  558.         d = ma[3];
  559.         break;
  560.     }
  561.     if(jishu < 4)
  562.         key_xinmima();
  563.     else
  564.     {
  565.         if (K11 == 0)                  //按鍵4按下
  566.         {
  567.             qudou();
  568.             if(K11 == 0)
  569.             {
  570.                 mi[0] = ma[0];
  571.                 ma[0] = 10;
  572.                 mi[1] = ma[1];
  573.                 ma[1] = 10;
  574.                 mi[2] = ma[2];
  575.                 ma[2] = 10;
  576.                 mi[3] = ma[3];
  577.                 ma[3] = 10;
  578.                 jishu = 0;
  579.                 moshi = 0;
  580.             }
  581.             while(K11 == 0);
  582.         }

  583.     }
  584. }
  585. void zhuangtai()
  586. {
  587.     switch(moshi)
  588.     {
  589.     case 0:
  590.         guan();
  591.         break;
  592.     case 1:
  593.         shuru();
  594.         break;
  595.     case 2:
  596.         kai();
  597.         break;
  598.     case 3:
  599.         xinmima();
  600.         break;
  601.     }
  602. }
  603. /*****主函數*****/
  604. void main(void)
  605. {
  606.     while(1)
  607.     {
  608.         zhuangtai();
  609.         xianshi();
  610.     }
  611. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 免费视频一区二区三区在线观看 | 在线āv视频 | 国产日韩91 | 国产精品美女久久久久久免费 | 成人乱人乱一区二区三区软件 | 欧美日韩在线观看一区二区三区 | 精品久久久久久久人人人人传媒 | 久久看看 | 欧洲av一区 | 欧美一级免费 | 99精品免费视频 | 蜜桃视频在线观看www社区 | 亚洲精品黄色 | 国产伦精品一区二区三区精品视频 | 在线观看亚 | 亚洲欧美中文日韩在线v日本 | 一区二区三区国产精品 | 午夜影院中文字幕 | 午夜免费在线观看 | 在线毛片网 | 午夜在线 | 欧美日韩电影免费观看 | 农夫在线精品视频免费观看 | 亚洲精品视频在线播放 | 天堂男人av| 激情的网站 | 成人免费在线观看 | 在线精品亚洲欧美日韩国产 | 亚洲国产欧美在线 | 免费毛片www com cn | 婷婷综合网| 久草网址 | 精品蜜桃一区二区三区 | 91色网站 | 国产精品99久久久久久久久 | 日本色综合 | 五月婷婷在线播放 | 国际精品久久 | 一本大道久久a久久精二百 国产成人免费在线 | 国产偷录视频叫床高潮对白 | 天天干狠狠操 |