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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

電子密碼鎖設計

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


程序如下:
  1. #include <AT89X52.H>
  2.   
  3. unsigned char code ps[]={1,2,3,4,5};
  4. unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
  5.                          0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
  6. unsigned char pslen=9;
  7. unsigned char templen;
  8. unsigned char digit;
  9. unsigned char funcount;
  10. unsigned char digitcount;
  11. unsigned char psbuf[9];
  12. bit cmpflag;
  13. bit hibitflag;
  14. bit errorflag;
  15. bit rightflag;
  16. unsigned int second3;
  17. unsigned int aa;
  18. unsigned int bb;
  19. bit alarmflag;
  20. bit exchangeflag;
  21. unsigned int cc;
  22. unsigned int dd;
  23. bit okflag;
  24. unsigned char oka;
  25. unsigned char okb;
  26.   
  27. void main(void)
  28. {
  29.   unsigned char i,j;
  30.   
  31.   P2=dispcode[digitcount];
  32.   TMOD=0x01;
  33.   TH0=(65536-500)/256;
  34.   TL0=(65536-500)%256;
  35.   TR0=1;
  36.   ET0=1;
  37.   EA=1;
  38.   
  39.   while(1)
  40.     {
  41.       if(cmpflag==0)
  42.         {
  43.           if(P3_6==0) //function key
  44.             {
  45.               for(i=10;i>0;i--)
  46.               for(j=248;j>0;j--);
  47.               if(P3_6==0)
  48.                 {
  49.                   if(hibitflag==0)        
  50.                     {
  51.                       funcount++;
  52.                           if(funcount==pslen+2)  
  53.                          {
  54.                           funcount=0;
  55.                           cmpflag=1;
  56.                          }
  57.                        P1=dispcode[funcount];  
  58.                     }
  59.                     else
  60.                       {
  61.                          second3=0;
  62.                       }
  63.                   while(P3_6==0);
  64.                 }
  65.            }
  66.   
  67.           if(P3_7==0) //digit key
  68.             {
  69.               for(i=10;i>0;i--)
  70.               for(j=248;j>0;j--);
  71.               if(P3_7==0)
  72.                 {
  73.                   if(hibitflag==0)
  74.                     {
  75.                       digitcount++;                     
  76.                       if(digitcount==10)
  77.                         {
  78.                           digitcount=0;
  79.                         }
  80.                       P2=dispcode[digitcount];
  81.                       if(funcount==1)
  82.                         {
  83.                           pslen=digitcount;
  84.                           templen=pslen;
  85.                         }
  86.                         else if(funcount>1)
  87.                           {
  88.                             psbuf[funcount-2]=digitcount;
  89.                           }
  90.                     }
  91.                     else
  92.                       {
  93.                         second3=0;
  94.                       }
  95.                   while(P3_7==0);
  96.                 }               
  97.            }
  98.       }
  99.       else
  100.            {
  101.             cmpflag=0;
  102.             for(i=0;i<pslen;i++)
  103.               {
  104.                 if(ps[i]!=psbuf[i])
  105.                   {
  106.                     hibitflag=1;
  107.                     i=pslen;
  108.                     errorflag=1;
  109.                     rightflag=0;
  110.                     cmpflag=0;
  111.                     second3=0;
  112.                     goto a;
  113.                   }
  114.               }
  115.             cc=0;
  116.             errorflag=0;
  117.             rightflag=1;
  118.             hibitflag=0;
  119. a:          cmpflag=0;
  120.            }
  121.       
  122.     }
  123. }
  124.   
  125. void t0(void) interrupt 1 using 0
  126. {
  127.   TH0=(65536-500)/256;
  128.   TL0=(65536-500)%256;
  129.   
  130.   if((errorflag==1) && (rightflag==0))
  131.     {
  132.       bb++;
  133.       if(bb==800)
  134.         {
  135.           bb=0;
  136.           alarmflag=~alarmflag;
  137.         }
  138.       if(alarmflag==1)
  139.         {
  140.           P0_0=~P0_0;
  141.         }
  142.   
  143.       aa++;
  144.       if(aa==800)
  145.         {
  146.           aa=0;
  147.           P0_1=~P0_1;
  148.         }
  149.       second3++;
  150.       if(second3==6400)
  151.         {
  152.           second3=0;
  153.           hibitflag=0;
  154.           errorflag=0;
  155.           rightflag=0;
  156.           cmpflag=0;
  157.           P0_1=1;
  158.           alarmflag=0;
  159.           bb=0;
  160.           aa=0;
  161.         }
  162.     }
  163.   
  164.   if((errorflag==0) && (rightflag==1))
  165.     {
  166.       P0_1=0;
  167.       cc++;
  168.       if(cc<1000)
  169.         {
  170.           okflag=1;
  171.         }
  172.         else if(cc<2000)
  173.           {
  174.             okflag=0;
  175.           }
  176.           else
  177.             {
  178.               errorflag=0;
  179.               rightflag=0;
  180.               hibitflag=0;
  181.               cmpflag=0;
  182.               P0_1=1;
  183.               cc=0;
  184.               oka=0;
  185.               okb=0;
  186.               okflag=0;
  187.               P0_0=1;
  188.             }
  189.       if(okflag==1)
  190.         {
  191.           oka++;
  192.           if(oka==2)
  193.             {
  194.               oka=0;
  195.               P0_0=~P0_0;
  196.             }
  197.         }
  198.       else
  199.           {
  200.             okb++;
  201.             if(okb==3)
  202.               {
  203.                 okb=0;
  204.                 P0_0=~P0_0;
  205.               }
  206.           }
  207.     }
  208. }
復制代碼


32.電子密碼鎖設計.rar (87.66 KB, 下載次數: 40)

評分

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

查看全部評分

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 久久国产精品-国产精品 | 国产精品综合久久 | 成人av一区二区亚洲精 | 国产精品久久久亚洲 | 成年无码av片在线 | 亚洲天堂中文字幕 | 午夜小视频在线观看 | 亚洲麻豆| 亚洲综合激情 | 国产欧美日韩精品一区二区三区 | a爱视频 | 成人妇女免费播放久久久 | 亚洲欧美v| 国产一区二区三区免费 | 国产视频一二三区 | 国产伦精品一区二区 | 国产精品久久久久一区二区三区 | 日本免费小视频 | 亚洲一区在线观看视频 | 久热m3u8 | 日韩一区二区免费视频 | 久久日本| 国产日韩在线观看一区 | 久久免费精品 | 色.com| xx性欧美肥妇精品久久久久久 | 国产高清在线精品一区二区三区 | 日本成年免费网站 | 亚洲成人av| 视频一区二区中文字幕 | 色偷偷人人澡人人爽人人模 | 亚洲日本一区二区 | 亚洲狠狠爱一区二区三区 | 夜夜草视频 | 欧美1级 | 一区二区三区在线免费观看 | www.久久久久久久久久久久 | 国产一级网站 | 99久久免费精品国产男女高不卡 | 国产成人精品一区二区三区在线 | 男人的天堂视频网站 |