在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī) 畢業(yè)設(shè)計(jì) 電子密碼鎖程序 含電路圖

            基于51單片機(jī) 畢業(yè)設(shè)計(jì) 電子密碼鎖程序 含電路圖

            作者: 時(shí)間:2016-11-23 來源:網(wǎng)絡(luò) 收藏

            #include
            #include
            #include
            #define uchar unsigned char
            #define uint unsigned int
            uchar code table[]="Input Password: ";
            uchar code table1[]=" Input Error! ";
            uchar code table2[]="You are welcome!";
            uint ucSendBuffer[6]={0,0,0,0,0,0};
            uint mima[6];
            sbit lcdrs=P2^0;
            sbit lcdrw=P2^1;
            sbit lcden=P2^2;
            sbit led=P2^5;
            sbit fmq=P2^4;
            sbit jdq=P2^3;
            sbit key=P2^6;
            uint x;
            uint num,temp;
            uint keyscan();
            void delay_50us(uint t)
            {
            uint y;
            for(;t>0;t--)
            for(y=19;y>0;y--);
            }
            void delay_1ms(uint z)
            {
            uint x,y;
            for(x=z;x>0;x--)
            for(y=110;y>0;y--);
            }
            void delay(void)
            {
            uint i;
            for(i=100;i>0;i--)
            _nop_();
            }
            void delay1ms()
            {
            uchar i;
            for(i=124;i>0;i--); //延時(shí)124*8+10=1002us
            }
            void write_com(uchar com)
            {
            lcdrs=0;
            lcdrw=0;
            lcden=0;
            P0=com;
            delay_50us(10);
            lcden=1;
            delay_50us(20);
            lcden=0;
            }
            void write_data(uchar date)
            {
            lcden=0;
            lcdrs=1;
            lcdrw=0;
            P0=date;
            delay_50us(10);
            lcden=1;
            delay_50us(20);
            lcden=0;
            }
            void init()
            {
            write_com(0x38);
            delay_50us(100);
            write_com(0x01);
            delay_50us(100);
            write_com(0x06);
            delay_50us(100);
            write_com(0x0d);
            delay_50us(100);
            }
            void main()
            {
            uint a=0,q=0,d=0,jiesu;
            uint b=0;
            uint kai;
            delay_50us(300);
            init();
            fmq=1;
            write_com(0x80);
            for(x=0;x<16;x++)
            {
            write_data(table[x]);
            delay_50us(100);
            }
            write_com(0x80+0x44);
            while(1)
            {
            if(keyscan()!=0)
            {
            kai=keyscan();
            mima[a++]=kai;
            write_com(0x80+0x44+b);
            write_data(keyscan());
            num=0;
            b++;
            if(b>7&&kai!=0x7f)
            {
            write_com(0x80);
            for(x=0;x<16;x++)
            {
            write_data(table1[x]);
            delay_50us(100);
            }
            delay_1ms(700);
            break;
            }
            else if(kai==0x7f&&b<=7)
            {
            if(b<7)
            {
            write_com(0x80);
            for(x=0;x<16;x++)
            {
            write_data(table1[x]);
            delay_50us(100);
            }
            delay_1ms(700);
            break;
            }
            else
            {
            while(q<=5)
            {
            if(mima[q]==ucSendBuffer[q]+0x30)
            {
            d++;
            }
            q++;
            }
            if(d==6)
            {
            fmq=0;
            write_com(0x80);
            for(x=0;x<16;x++)
            {
            write_data(table2[x]);
            delay_50us(100);
            }
            jdq=0;
            delay_1ms(500);
            fmq=1;
            led=0;
            break;
            }
            else
            {
            write_com(0x80);
            for(x=0;x<16;x++)
            {
            write_data(table1[x]);
            delay_50us(100);
            }
            delay_1ms(700);
            break;
            }
            }
            }
            else if(kai==0x7e)
            {
            break;
            }
            }
            }
            }
            uint keyscan()
            {
            P1=0xef;
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f) //確認(rèn)是否按下
            {
            delay_1ms(5);
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            temp=P1;
            switch(temp)
            {
            case 0xee:num=0x31;
            break;
            case 0xed:num=0x34;
            break;
            case 0xeb:num=0x37;
            break;
            case 0xe7:num=0x7f;
            break;
            default:num=0;
            break;
            }
            while(temp!=0x0f) //松手檢測(cè)
            {
            temp=P1;
            temp=temp&0x0f;
            }
            }
            }
            P1=0xdf;
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            delay_1ms(5);
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            temp=P1;
            switch(temp)
            {
            case 0xde:num=0x32;
            break;
            case 0xdd:num=0x35;
            break;
            case 0xdb:num=0x38;
            break;
            case 0xd7:num=0x30;
            break;
            default:num=0;
            break;
            }
            while(temp!=0x0f)
            {
            temp=P1;
            temp=temp&0x0f;
            }
            }
            }
            P1=0xbf;
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            delay_1ms(5);
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            temp=P1;
            switch(temp)
            {
            case 0xbe:num=0x33;
            break;
            case 0xbd:num=0x36;
            break;
            case 0xbb:num=0x39;
            break;
            case 0xb7:num=0x7e;
            break;
            default:num=0;
            break;
            }
            while(temp!=0x0f)
            {
            temp=P1;
            temp=temp&0x0f;
            }
            }
            }
            P1=0x7f;
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            delay_1ms(5);
            temp=P1;
            temp=temp&0x0f;
            while(temp!=0x0f)
            {
            temp=P1;
            switch(temp)
            {
            case 0x7e:num=0x41;
            break;
            case 0x7d:num=0x42;
            break;
            case 0x7b:num=0x43;
            break;
            case 0x77:num=0x44;
            break;
            default:num=0;
            break;
            }
            while(temp!=0x0f)
            {
            temp=P1;
            temp=temp&0x0f;
            }
            }
            }
            return num;
            }


            評(píng)論


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

            關(guān)閉