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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1882|回復: 0
收起左側

基于51單片機的密碼鎖程序分享

[復制鏈接]
ID:965495 發(fā)表于 2021-9-12 14:49 | 顯示全部樓層 |閱讀模式
經過本次設計,使學習者不僅更加深刻領會微型計算機從硬件組成到軟件編程的基本原理和知識,而且更要學會應用,務必做到理論和實踐相結合,掌握硬件分析、軟件設計的基本思想和方法,提高分析問題、解決問題和工程實踐的能力。

程序功能:
                  1、開鎖:
                  下載程序后,直接按六次S6(即代表數字0),8位LED亮,鎖被打開,輸入密碼時,
                  六位數碼管依次顯示小橫杠。
                  2、更改密碼:
                  只有當開鎖(LED亮)后,該功能方可使用。
                  首先按下更改密碼鍵S16,然后設置相應密碼,此時六位數碼管會顯示設置密碼對應
                  的數字。最后設置完六位后,按下S17確認密碼更改,此后新密碼即生效。
                  3、重試密碼:
                  當輸入密碼時,密碼輸錯后按下鍵S18,可重新輸入六位密碼。
                  當設置密碼時,設置中途想更改密碼,也可按下此鍵重新設置。
                  4、關閉密碼鎖:
                  按下S19即可將打開的密碼鎖關閉。
單片機源程序如下:
  1. #include<reg52.h>

  2. #define uchar unsigned char
  3. #define uint unsigned int

  4. uchar old1,old2,old3,old4,old5,old6; //原始密碼000000
  5. uchar new1,new2,new3,new4,new5,new6;  //每次MCU采集到的密碼輸入
  6. uchar a=16,b=16,c=16,d=16,e=16,f=16; //送入數碼管顯示的變量
  7. uchar wei,key,temp;

  8. bit allow,genggai,ok,wanbi,retry,close;         //各個狀態(tài)位

  9. sbit dula=P2^6;
  10. sbit wela=P2^7;
  11. sbit beep=P2^3;

  12. unsigned char code table[]=
  13. {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,
  14. 0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00,0x40};



  15. void delay(unsigned char i)
  16. {
  17.         uchar j,k;
  18.   for(j=i;j>0;j--)
  19.     for(k=125;k>0;k--);
  20. }



  21. void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)
  22. {
  23.    dula=0;
  24.    P0=table[a];
  25.    dula=1;
  26.    dula=0;

  27.    wela=0;
  28.    P0=0xfe;
  29.    wela=1;
  30.    wela=0;
  31.    delay(5);

  32.    P0=table[b];
  33.    dula=1;
  34.    dula=0;

  35.    P0=0xfd;
  36.    wela=1;
  37.    wela=0;
  38.    delay(5);

  39.    P0=table[c];
  40.    dula=1;
  41.    dula=0;

  42.    P0=0xfb;
  43.    wela=1;
  44.    wela=0;
  45.    delay(5);

  46.    P0=table[d];
  47.    dula=1;
  48.    dula=0;

  49.    P0=0xf7;
  50.    wela=1;
  51.    wela=0;
  52.    delay(5);

  53.    P0=table[e];
  54.    dula=1;
  55.    dula=0;

  56.    P0=0xef;
  57.    wela=1;
  58.    wela=0;
  59.    delay(5);

  60.    P0=table[f];
  61.    dula=1;
  62.    dula=0;

  63.    P0=0xdf;
  64.    wela=1;
  65.    wela=0;
  66.    delay(5);
  67. }


  68. void keyscan()
  69. {
  70.   {        
  71.     P3=0xfe;
  72.     temp=P3;
  73.     temp=temp&0xf0;
  74.     if(temp!=0xf0)
  75.     {
  76.       delay(10);
  77.       if(temp!=0xf0)
  78.       {        
  79.         temp=P3;
  80.         switch(temp)
  81.         {
  82.           case 0xee:
  83.                key=0;
  84.                            wei++;
  85.                break;

  86.           case 0xde:
  87.                key=1;
  88.                            wei++;
  89.                break;

  90.           case 0xbe:
  91.                key=2;
  92.                            wei++;
  93.                break;

  94.           case 0x7e:
  95.                key=3;
  96.                            wei++;
  97.                break;
  98.          }
  99.          while(temp!=0xf0)
  100.         {
  101.            temp=P3;
  102.            temp=temp&0xf0;
  103.            beep=0;
  104.          }
  105.          beep=1;
  106.       }
  107.     }
  108.     P3=0xfd;
  109.     temp=P3;
  110.     temp=temp&0xf0;
  111.     if(temp!=0xf0)
  112.     {
  113.       delay(10);
  114.       if(temp!=0xf0)
  115.       {
  116.         temp=P3;
  117.         switch(temp)
  118.         {
  119.           case 0xed:
  120.                key=4;
  121.                            wei++;
  122.                break;

  123.           case 0xdd:
  124.                key=5;
  125.                            wei++;
  126.                break;

  127.           case 0xbd:
  128.                key=6;
  129.                            wei++;
  130.                break;

  131.           case 0x7d:
  132.                key=7;
  133.                            wei++;
  134.                break;
  135.          }
  136.          while(temp!=0xf0)
  137.          {
  138.            temp=P3;
  139.            temp=temp&0xf0;
  140.            beep=0;
  141.          }
  142.          beep=1;
  143.       }
  144.       }
  145.     P3=0xfb;
  146.     temp=P3;
  147.     temp=temp&0xf0;
  148.     if(temp!=0xf0)
  149.     {
  150.       delay(10);
  151.       if(temp!=0xf0)
  152.       {
  153.         temp=P3;
  154.         switch(temp)
  155.         {
  156.           case 0xeb:
  157.                key=8;
  158.                            wei++;
  159.                break;

  160.           case 0xdb:
  161.                key=9;
  162.                            wei++;
  163.                break;
  164.                            
  165.           case 0xbb:
  166.                genggai=1;
  167.                            wei=0;
  168.                break;

  169.           case 0x7b:
  170.                              if(allow)
  171.                ok=1;
  172.                break;
  173.          }
  174.         while(temp!=0xf0)
  175.          {
  176.            temp=P3;
  177.            temp=temp&0xf0;
  178.            beep=0;
  179.          }
  180.          beep=1;
  181.       }
  182.       }
  183.           P3=0xf7;
  184.     temp=P3;
  185.     temp=temp&0xf0;
  186.     if(temp!=0xf0)
  187.     {
  188.       delay(10);
  189.       if(temp!=0xf0)
  190.       {
  191.         temp=P3;
  192.         switch(temp)
  193.         {
  194.           case 0xe7:
  195.                              retry=1;
  196.                break;

  197.           case 0xd7:
  198.                              close=1;
  199.                break;
  200.          }
復制代碼




回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久精品色欧美aⅴ一区二区 | 在线免费观看黄a | 成人精品一区二区三区中文字幕 | 午夜天堂精品久久久久 | 国产精品久久久久aaaa九色 | 亚洲免费网 | a精品视频 | 蜜臀网| 国产欧美日韩一区 | 噜噜噜色网 | 91精品久久久久久久久久入口 | 伊人网综合 | 欧美日韩久久 | 日韩精品不卡 | 国产成人亚洲精品自产在线 | 天天干天天干 | 福利成人 | 国产成人久久精品一区二区三区 | 1级毛片| 啪啪免费 | 欧美日韩一区二区三区四区 | 成人久久久 | 久久99这里只有精品 | 99久久免费精品 | 欧美日韩久久精品 | 欧美久| 黑人粗黑大躁护士 | 亚洲一区二区在线播放 | 日韩国产在线 | 国产一区二区免费电影 | 韩日视频在线观看 | 久久久性 | 午夜a级理论片915影院 | 亚洲第一av| 日韩成人精品在线 | 久久综合成人精品亚洲另类欧美 | 亚洲视频免费观看 | 福利久久 | 欧美一级片在线播放 | 日韩在线视频一区二区三区 | 久草免费在线视频 |