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

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 8910|回復(fù): 20
打印 上一主題 下一主題
收起左側(cè)

51單片機(jī)密碼鎖設(shè)計(jì)源碼+仿真圖+文檔 (全部文件在附件里面)

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:454420 發(fā)表于 2018-12-25 15:18 | 只看該作者 |只看大圖 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
51單片機(jī)密碼鎖設(shè)計(jì)源碼+仿真圖+報(bào)告(全部文件在附件里面)
下載過(guò)的同學(xué)記得回來(lái)留個(gè)言
(自己兩周做的設(shè)計(jì)不容易)



附件文件.png (105.68 KB, 下載次數(shù): 173)

文件

文件

報(bào)告.png (546.18 KB, 下載次數(shù): 96)

報(bào)告

報(bào)告

電路圖.png (118.21 KB, 下載次數(shù): 99)

電路圖

電路圖

51單片機(jī)密碼鎖設(shè)計(jì).7z

6.34 MB, 下載次數(shù): 416, 下載積分: 黑幣 -5

全部文件

評(píng)分

參與人數(shù) 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎(jiǎng)勵(lì)!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏16 分享淘帖 頂3 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:454420 發(fā)表于 2018-12-25 15:19 | 只看該作者
電氣信息學(xué)院
設(shè)計(jì)任務(wù)書(shū)

名稱        電子密碼鎖設(shè)計(jì)
   
時(shí)間      
一、任務(wù)及要求
設(shè)計(jì)任務(wù):
本課題要求以MCS-51系列單片機(jī)為核心,設(shè)計(jì)一個(gè)簡(jiǎn)易電子密碼鎖。
(1)具備密碼輸入、密碼修改功能;
(2)*其它功能
設(shè)計(jì)要求:
(1)確定系統(tǒng)設(shè)計(jì)方案;
(2)進(jìn)行系統(tǒng)的硬件設(shè)計(jì);
(3)完成應(yīng)用程序設(shè)計(jì);
(4)應(yīng)用系統(tǒng)的硬件和軟件的調(diào)試。
二、進(jìn)度安排
第一周:
周一:集中布置設(shè)計(jì)任務(wù)和相關(guān)事宜,查資料確定系統(tǒng)總體方案。
周二~周三:完成硬件設(shè)計(jì)和電路連接
周四~周日:完成軟件設(shè)計(jì)
第二周:
周一~周三:程序調(diào)試
周四~周五:設(shè)計(jì)文檔撰寫(xiě)。周五進(jìn)行和設(shè)計(jì)結(jié)果檢查。
三、參考資料
1、王迎旭等.單片機(jī)原理及及應(yīng)用[M]. 2版.機(jī)械工業(yè)出版社,2011
2、胡漢才.單片機(jī)原理及其接口技術(shù)[M].3版.清華大學(xué)出版社,2010
目   錄
第一章  設(shè)計(jì)任務(wù)及要求        1
1.1  設(shè)計(jì)任務(wù)        1
1.2  設(shè)計(jì)要求        1
第二章  系統(tǒng)方案設(shè)計(jì)        1
2.1   設(shè)計(jì)框圖        1
2.2   框圖簡(jiǎn)介        1
第三章  系統(tǒng)硬件電路設(shè)計(jì)        2
3.1   單片機(jī)最小系統(tǒng)        2
3.2   按鍵電路        2
3.3   顯示電路        3
3.4   LED指示開(kāi)鎖燈、蜂鳴器        4
第四章  系統(tǒng)軟件設(shè)計(jì)        4
4.1   程序流程圖        4
4.2   程序簡(jiǎn)介        5
第五章  系統(tǒng)仿真及調(diào)試        5
5.1   軟件仿真及調(diào)試        5
5.2   實(shí)物調(diào)試        6
第六章  總結(jié)與設(shè)計(jì)調(diào)試體會(huì)        8
附錄一   程序源代碼        9
附錄二   硬件電路圖        14
第七章  電氣信息學(xué)院設(shè)計(jì)評(píng)分標(biāo)準(zhǔn)        15
回復(fù)

使用道具 舉報(bào)

板凳
ID:454420 發(fā)表于 2018-12-25 15:20 | 只看該作者
附錄一   程序源代碼
#include "reg52.h"               
typedef unsigned int u16;         
typedef unsigned char u8;
#define GPIO_DIG P0                      //數(shù)碼管送數(shù)據(jù)
#define GPIO_KEY P1                      //矩形按鍵
sbit LSA=P2^0;                         //數(shù)碼管位選
sbit LSB=P2^1;
sbit LSC=P2^2;                                 
sbit k1=P2^3;                              //獨(dú)立按鍵
sbit k2=P2^4;
sbit beep=P3^0;                           //蜂鳴器
sbit led=P3^1;                            //LED開(kāi)鎖
char srmm[8]=                                        //輸入密碼   
{0x08,0x08,0x08,0x08,0x08,0x08,0x08,0x08};               
char ysmm[8]=                            //原始密碼1111 1111
{0x06,0x06,0x06,0x06,0x06,0x06,0x06,0x06};
u8 code table[]=
{0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,};
u16 b,n,x,y,i,mm,ss,m1,m2,s1,s2,z=0,j=1,s=0,m=0,t=0;       
u8 Mima;                                           // 存放密碼
u8 KeyValue;                                         // 按鍵值定義
void delay(u16 i)                            //延時(shí)函數(shù)
{while(i--);}
void shuoding()                                    //鎖定
{
   mm=1;ss=30;
   m2=mm/10;m1=mm%10;
   s2=ss/10;s1=ss%10;
   TMOD=0x01;   
   TH0=(65536-50000)/256;  
   TL0=(65536-50000)%256;   
   EA=1;ET0=1;TR0=1;
}
void timer0() interrupt 1
{
   TH0=(65536-50000)/256;  
   TL0=(65536-50000)%256;
   t++;
   if(t==20)
   {
   t=0;ss--;
   if(ss==0)
        {j=1;}
   }
   m2=mm/10;m1=mm%10;
   s2=ss/10;s1=ss%10;
}
void bep()                           //蜂鳴器函數(shù)
{
   for(b=0;b<100;b++)
   {
    beep=~beep;
    delay(50);
   }
   b=0;
}
void xgmm()                              //修改密碼顯示函數(shù)
{        for(n=0;n<=7;n++)
        {srmm[n]=0x01;}
}
void dsmm()                              //待輸入密碼顯示函數(shù)  _ _ _ _ _ _ _ _
{        for(n=0;n<=7;n++)
        {srmm[n]=0x08;}
}
void mmzq()                               //密碼正確顯示函數(shù)  - - - - - - - -
{        for(n=0;n<=7;n++)
        {srmm[n]=0x40;}
}
void DigDisplaysr()                   //輸入顯示函數(shù)
{for(i=0;i<8;i++)
  {switch(i)         
        {
        case(0):LSA=0;LSB=0;LSC=0;P0=srmm[0];break;//顯示第0位
        case(1):LSA=1;LSB=0;LSC=0;P0=srmm[1];break;//顯示第1位
        case(2):LSA=0;LSB=1;LSC=0;P0=srmm[2];break;//顯示第2位
        case(3):LSA=1;LSB=1;LSC=0;P0=srmm[3];break;//顯示第3位
        case(4):LSA=0;LSB=0;LSC=1;P0=srmm[4];break;//顯示第4位
        case(5):LSA=1;LSB=0;LSC=1;P0=srmm[5];break;//顯示第5位
        case(6):LSA=0;LSB=1;LSC=1;P0=srmm[6];break;//顯示第6位
        case(7):LSA=1;LSB=1;LSC=1;P0=srmm[7];break;//顯示第7位       
        }delay(100);P0=0x00;
  }
}
void daojishi()                                       //鎖定后倒計(jì)時(shí)顯示
{
  for(i=0;i<8;i++)
  { switch(i)
        {
         case(0): LSA=0;LSB=0;LSC=0;P0=0x00;break;
         case(1): LSA=1;LSB=0;LSC=0;P0=0x00;break;
         case(2): LSA=0;LSB=1;LSC=0;P0=table[m2];break;
         case(3): LSA=1;LSB=1;LSC=0;P0=table[m1];break;
     case(4): LSA=0;LSB=0;LSC=1;P0=0x40;break;
         case(5): LSA=1;LSB=0;LSC=1;P0=table[s2];break;
         case(6): LSA=0;LSB=1;LSC=1;P0=table[s1];break;
         case(7): LSA=1;LSB=1;LSC=1;P0=0x00;break;
        }delay(100);P0=0x00;
  }
}
void key()                                                 //獨(dú)立按鍵掃描
{
        if(k1==0)                  
        {        delay(100);   
                if(k1==0)         
                {j=1;dsmm();led=0;}
                while(!k1);         
        }
        if(k2==0)                  
        {        delay(2);   
                if(k2==0)         
                {j=2;xgmm();led=0;}
                while(!k2);         
        }       
}
void KeyDownsr(void)                             //矩形按鍵掃描
{
char a=0;
GPIO_KEY=0x0f;
if(GPIO_KEY!=0x0f)          //讀取按鍵是否按下
{   delay(1000);            //延時(shí)10ms進(jìn)行消抖
        if(GPIO_KEY!=0x0f)      //再次檢測(cè)鍵盤(pán)是否按下
        {   GPIO_KEY=0X0F;                //測(cè)試列
                switch(GPIO_KEY)
                {   case(0X07):        KeyValue=0;break;
                        case(0X0b):        KeyValue=1;break;
                        case(0X0d): KeyValue=2;break;
                        case(0X0e):        KeyValue=3;break;
                }
                GPIO_KEY=0XF0;                                //測(cè)試行
                switch(GPIO_KEY)
                {   case(0X70):        KeyValue=KeyValue;break;
                        case(0Xb0):        KeyValue=KeyValue+4;break;
                        case(0Xd0): KeyValue=KeyValue+8;break;
                        case(0Xe0):        KeyValue=KeyValue+12;break;
                }
                while((a<50)&&(GPIO_KEY!=0xf0))         //檢測(cè)按鍵松手檢測(cè)
                {delay(1000);a++;}       
            switch(KeyValue)                                 //給相應(yīng)的按鍵賦值
            {   case(0):Mima=0x06; break;
                        case(1):Mima=0x5b; break;
                        case(2):Mima=0x4f; break;
                        case(3):break;
                        case(4):Mima=0x66; break;
                        case(5):Mima=0x6d; break;
                        case(6):Mima=0x7d; break;
                        case(7):break;                       
                        case(8):Mima=0x07; break;
                        case(9):Mima=0x7f; break;
                        case(10):Mima=0x6f; break;
                        case(11):Mima=0x3f; break;
                        case(12):break;
                        case(13):break;
                        case(14):break;
                        case(15):break;
                        case(16):break;
                }srmm[s]=Mima;s++;bep();
        }
}
}
void main()                                       
{        led=0;
    while(1)
        {   key();
                if(j==1)
                {   do
                        {        KeyDownsr();DigDisplaysr();  
                                if(s==8)
                                {   s=0;m=0;                                if(ysmm[0]==srmm[0]&&ysmm[1]==srmm[1]&&ysmm[2]==srmm[2]&&ysmm[3]==srmm[3]&&ysmm[4]==srmm[4]&&ysmm[5]==srmm[5]&&ysmm[6]==srmm[6]&&ysmm[7]==srmm[7])
                                        {mmzq();led=1;z=0;}
                                        else
                                        {  z++;dsmm();
                                           if(z==3)
                                           {led=0;z=0;shuoding();
                                                  while(mm!=0||ss!=0)
                                                  {daojishi();}
                                           }               
                                        }
                                }       
                        }while(m==8);if(m==8){m=0;}
                }
                if(j==2)
                {        while(m<8)
                        {KeyDownsr();DigDisplaysr();  
                                if(s==8)
                                {        s=0;m=0;
        if(ysmm[0]==srmm[0]&&ysmm[1]==srmm[1]&&ysmm[2]==srmm[2]&&ysmm[3]==srmm[3]&&ysmm[4]==srmm[4]&&ysmm[5]==srmm[5]&&ysmm[6]==srmm[6]&&ysmm[7]==srmm[7])
                                        {mmzq();z=0;led=1;
                                                while(m<8)
                                   {  KeyDownsr();DigDisplaysr();
                                                        if(s==8)
                                                        {       
                                                                for(x=0;x<=7;x++)
                                                            {ysmm[x]=srmm[x];}
                                                                s=0;led=0;
                                                        }
                                                }j=1;dsmm();       
                                        }
                                        else
                                        {z++;xgmm();
                                                if(z==3)
                                           {z=0;shuoding();
                                                  while(mm!=0||ss!=60)
                                                  {daojishi();}
                                           }               
                                        }s=0;
                                }       
                        }
                        if(m==8)m=0;
                }
        }
}
回復(fù)

使用道具 舉報(bào)

地板
ID:552896 發(fā)表于 2019-6-2 18:57 | 只看該作者
感謝大佬
回復(fù)

使用道具 舉報(bào)

5#
ID:561036 發(fā)表于 2019-6-12 16:31 | 只看該作者
感謝分享 正愁著沒(méi)有思路
回復(fù)

使用道具 舉報(bào)

6#
ID:560514 發(fā)表于 2019-6-14 02:41 來(lái)自手機(jī) | 只看該作者
好資料,51黑有你更精彩。!
回復(fù)

使用道具 舉報(bào)

7#
ID:563043 發(fā)表于 2019-6-16 02:41 | 只看該作者
為什么程序燒到普中的51單片機(jī)上數(shù)碼管不能完全顯示出來(lái)
回復(fù)

使用道具 舉報(bào)

8#
ID:561185 發(fā)表于 2019-6-16 06:09 來(lái)自手機(jī) | 只看該作者
為什么鎖定倒計(jì)時(shí)只能30秒,后邊就無(wú)限循環(huán)了
回復(fù)

使用道具 舉報(bào)

9#
ID:563528 發(fā)表于 2019-6-16 11:17 | 只看該作者
可以使用
回復(fù)

使用道具 舉報(bào)

10#
ID:563528 發(fā)表于 2019-6-16 13:11 | 只看該作者
好用·
回復(fù)

使用道具 舉報(bào)

11#
ID:505975 發(fā)表于 2019-6-28 22:40 | 只看該作者
感謝大佬
回復(fù)

使用道具 舉報(bào)

12#
ID:52915 發(fā)表于 2019-9-12 23:06 | 只看該作者
學(xué)習(xí)一下,謝謝LZ!!
回復(fù)

使用道具 舉報(bào)

13#
ID:620850 發(fā)表于 2019-10-12 08:13 | 只看該作者
感謝大佬
回復(fù)

使用道具 舉報(bào)

14#
ID:454420 發(fā)表于 2019-10-14 18:42 | 只看該作者
zyq2367503734 發(fā)表于 2019-6-16 06:09
為什么鎖定倒計(jì)時(shí)只能30秒,后邊就無(wú)限循環(huán)了

軟件里面你自己看懂了就會(huì)設(shè)置了,超級(jí)簡(jiǎn)單
回復(fù)

使用道具 舉報(bào)

15#
ID:4811 發(fā)表于 2019-10-21 22:23 來(lái)自手機(jī) | 只看該作者
請(qǐng)問(wèn)為什么運(yùn)行以后,液晶屏上一直是閃爍的,全暗或者全亮。
回復(fù)

使用道具 舉報(bào)

16#
ID:599674 發(fā)表于 2019-10-25 21:09 | 只看該作者
感謝大佬的分享
回復(fù)

使用道具 舉報(bào)

17#
ID:659282 發(fā)表于 2019-12-9 09:34 | 只看該作者
非常有用
回復(fù)

使用道具 舉報(bào)

18#
ID:660410 發(fā)表于 2019-12-10 11:13 | 只看該作者
樓主好人
回復(fù)

使用道具 舉報(bào)

19#
ID:660410 發(fā)表于 2019-12-10 11:13 | 只看該作者
樓主好人
回復(fù)

使用道具 舉報(bào)

20#
ID:670014 發(fā)表于 2019-12-21 21:19 | 只看該作者
好用 謝謝
回復(fù)

使用道具 舉報(bào)

21#
ID:1128489 發(fā)表于 2024-7-8 17:52 | 只看該作者
感謝樓主

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: hitomi一区二区三区精品 | 国产在线91 | 久久小视频 | 亚洲一区二区三区四区五区中文 | 日韩av一区二区在线观看 | 欧美在线视频一区二区 | 欧美激情综合 | 欧美一级欧美一级在线播放 | 久久精品网 | 成人精品一区二区三区中文字幕 | a级大片| 伊人激情网 | 国内精品一区二区 | www.久久99 | 在线观看国产www | 麻豆国产精品777777在线 | 国产精品一区视频 | 国产成人99av超碰超爽 | 99re国产视频 | av大片在线 | 99视频网 | 欧美一区二区三区大片 | 欧美一区二区三区视频在线观看 | 国产精品国产三级国产aⅴ无密码 | 成人精品在线观看 | 欧美日韩电影免费观看 | 国产91丝袜在线播放 | 亚洲精品一区二区三区在线 | 99久久久无码国产精品 | 欧美激情精品久久久久久 | 日韩欧美字幕 | 999久久久久久久久6666 | 欧美在线观看免费观看视频 | 亚洲情视频 | 欧美激情一区二区 | 亚洲九色 | 精品久久久久久久久亚洲 | 爱爱视频网 | 免费一区二区三区 | 九九热这里 | 亚洲精品国产a久久久久久 午夜影院网站 |