在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 32. 電子密碼鎖設(shè)計

            32. 電子密碼鎖設(shè)計

            作者: 時間:2016-11-18 來源:網(wǎng)絡(luò) 收藏
            1.實驗任務(wù)
            根據(jù)設(shè)定好的密碼,采用二個按鍵實現(xiàn)密碼的輸入功能,當(dāng)密碼輸入正確之后,鎖就打開,如果輸入的三次的密碼不正確,就鎖定按鍵3秒鐘,同時發(fā)現(xiàn)報警聲,直到?jīng)]有按鍵按下3種后,才打開按鍵鎖定功能;否則在3秒鐘內(nèi)仍有按鍵按下,就重新鎖定按鍵3秒時間并報警。
            2.電路原理

            圖4.32.1
            3.系統(tǒng)板上硬件連線
            (1).把“單片機(jī)系統(tǒng)”區(qū)域中的P0.0/AD0用導(dǎo)線連接到“音頻放大模塊”區(qū)域中的SPKIN端子上;
            (2).把“音頻放大模塊”區(qū)域中的SPKOUT端子接喇叭和;
            (3).把“單片機(jī)系統(tǒng)”區(qū)域中的P2.0/A8-P2.7/A15用8芯排線連接到“四路靜態(tài)數(shù)碼顯示”區(qū)域中的任一個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)線連接到“獨立式鍵盤”區(qū)域中的SP1和SP2端子上;
            4.程序設(shè)計內(nèi)容
            (1).密碼的設(shè)定,在此程序中密碼是固定在程序存儲器ROM中,假設(shè)預(yù)設(shè)的密碼為“12345”共5位密碼。
            (2).密碼的輸入問題:
            由于采用兩個按鍵來完成密碼的輸入,那么其中一個按鍵為功能鍵,另一個按鍵為數(shù)字鍵。在輸入過程中,首先輸入密碼的長度,接著根據(jù)密碼的長度輸入密碼的位數(shù),直到所有長度的密碼都已經(jīng)輸入完畢;或者輸入確認(rèn)功能鍵之后,才能完成密碼的輸入過程。進(jìn)入密碼的判斷比較處理狀態(tài)并給出相應(yīng)的處理過程。
            (3).按鍵禁止功能:初始化時,是允許按鍵輸入密碼,當(dāng)有按鍵按下并開始進(jìn)入按鍵識別狀態(tài)時,按鍵禁止功能被激活,但啟動的狀態(tài)在3次密碼輸入不正確的情況下發(fā)生的。
            5.C語言源程序
            #include
            unsignedcharcodeps[]={1,2,3,4,5};
            unsignedcharcodedispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
            0x6d,0x7d,0x07,0x7f,0x6f,0x00,0x40};
            unsignedcharpslen=9;
            unsignedchartemplen;
            unsignedchardigit;
            unsignedcharfuncount;
            unsignedchardigitcount;
            unsignedcharpsbuf[9];
            bitcmpflag;
            bithibitflag;
            biterrorflag;
            bitrightflag;
            unsignedintsecond3;
            unsignedintaa;
            unsignedintbb;
            bitalarmflag;
            bitexchangeflag;
            unsignedintcc;
            unsignedintdd;
            bitokflag;
            unsignedcharoka;
            unsignedcharokb;
            voidmain(void)
            {
            unsignedchari,j;
            P2=dispcode[digitcount];
            TMOD=0x01;
            TH0=(65536-500)/256;
            TL0=(65536-500)%256;
            TR0=1;
            ET0=1;
            EA=1;
            while(1)
            {
            if(cmpflag==0)
            {
            if(P3_6==0)//functionkey
            {
            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)//digitkey
            {
            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;
            }
            elseif(funcount>1)
            {
            psbuf[funcount-2]=digitcount;
            }
            }
            else
            {
            second3=0;
            }
            while(P3_7==0);
            }
            }
            }
            else
            {
            cmpflag=0;
            for(i=0;i{
            if(ps!=psbuf)
            {
            hibitflag=1;
            i=pslen;
            errorflag=1;
            rightflag=0;
            cmpflag=0;
            second3=0;
            gotoa;
            }
            }
            cc=0;
            errorflag=0;
            rightflag=1;
            hibitflag=0;
            a:cmpflag=0;
            }
            }
            }

            voidt0(void)interrupt1using0
            {
            TH0=(65536-500)/256;
            TL0=(65536-500)%256;
            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;
            }
            elseif(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;
            }
            }
            }
            }


            評論


            技術(shù)專區(qū)

            關(guān)閉