wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 9935|回復: 9
收起左側

簡易數字密碼鎖proteus仿真+單片機源代碼

  [復制鏈接]
ID:205137 發表于 2017-12-14 11:42 | 顯示全部樓層 |閱讀模式
如感興趣,請指教!
1、設計一個簡易電子密碼鎖。
2、用矩陣鍵盤組成0~9數字鍵、確認鍵、刪除鍵;用8位共陽數碼管組成顯示電路提示信息。
3、輸入密碼,在數碼管上顯示,當6位密碼輸入完時按下確認鍵,對輸入密碼與設定密碼
   進行比對,若正確,則開鎖,此處用LED發光二極管一秒作為提示,若密碼不正確,則
   發出“嘀嘀”聲。
仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
2.JPG
0.png
單片機源程序如下:
  1. #include<reg52.h>
  2. typedef unsigned char u8;
  3. typedef unsigned int u16;
  4. u8 which,buff[6];
  5. u8 s_1,s_2,s_3,s_4,s_5,s_6;
  6. sbit DI=P3^6;
  7. sbit LED=P3^7;
  8. u8 code right[]={1,2,3,4,5,6};
  9. u8 code distab[]={
  10. 0xc0,0xF9,0xA4,0xB0,0x99,                                 
  11. 0x92,0x82,0xF8,0x80,0x90,                       
  12. 0x88,0x83,0xC6,0xA1,0x86,                       
  13. 0x8E,0xFF,0x0C,0x89,0x7F,0xBF};
  14. void delayms(u8 xms)
  15. {
  16.         u16 i,j;
  17.         for(i=xms;i>0;i--)
  18.                 for(j=110;j>0;j--);
  19. }
  20. void di()
  21. {
  22.         DI=0;
  23.         delayms(500);
  24.         DI=1;
  25.         delayms(500);
  26. }

  27. u8 conn()
  28. {
  29.         if((buff[0]==right[0])&&(buff[1]==right[1])&&(buff[2]==right[2])&&
  30.                 (buff[3]==right[3])&&(buff[4]==right[4])&&(buff[5]==right[5]))
  31.         return 1;
  32.         else return 0;
  33. }
  34. void display(u8 num)
  35. {
  36.         if(which>0)
  37.         switch(which)
  38.                 {
  39.                         case 1:if(num==21)which=0;s_1=num;if(num==20)which=0;buff[0]=s_1;         break;
  40.                         case 2:if(num==21)which=1;s_2=num;if(num==20)which=1;buff[1]=s_2;         break;
  41.                         case 3:if(num==21)which=2;s_3=num;if(num==20)which=2;buff[2]=s_3;         break;
  42.                         case 4:if(num==21)which=3;s_4=num;if(num==20)which=3;buff[3]=s_4;    break;
  43.                         case 5:if(num==21)which=4;s_5=num;if(num==20)which=4;buff[4]=s_5;    break;
  44.                         case 6:if(num==21)which=5;s_6=num;if(num==20)which=5;buff[5]=s_6;         break;
  45.                         case 7:                which=6;
  46.                                                 if(num==21)
  47.                                                 {
  48.                                                         if(conn()==0)
  49.                                                         {
  50.                                                                 di();di();di();
  51.                                                                 LED=1;
  52.                                                         }
  53.                                                         else
  54.                                                         {
  55.                                                                 LED=0;delayms(500);delayms(500);LED=1;
  56.                                                         }
  57.                                                         which=0;
  58.                                                 }
  59.                                                 break;
  60.                         default:        which=6;                                                 break;
  61.                 }
  62.                 else di();
  63. }
  64. void dis()
  65. {
  66.         switch(which)
  67.         {
  68.          case 1:P0=distab[s_1];        P2=0x80;delayms(5);        P0=0xff;  P2=0x00;         break;
  69.          case 2:P0=distab[s_1];        P2=0x40;delayms(5);        P0=0xff;
  70.                          P0=distab[s_2];        P2=0x80;delayms(5);        P0=0xff;  P2=0x00;         break;
  71.          case 3:P0=distab[s_1];        P2=0x20;delayms(5);        P0=0xff;
  72.                          P0=distab[s_2];        P2=0x40;delayms(5);        P0=0xff;  
  73.                         P0=distab[s_3];        P2=0x80;delayms(5);        P0=0xff;  P2=0x00;         break;
  74.          case 4:P0=distab[s_1];        P2=0x10;delayms(5);        P0=0xff;
  75.                          P0=distab[s_2];        P2=0x20;delayms(5);        P0=0xff;  
  76.                         P0=distab[s_3];        P2=0x40;delayms(5);        P0=0xff;  
  77.                          P0=distab[s_4];        P2=0x80;delayms(5);        P0=0xff;  P2=0x00;         break;
  78.          case 5:P0=distab[s_1];        P2=0x08;delayms(5);        P0=0xff;
  79.                          P0=distab[s_2];        P2=0x10;delayms(5);        P0=0xff;  
  80.                         P0=distab[s_3];        P2=0x20;delayms(5);        P0=0xff;  
  81.                          P0=distab[s_4];        P2=0x40;delayms(5);        P0=0xff;  
  82.                         P0=distab[s_5];        P2=0x80;delayms(5);        P0=0xff;  P2=0x00;         break;
  83.          case 6:P0=distab[s_1];        P2=0x04;delayms(5);        P0=0xff;
  84.                          P0=distab[s_2];        P2=0x08;delayms(5);        P0=0xff;  
  85.                         P0=distab[s_3];        P2=0x10;delayms(5);        P0=0xff;  
  86.                          P0=distab[s_4];        P2=0x20;delayms(5);        P0=0xff;  
  87.                         P0=distab[s_5];        P2=0x40;delayms(5);        P0=0xff;  
  88.                         P0=distab[s_6];        P2=0x80;delayms(5);        P0=0xff;  P2=0x00;         break;
  89.         }
  90. }
  91. void matrixkeyscan()                                           //matrix矩陣
  92. {
  93.         u8 temp,key;                                                   //temp臨時變量
  94.         P1=0xfe;                                                           //將第一行電平置低,其余行全為高
  95.         temp=P1;                                                           //讀取P3口當前狀態的置賦予臨時變量temp,用于后面計算
  96.         temp=temp&0xf0;                                                   //判斷temp的高四位是否有0,如果temp的高四位有0,那么與運算后
  97.                                                                                     //結果必然不等于0xf0;temp的高四位實際上是矩陣鍵盤的4個列線
  98.                                                                                     //從而通過temp與0xf0"&"運算后的結果是否為0xf0來判斷第一行是否
  99.                                                                                     //有按鍵按下
  100.         if(temp!=0xf0)                                                //“temp&0xf0”的結果,如果temp不等于0xf0,說明有鍵被按下
  101.         {
  102.                 delayms(10);                                       
  103.                 temp=P1;                                           //重新讀一次P3口數據
  104.                 temp=temp&0xf0;                                   //重新進行一次與運算
  105.                 if(temp!=0xf0)
  106.                 {
  107.                         temp=P1;
  108.                         switch(temp)
  109.                         {
  110.                                 case 0xee:        key=0;        which+=1;        break;
  111.                                 case 0xde:        key=1;        which+=1;        break;
  112.                                 case 0xbe:        key=2;        which+=1;        break;
  113.                                 case 0x7e:        key=3;        which+=1;        break;
  114.                         }
  115.                         while(temp!=0xf0)                           //等待按鍵釋放
  116.                         {
  117.                                 temp=P1;
  118.                                 temp=temp&0xf0;
  119.                         }
  120.                         display(key);
  121.                 }
  122.         }
  123.         P1=0xfd;
  124.         temp=P1;
  125.         temp=temp&0xf0;
  126.         if(temp!=0xf0)
  127.         {
  128.                 delayms(10);
  129.                 temp=P1;
  130.                 temp=temp&0xf0;
  131.                 if(temp!=0xf0)
  132.                 {
  133.                         temp=P1;
  134.                         switch(temp)
  135.                         {
  136.                                 case 0xed:        key=4;        which+=1;break;
  137.                                 case 0xdd:        key=5;        which+=1;break;
  138.                                 case 0xbd:        key=6;        which+=1;break;
  139.                                 case 0x7d:        key=7;        which+=1;break;
  140.                         }
  141.                         while(temp!=0xf0)
  142.                         {
  143.                                 temp=P1;
  144.                                 temp=temp&0xf0;
  145.                         }
  146.                         display(key);
  147.                 }
  148.         }
  149.         P1=0xfb;
  150.         temp=P1;
  151.         temp=temp&0xf0;
  152.         if(temp!=0xf0)
  153.         {
  154.                 delayms(10);
  155.                 temp=P1;
  156.                 temp=temp&0xf0;
  157.                 if(temp!=0xf0)
  158.                 {
  159.                         temp=P1;
  160.                         switch(temp)
  161.                         {
  162.                                 case 0xeb:        key=8;        which+=1;break;
  163.                                 case 0xdb:        key=9;        which+=1;break;
  164. //                                case 0xbb:        key=10;        which+=1;break;
  165. //                                case 0x7b:        key=11;        which+=1;break;
  166.                         }
  167.                         while(temp!=0xf0)
  168.                         {
  169.                                 temp=P1;
  170.                                 temp=temp&0xf0;
  171.                         }
  172.                         display(key);
  173.                 }
  174.         }
  175.         P1=0xf7;
  176.         temp=P1;
  177.         temp=temp&0xf0;
  178.         if(temp!=0xf0)
  179.         {
  180.                 delayms(10);
  181.                 temp=P1;
  182.                 temp=temp&0xf0;
  183.                 if(temp!=0xf0)
  184.                 {
  185.                         temp=P1;
  186.                         switch(temp)
  187.                         {
  188.                                 case 0xe7:        key=20;        break;
  189.                                 case 0xd7:        key=21; which+=1;        break;
  190. //                                case 0xb7:        key=14;        which+=1;break;
  191. //                                case 0x77:        key=15;        which+=1;break;
  192. ……………………

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

所有資料51hei提供下載:
mimasuo.rar (210.87 KB, 下載次數: 186)




評分

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

查看全部評分

回復

使用道具 舉報

ID:261805 發表于 2017-12-14 23:09 | 顯示全部樓層
我是新手,不太明白為什么那些按鍵可以不用和別的元件連接起來?
回復

使用道具 舉報

ID:205137 發表于 2017-12-15 15:30 | 顯示全部樓層
丨Star 發表于 2017-12-14 23:09
我是新手,不太明白為什么那些按鍵可以不用和別的元件連接起來?

按鍵是和單片機連接的,用連接線標號模式連的,這樣看起來能夠簡潔一點。
回復

使用道具 舉報

ID:6813 發表于 2019-11-28 22:35 | 顯示全部樓層
打不開啊
回復

使用道具 舉報

ID:451155 發表于 2019-12-8 12:48 | 顯示全部樓層
66666厲害了
回復

使用道具 舉報

ID:659524 發表于 2019-12-11 10:55 來自觸屏版 | 顯示全部樓層
sukichang 發表于 2019-11-28 22:35
打不開啊

能不能發一份資料
回復

使用道具 舉報

ID:664974 發表于 2019-12-16 15:58 來自觸屏版 | 顯示全部樓層
好想做一個試試
回復

使用道具 舉報

ID:514746 發表于 2020-6-19 13:19 | 顯示全部樓層
作者 你好 你這個仿真是在幾點幾版本上畫的啊?
回復

使用道具 舉報

ID:784081 發表于 2020-6-22 07:50 | 顯示全部樓層
這個打不開啊,proteus和keil版本是不是太低了
回復

使用道具 舉報

10#
無效樓層,該帖已經被刪除
ID:1082257 發表于 2023-6-7 11:00 | 顯示全部樓層
這個怎么改密碼欸
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
亚洲欧洲美洲综合色网| 粉嫩av一区二区夜夜嗨| 欧美videossexotv100| 高清电影在线免费观看| 亚洲a∨无码无在线观看| 91久久精品视频| 欧美日韩午夜精品| 久久99精品国产| 日韩影片中文字幕| 午夜精品在线视频一区| 国产精品伦理久久久久久| 精品成人一区二区三区免费视频| 中文字幕av影视| 乱子伦视频在线看| 国产精品88a∨| 欧美日韩卡一卡二| 美女一区二区视频| 日韩av黄色| 色aⅴ色av色av偷拍| 国产 日韩 欧美 在线| 亚洲色欲久久久综合网东京热| 久久精品国产欧美亚洲人人爽| 国产性色一区二区| 日韩国产专区| 性爱视频在线播放| 少妇与大狼拘作爱性a| 日韩女优一区二区| 亚洲午夜精品一区二区三区| 日韩在线视频免费观看| 一色桃子久久精品亚洲| 国产一区二区不卡在线| 精品一区二区男人吃奶| 国产高清av在线| 欧美一级淫片a免费视频| 久操视频在线观看免费| 欧美做受777cos| 国产精品久久久久久av福利软件| 欧美大胆人体bbbb| 国产精品污污网站在线观看 | 久久久久高清精品| 欧美激情自拍| 91精品国产经典在线观看| 一级特黄特色的免费大片| www日本高清| 天天色影综合网| 国产精品wwwww| 国产香蕉一区二区三区| 99视频在线播放| 蜜月aⅴ免费一区二区三区| 亚洲网友自拍偷拍| 国产在线播放一区二区三区| 欧美亚洲网站| 第一社区sis001原创亚洲| 美女在线视频免费| 国产美女www| 欧美亚洲综合一区| 国产精品一色哟哟哟| 男女视频在线观看免费| 污视频在线免费观看| 欧美丰满美乳xxⅹ高潮www| 国产亚洲视频一区| 日韩欧美一区二区三区四区五区 | 四虎黄色影院| 二区三区不卡不卡视频| 黄色www在线观看| 亚洲视频福利| 国产精品久久久久久吹潮| 欧美xxxx免费虐| 免费h片在线| 四虎.com| 黄色污污视频软件| 三级网站在线播放| 国产精品久久久久久亚洲影视| 日韩精品在线一区二区| 69堂成人精品免费视频| 亚洲精选视频在线| 18国产免费视频| 3d成人动漫网站| 日本乱人伦一区| 国产精品国产三级国产三级人妇| 久久精品官网| 四季av一区二区三区免费观看| 欧洲精品久久久久毛片完整版| av亚洲一区| 精品国模一区二区三区欧美 | 精品国产一级片| 亚洲第一天堂| 国产一级片一区二区| 少妇太紧太爽又黄又硬又爽| 日本乱子伦xxxx| 人妻精品无码一区二区三区 | 国产精品久久国产精麻豆96堂| 亚洲一级片网站| 污污污污污污www网站免费| 国产在线精品二区| 国产精品偷伦一区二区| 国产视频一区二| 成人影院免费观看| 偷偷要色偷偷| 国产午夜精品一区理论片| 日本精品在线| gogogo高清在线观看免费完整版| 国产超级va在线视频| 精品资源在线看| 最近中文字幕免费mv2018在线 | 国产欧美久久一区二区| 精品国产一区二区三区日日嗨| 国产精自产拍久久久久久| 99re在线国产| 特级西西444| 拔插拔插华人永久免费| 亚洲免费黄色录像| 亚洲欧洲久久久| 国产主播在线播放| 国产无码精品视频| 亚洲一区在线观| 免费在线观看黄色小视频| 免费av中文字幕| 视频1区2区3区| 色偷偷亚洲第一成人综合网址| 国际av在线| 欧美电影在线观看网站| 在线播放一区二区精品视频| 97在线播放视频| 国产一区二区网| 欧美国产综合在线| 国产精品第12页| 一本加勒比北条麻妃| 日本二区在线观看| 中文区中文字幕免费看| 户外露出精品视频国产| 久久精品一区二区三区资源网| 麻豆入口视频在线观看| 国产午夜视频| 日韩av地址| 成人免费观看视频大全| 日韩有吗在线观看| 精品无码国模私拍视频| 狠狠色丁香久久婷婷综合_中| 在线日本成人| 中文国产一区| 国产专区欧美精品| 亚洲欧美激情小说另类| 亚洲成人网在线观看| 亚洲国产精品电影在线观看| 免费av网站大全久久| 国产精品视频一二三区| 日韩欧美激情在线| 青青草99啪国产免费| 国产精品一区二区3区| 亚洲欧美日产图| 日本丰满少妇xxxx| 蜜桃无码一区二区三区| japanese国产| 性18欧美另类| 国产视频网址在线| 久久97精品| 国产一区二区三区黄视频 | 国产99久久精品一区二区 夜夜躁日日躁| 欧美专区日韩视频| 国产精品男女视频| 日韩av电影免费播放| 亚洲欧美自偷自拍另类| 国产精品7777777| 日产精品久久久久久久| 国产精品无码AV| 天海翼中文字幕| 菠萝蜜视频网址| 一级视频在线免费观看| 免费影视亚洲| 911精品美国片911久久久| 国产清纯在线一区二区www| 亚洲一区免费视频| 精品一区二区影视| 一区二区理论电影在线观看| 在线免费精品视频| 亚洲国产日韩欧美在线动漫| 欧美日产国产成人免费图片| 国产精品一区二区三区毛片淫片 | 凸凹人妻人人澡人人添| 色哟哟在线观看| 亚洲国产合集| 蜜臀精品一区二区三区在线观看 | 国产精品综合网站| 国产成人强伦免费视频网站| 欧美一区二区三区观看| 麻豆国产在线视频| 少妇视频在线观看| 蜜臀av一区二区在线观看| 欧美精品18+| 51色欧美片视频在线观看| 国产一区二区三区黄| 亚洲av无码专区在线播放中文| xxxxxx国产| 三级黄色的网站| 黄色网页在线免费观看| 一区二区日韩| 久久久综合激的五月天| 欧美日韩在线观看一区二区 | 成人影院午夜久久影院| 宅男深夜视频| 日韩不卡在线| 136国产福利精品导航网址| 国产精品乱子久久久久| 精品福利一二区| 国产精品大片wwwwww| 国产又大又黄又粗又爽| 日本道在线观看| 诱人的瑜伽老师3hd中字| 国产精品免费不| 国产成人高清在线| 欧美精品 国产精品| 久久国产精品精品国产色婷婷| 国产毛片久久久久久| 中文字幕人妻一区二区三区视频| 一本大道香蕉久在线播放29| 91高清一区| 欧美日韩视频在线观看一区二区三区| 国产一级精品aaaaa看| 国产激情无码一区二区三区 | 一区二区中文字幕在线观看| 国产精品视频观看| 91麻豆精品在线观看| 日韩精品一区二区三区中文字幕 | 91高清视频在线| 国产成人av一区二区三区| 国产情侣av自拍| 免费网站观看www在线观| 欧美性巨大欧美| 国产一区一一区高清不卡| 久久久九九九九| 欧美亚洲第一页| 免费成人深夜夜行p站| 亚洲欧洲视频在线观看| 午夜欧美激情| 99精品免费观看| 九色.com| 三级成人黄色影院| 成人一级片网址| 99热99精品| 亚洲精品国产suv| 嫩草影院中文字幕| 亚洲精品一级片| 黄色软件在线观看| 久久久水蜜桃av免费网站| 亚洲精品一区二区网址| 日产精品高清视频免费| 亚洲国产无线乱码在线观看| 国产黄色小视频在线| 国产精品1024| 亚洲午夜激情免费视频 | 欧美黄色免费在线观看| 免费在线视频你懂得| 秋霞午夜av一区二区三区| 欧美性三三影院| 亚洲韩国在线| 亚洲黄色a级片| 成人97精品毛片免费看| 成人福利视频在线看| 亚洲亚裔videos黑人hd| 中文字幕第80页| 911美女片黄在线观看游戏| 丁香六月婷婷| 久久久久久久久久久影院| 极品美乳网红视频免费在线观看| 亚洲尤物在线| 最近2019中文字幕大全第二页 | 国产精品久久久久99| 黄色一级片中国| 国产精品va在线观看视色| 久久综合久色欧美综合狠狠| 91超碰在线电影| 免费黄色国产视频| 黄色国产在线| 不卡视频一二三四| 国产在线视频欧美| 综合国产视频| 国产伦精品一区二区三区在线播放| 免费看精品久久片| 欧美精品一区在线播放| 亚欧洲乱码视频| 国产对白国语对白| 在线视频免费在线观看一区二区| 久久精品视频中文字幕| 少妇av片在线观看| а√天堂在线官网| 综合久久国产九一剧情麻豆| 亚洲在线不卡| 国产视频你懂的| 成人爽a毛片免费啪啪红桃视频| 亚洲综合一区二区| 久久久成人精品一区二区三区| 国产探花精品一区二区| 精品一区二区三区四区五区| 中文字幕999| 手机看片国产1024| 成人香蕉社区| 日韩视频在线你懂得| 欧美久久在线| 亚洲va在线观看| 97影院秋霞午夜在线观看| 国产清纯在线一区二区www| 日韩精品福利视频| 牛人国产偷窥女洗浴在线观看| 爱高潮www亚洲精品| 欧美不卡123| 97精品人妻一区二区三区蜜桃| av女片在线| 国产美女精品在线| 亚洲欧美日韩高清| 视频在线观看免费高清| 看黄色免费网站| 97久久精品人人做人人爽50路| 永久看看免费大片| 黄色片视频免费| 国产经典一区| 欧美精品久久久久久久多人混战 | 91日韩在线播放| 国产香蕉在线观看| 91成人精品| 国产精品99免视看9| 国产女人18毛片水18精| 国产精品毛片久久| 97婷婷涩涩精品一区| 成人欧美一区二区三区黑人一 | 成人黄色片免费| 国产美女被遭强高潮免费网站| h在线观看视频免费网站| 亚洲精品一级| 国产精品每日更新| 亚洲精品9999| h文在线观看免费| 不卡的av中国片| 手机看片日韩国产| 国产视频一二| 国产精品久久精品日日| 欧美a在线视频| 国产粉嫩一区二区三区在线观看| 午夜伦欧美伦电影理论片| 久久综合桃花网| 大香伊人中文字幕精品| 91精品久久久久久久99蜜桃| 国产美女永久免费无遮挡 | 国产清纯美女被跳蛋高潮一区二区久久w | av成人免费| 欧美成人精品二区三区99精品| 久久只有这里有精品| 91大神在线观看线路一区| 日韩av资源在线播放| 亚洲黄色av片| 欧美jizz18性欧美| 亚洲欧美综合网| 农村妇女精品一二区| 在线播放麻豆| 一区二区免费看| 国产chinesehd精品露脸| 一级毛片在线播放| 亚洲国产精品久久久久婷婷884| 国产原创中文在线观看| 欧美高清成人| 在线中文字幕一区| 毛片视频免费播放| 欧美美女黄色| 日韩一区二区三区四区 | 国产性生活一级片| av剧情在线观看| 亚洲成人午夜影院| 国产一线在线观看| 成人日韩视频| 国语自产精品视频在免费| 中文字幕av影院| 91精品二区| 国产精品一区二区三区四区五区 | 欧美激情日韩图片| 免费精品一区二区| 国产一区二区美女| 久久er99精品| 色中文字幕在线观看| 激情乱色小说视频| 午夜久久久久久久久久一区二区| 国产精品扒开腿做爽爽爽a片唱戏| 国产视频九色蝌蚪| 可以在线观看的黄色网址| 99精品久久99久久久久| 99999精品视频| 午夜影视一区二区三区| 久久精品视频99| 男人用机机桶女人| 91美女视频网站| 日本wwwxx| 欧美日韩看看2015永久免费| 成人国产精品一区二区| av亚洲男人天堂| 国产91精品免费| 日韩av片网站| 欧美视频精品| 日韩美女视频中文字幕| 柠檬在线导航福利| 久久色在线视频| 久热精品在线观看视频|