在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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驅(qū)動(dòng)1602液晶+按鍵 protues仿真

            51驅(qū)動(dòng)1602液晶+按鍵 protues仿真

            作者: 時(shí)間:2016-11-25 來(lái)源:網(wǎng)絡(luò) 收藏
            51驅(qū)動(dòng)1602液晶+按鍵 protues仿真



            程序:

            本文引用地址:http://www.biyoush.com/article/201611/321330.htm

            #include
            #define uchar unsigned char
            #define uint unsigned int
            unsigned char Trg;
            unsigned char Cont;
            sbit lcdrs=P0^4;
            sbit lcden=P0^6;

            uchar code table1[]="20121029SAT12:00";
            uchar code table2[]="0123456789";
            void delay(uint z)
            {
            uint x,y;
            for(x=0;x for(y=0;y<110;y++)
            ;
            }
            void KeyRead( void )
            {
            unsigned char ReadData = P1^0xff; // 1
            Trg = ReadData & (ReadData ^ Cont); // 2
            Cont = ReadData; // 3
            }


            void write_com(uchar com)
            {
            lcdrs=0;
            P2=com;
            delay(2);
            lcden=1;
            lcden=0;
            }
            void write_data(uchar dat)
            {
            lcdrs=1;
            P2=dat;
            delay(2);
            lcden=1;
            lcden=0;
            }
            void lcd1602_inti()
            {
            write_com(0x38);
            delay(5);
            write_com(0x0c);
            delay(5);
            write_com(0x06);
            delay(5);
            write_com(0x01);//清屏
            delay(5);
            }
            void main()
            {
            uchar i,x,y,z,w,p=0,m,a,s,d;
            lcd1602_inti();
            write_com(0x01);
            while(1)
            { KeyRead();
            write_com(0x80+0x00);
            for(i=0;i<4;i++)
            {
            write_data(table1[i]);
            delay(5);
            }
            write_com(0x80+0x40);
            write_data(table2[x]);
            delay(10);
            write_data(table2[y]);
            delay(10);
            write_com(0x80+0x43);
            write_data(table2[z]);
            delay(10);
            write_data(table2[w]);
            delay(10);
            write_com(0x80+0x46);
            write_data(table2[d]);
            delay(10);
            write_com(0x80+0x48);
            write_data(table2[m]);
            delay(10);
            if(Trg==0x01)
            {
            switch(p%4)
            { case 1: { a++;
            if(a==21)
            a=0;
            } break;
            case 2:{s++;
            if(s==39)
            s=0;
            } break;
            case 3: {d++;
            if(d==9)
            d=0;
            } break;
            }
            x=a/10;y=a;
            z=s/10;w=s;
            }

            if(Trg==0x02)
            {
            switch(p%4)
            { case 1: { a--;
            if(a==0)
            a=20;
            } break;
            case 2:{s--;
            if(s==0)
            s=38;
            } break;
            case 3: {d--;
            if(d==0)
            d=8;
            } break;
            }
            x=a/10;y=a;
            z=s/10;w=s;
            }

            if(Trg==0x04)
            {p++;
            if(p==9)
            {p=0;}
            if(p%4==0)
            {m=1;}else m=0;
            }

            delay(50);
            if((Trg==0x00)&&(Cont==0x01))
            { switch(p%4)
            { case 1: {a++;delay(60);
            if(a==21)
            a=0;
            } break;
            case 2: {s++;delay(60);
            if(s==39)
            s=0;
            } break;
            case 3: {d++; delay(60);
            if(d==9)
            d=0;
            }break;
            }
            x=a/10;y=a;
            z=s/10;w=s;
            }

            if((Trg==0x00)&&(Cont==0x02))
            {
            { switch(p%4)
            { case 1: {a--;delay(60);
            if(a==0)
            a=20;
            } break;
            case 2: {s--;delay(60);
            if(s==0)
            s=38;
            } break;
            case 3: {d--; delay(60);
            if(d==0)
            d=8;
            }break;
            }
            x=a/10;y=a;
            z=s/10;w=s;
            }
            }
            }
            }
            按鍵部分功能:

            P1.2:功能鍵

            p1.1:減

            p1.0:加

            p1.2按一下,開始設(shè)置液晶左下方00,然后可按鍵加減(00-20);

            p1.2再按一下,開始設(shè)置液晶第二個(gè)00,然后可按鍵加減(00-38);

            p1.2再按一下,開始設(shè)置液晶第三個(gè)參數(shù)0,然后可按鍵加減(0-8);

            p1.2再按一下,最后一位編程1,表示設(shè)置完成;

            可長(zhǎng)時(shí)間按加減鍵,連續(xù)加減;

            以上操作可重復(fù)。



            評(píng)論


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

            關(guān)閉