RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

使用單片機(jī)設(shè)計(jì)密碼鎖的詳細(xì)資料和代碼概述

Wildesbeast ? 來源:?jiǎn)纹瑱C(jī) ? 作者:h1654155169.2086 ? 2020-05-05 15:11 ? 次閱讀

1.實(shí)驗(yàn)任務(wù)

根據(jù)設(shè)定好的密碼,采用二個(gè)按鍵實(shí)現(xiàn)密碼的輸入功能,當(dāng)密碼輸入正確之后,鎖就打開,如果輸入的三次的密碼不正確,就鎖定按鍵3秒鐘,同時(shí)發(fā)現(xiàn)報(bào)警聲,直到?jīng)]有按鍵按下3種后,才打開按鍵鎖定功能;否則在3秒鐘內(nèi)仍有按鍵按下,就重新鎖定按鍵3秒時(shí)間并報(bào)警。

2.電路原理

圖4.32.1

3.系統(tǒng)板上硬件連線

(1). 把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPK IN端子上;

(2). 把“音頻放大模塊”區(qū)域中的SPK OUT端子接喇叭和;

(3). 把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8-P2.7/A15用8芯排線連接到“四路靜態(tài)數(shù)碼顯示”區(qū)域中的任一個(gè)ABCDEFGH端子上;

(4). 把“單片機(jī)系統(tǒng)“區(qū)域中的P1.0用導(dǎo)線連接到“八路發(fā)光二極管模塊”區(qū)域中的L1端子上;

(5). 把“單片機(jī)系統(tǒng)”區(qū)域中的P3.6/WR、P3.7/RD用導(dǎo)線連接到“獨(dú)立式鍵盤”區(qū)域中的SP1和SP2端子上;

4.程序設(shè)計(jì)內(nèi)容

(1). 密碼的設(shè)定,在此程序中密碼是固定在程序存儲(chǔ)器ROM中,假設(shè)預(yù)設(shè)的密碼為“12345”共5位密碼。

(2). 密碼的輸入問題:

由于采用兩個(gè)按鍵來完成密碼的輸入,那么其中一個(gè)按鍵為功能鍵,另一個(gè)按鍵為數(shù)字鍵。在輸入過程中,首先輸入密碼的長(zhǎng)度,接著根據(jù)密碼的長(zhǎng)度輸入密碼的位數(shù),直到所有長(zhǎng)度的密碼都已經(jīng)輸入完畢;或者輸入確認(rèn)功能鍵之后,才能完成密碼的輸入過程。進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過程。

(3). 按鍵禁止功能:初始化時(shí),是允許按鍵輸入密碼,當(dāng)有按鍵按下并開始進(jìn)入按鍵識(shí)別狀態(tài)時(shí),按鍵禁止功能被激活,但啟動(dòng)的狀態(tài)在3次密碼輸入不正確的情況下發(fā)生的。

5.C語言源程序

#include 《AT89X52.H》

unsigned char code ps[]={1,2,3,4,5};

unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,

0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};

unsigned char pslen=9;

unsigned char templen;

unsigned char digit;

unsigned char funcount;

unsigned char digitcount;

unsigned char psbuf[9];

bit cmpflag;

bit hibitflag;

bit errorflag;

bit rightflag;

unsigned int second3;

unsigned int aa;

unsigned int bb;

bit alarmflag;

bit exchangeflag;

unsigned int cc;

unsigned int dd;

bit okflag;

unsigned char oka;

unsigned char okb;

void main(void)

{

unsigned char i,j;

P2=dispcode[digitcount];

TMOD=0x01;

TH0=(65536-500)/256;

TL0=(65536-500)%6;

TR0=1;

ET0=1;

EA=1;

while(1)

{

if(cmpflag==0)

{

if(P3_6==0) //function key

{

for(i=10;i》0;i--)

for(j=248;j》0;j--);

if(P3_6==0)

{

if(hibitflag==0)

{

funcount++;

if(funcount==pslen+2)

{

funcount=0;

cmpflag=1;

}

P1=dispcode[funcount];

}

else

{

second3=0;

}

while(P3_6==0);

}

}

if(P3_7==0) //digit key

{

for(i=10;i》0;i--)

for(j=248;j》0;j--);

if(P3_7==0)

{

if(hibitflag==0)

{

digitcount++;

if(digitcount==10)

{

digitcount=0;

}

P2=dispcode[digitcount];

if(funcount==1)

{

pslen=digitcount;

templen=pslen;

}

else if(funcount》1)

{

psbuf[funcount-2]=digitcount;

}

}

else

{

second3=0;

}

while(P3_7==0);

}

}

}

else

{

cmpflag=0;

for(i=0;i《pslen;i++)

{

if(ps[i]!=psbuf[i])

{

hibitflag=1;

i=pslen;

errorflag=1;

rightflag=0;

cmpflag=0;

second3=0;

goto a;

}

}

cc=0;

errorflag=0;

rightflag=1;

hibitflag=0;

a: cmpflag=0;

}

}

}

void t0(void) interrupt 1 using 0

{

TH0=(65536-500)/256;

TL0=(65536-500)%6;

if((errorflag==1) && (rightflag==0))

{

bb++;

if(bb==800)

{

bb=0;

alarmflag=~alarmflag;

}

if(alarmflag==1)

{

P0_0=~P0_0;

}

aa++;

if(aa==800)

{

aa=0;

P0_1=~P0_1;

}

second3++;

if(second3==6400)

{

second3=0;

hibitflag=0;

errorflag=0;

rightflag=0;

cmpflag=0;

P0_1=1;

alarmflag=0;

bb=0;

aa=0;

}

}

if((errorflag==0) && (rightflag==1))

{

P0_1=0;

cc++;

if(cc《1000)

{

okflag=1;

}

else if(cc《2000)

{

okflag=0;

}

else

{

errorflag=0;

rightflag=0;

hibitflag=0;

cmpflag=0;

P0_1=1;

cc=0;

oka=0;

okb=0;

okflag=0;

P0_0=1;

}

if(okflag==1)

{

oka++;

if(oka==2)

{

oka=0;

P0_0=~P0_0;

}

}

else

{

okb++;

if(okb==3)

{

okb=0;

P0_0=~P0_0;

}

}

}

}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6035

    文章

    44554

    瀏覽量

    634629
  • 存儲(chǔ)器
    +關(guān)注

    關(guān)注

    38

    文章

    7484

    瀏覽量

    163761
  • 密碼鎖
    +關(guān)注

    關(guān)注

    6

    文章

    249

    瀏覽量

    34993
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    基于STM32單片機(jī)設(shè)計(jì)的電子密碼鎖

    本文檔的主要內(nèi)容介紹了如何基于STM32單片機(jī)設(shè)計(jì)電子密碼鎖詳細(xì)資料概述
    發(fā)表于 09-05 16:00

    用PIC單片機(jī)設(shè)計(jì)電子密碼鎖

    用PIC單片機(jī)設(shè)計(jì)電子密碼鎖
    發(fā)表于 01-04 14:16 ?3次下載

    如何基于STM32單片機(jī)設(shè)計(jì)電子密碼鎖詳細(xì)資料概述

    本文檔的主要內(nèi)容介紹了如何基于STM32單片機(jī)設(shè)計(jì)電子密碼鎖詳細(xì)資料概述
    發(fā)表于 06-08 08:00 ?151次下載

    使用單片機(jī)設(shè)計(jì)的電子密碼鎖代碼和protel電路圖詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)的電子密碼鎖代碼+電路圖。代碼親測(cè)可用,詳細(xì)原理
    發(fā)表于 12-17 08:00 ?18次下載
    使用<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的電子<b class='flag-5'>密碼鎖</b>源<b class='flag-5'>代碼</b>和protel電路圖<b class='flag-5'>詳細(xì)資料</b>免費(fèi)下載

    使用51單片機(jī)設(shè)計(jì)的密碼鎖程序資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)的密碼鎖程序資料免費(fèi)下載,需要自取。
    發(fā)表于 12-18 08:00 ?16次下載
    使用51<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的<b class='flag-5'>密碼鎖</b>程序<b class='flag-5'>資料</b>免費(fèi)下載

    STC89C52單片機(jī)電子密碼鎖源程序的詳細(xì)資料說明

    本文檔的主要內(nèi)容詳細(xì)介紹的是STC89C52單片機(jī)電子密碼鎖源程序的詳細(xì)資料說明。
    發(fā)表于 12-18 16:11 ?34次下載
    STC89C52<b class='flag-5'>單片機(jī)</b>電子<b class='flag-5'>密碼鎖</b>源程序的<b class='flag-5'>詳細(xì)資料</b>說明

    單片機(jī)程序入門之網(wǎng)絡(luò)密碼鎖中計(jì)算機(jī)端程序的詳細(xì)資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)程序入門之網(wǎng)絡(luò)密碼鎖中計(jì)算機(jī)端程序的詳細(xì)資料免費(fèi)下載。
    發(fā)表于 03-01 17:20 ?7次下載
    <b class='flag-5'>單片機(jī)</b>程序入門之網(wǎng)絡(luò)<b class='flag-5'>密碼鎖</b>中計(jì)算機(jī)端程序的<b class='flag-5'>詳細(xì)資料</b>免費(fèi)下載

    單片機(jī)電子密碼鎖代碼資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是單片機(jī)電子密碼鎖代碼資料免費(fèi)下載。
    發(fā)表于 04-11 18:28 ?15次下載
    <b class='flag-5'>單片機(jī)</b>電子<b class='flag-5'>密碼鎖</b>源<b class='flag-5'>代碼</b><b class='flag-5'>資料</b>免費(fèi)下載

    使用51單片機(jī)設(shè)計(jì)電子密碼鎖的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)電子密碼鎖的程序免費(fèi)下載。
    發(fā)表于 07-26 17:36 ?50次下載
    使用51<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)電子<b class='flag-5'>密碼鎖</b>的程序免費(fèi)下載

    使用單片機(jī)設(shè)計(jì)電子密碼鎖LCD1602顯示的程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用單片機(jī)設(shè)計(jì)電子密碼鎖LCD1602顯示的程序免費(fèi)下載。
    發(fā)表于 05-24 14:50 ?30次下載
    使用<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)電子<b class='flag-5'>密碼鎖</b>LCD1602顯示的程序免費(fèi)下載

    使用51單片機(jī)設(shè)計(jì)指紋密碼鎖的電路原理圖和PCB資料免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)指紋密碼鎖的電路原理圖和PCB資料免費(fèi)下載。
    發(fā)表于 07-05 08:00 ?75次下載
    使用51<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)指紋<b class='flag-5'>密碼鎖</b>的電路原理圖和PCB<b class='flag-5'>資料</b>免費(fèi)下載

    使用51單片機(jī)設(shè)計(jì)的按鍵密碼鎖源程序和工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)的按鍵密碼鎖源程序和工程文件免費(fèi)下載。
    發(fā)表于 07-08 08:00 ?9次下載
    使用51<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的按鍵<b class='flag-5'>密碼鎖</b>源程序和工程文件免費(fèi)下載

    基于STM32單片機(jī)設(shè)計(jì)的數(shù)字密碼鎖工程文件免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是基于STM32單片機(jī)設(shè)計(jì)的數(shù)字密碼鎖工程文件免費(fèi)下載。
    發(fā)表于 07-08 08:00 ?85次下載
    基于STM32<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的數(shù)字<b class='flag-5'>密碼鎖</b>工程文件免費(fèi)下載

    使用51單片機(jī)設(shè)計(jì)的矩陣鍵盤密碼鎖程序免費(fèi)下載

    本文檔的主要內(nèi)容詳細(xì)介紹的是使用51單片機(jī)設(shè)計(jì)的矩陣鍵盤密碼鎖程序免費(fèi)下載。
    發(fā)表于 08-07 08:00 ?8次下載
    使用51<b class='flag-5'>單片機(jī)設(shè)</b>計(jì)的矩陣鍵盤<b class='flag-5'>密碼鎖</b>程序免費(fèi)下載

    基于51單片機(jī)密碼鎖(掉電可記憶密碼)例程源代碼

    基于51單片機(jī)密碼鎖(掉電可記憶密碼)例程源代碼
    發(fā)表于 05-16 11:13 ?25次下載
    RM新时代网站-首页