中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 12864漢字液晶顯示--按鍵電子時(shí)鐘程序

        12864漢字液晶顯示--按鍵電子時(shí)鐘程序

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

        #include
        #define uchar unsigned char
        void lcd_ini();
        void ascii_change(void);
        void delay();
        void wri_add(uchar com);
        void wri_dat(uchar com1);
        void shan(void);
        void disp();
        void tkey(void);
        sbit cs=P1^7;
        sbit sid=P1^6;
        sbit sclk=P1^5;
        bit flag=1;
        uchar dat,count,f=1;//f測(cè)試哪個(gè)單元為當(dāng)前閃爍狀態(tài)
        uchar data clock[3]={23,45,12};
        uchar code clockname[10]={"北京時(shí)間:"};
        uchar data num[6];

        本文引用地址:http://www.antipu.com.cn/article/201611/320484.htm


        void main()
        {
        lcd_ini();
        count=10;//機(jī)器周期為1us,每次定時(shí)50ms,此變量用來控制循環(huán)次數(shù),在下面賦值為20,共定時(shí)1秒
        TMOD=0x01;
        TL0=0XB0;
        TH0=0X3C;
        EA=1;
        ET0=1;
        IT0=1;
        EX0=1;
        TR0=1;
        while(1)
        {
        back:ascii_change();
        disp();
        delay();
        if(flag==1)
        goto back;
        tkey();
        shan();
        delay();
        }
        }



        void lcd_ini()
        {

        wri_add(0x30);
        delay();

        wri_add(0x0c);
        delay();

        wri_add(0x01);
        delay();

        wri_add(0x06);
        delay();
        }


        void timer1() interrupt 1 using 2
        {
        TL0=0XB0;
        TH0=0X3C;
        count--;
        if(count==0)
        {
        count=10;
        clock[2]++;//秒//
        }
        else
        goto out;

        if(clock[2]==60)
        {
        clock[2]=0;
        clock[1]++;//分//
        }

        if(clock[1]==60)
        {
        clock[1]=0;
        clock[0]++;
        }

        if(clock[0]==24)//時(shí)//
        clock[0]=0;

        out:_nop_();
        }


        void ascii_change(void)
        {
        num[5]=clock[2]-(clock[2]/10)*10+0x30;
        num[4]=clock[2]/10+0x30;
        num[3]=clock[1]-(clock[1]/10)*10+0x30;
        num[2]=clock[1]/10+0x30;
        num[1]=clock[0]-(clock[0]/10)*10+0x30;
        num[0]=clock[0]/10+0x30;
        }



        void delay()
        {
        uchar i,j;
        for (i=250;i>0;i--)
        for (j=250;j>0;j--);

        }

        void wri_add(uchar com)
        {
        uchar i,j,k;
        cs=0;
        cs=1;
        dat=0xf8;

        for(i=1;i<=8;i++)
        {
        sid=(bit)(dat&0x80);
        sclk=0;
        sclk=1;
        sclk=0;
        dat=dat<<1;
        }
        dat=com;
        dat=dat&0xf0;
        for(j=1;j<=8;j++)
        {
        sid=(bit)(dat&0x80);
        sclk=0;
        sclk=1;
        sclk=0;
        dat=dat<<1;
        }

        dat=com;
        dat=_cror_(dat,4);// 此為高低四位交換
        dat=dat&0xf0;

        for(k=1;k<=8;k++)
        {
        sid=(bit)(dat&0x80);
        sclk=0;
        sclk=1;
        sclk=0;
        dat=dat<<1;
        }

        }


        void wri_dat(uchar com1)
        {
        uchar i,j,k;
        cs=0;
        cs=1;
        dat=0xfa;
        for(i=1;i<=8;i++)
        {
        sid=(bit)(dat&0x80);
        sclk=0;
        sclk=1;
        sclk=0;
        dat=dat<<1;
        }

        dat=com1;
        dat=dat&0xf0;
        for(j=1;j<=8;j++)
        {
        sid=(bit)(dat&0x80);
        sclk=0;
        sclk=1;
        sclk=0;
        dat=dat<<1;
        }

        dat=com1;
        dat=_cror_(dat,4);// 此為高低四位交換
        dat=dat&0xf0;

        for(k=1;k<=8;k++)
        {
        sid=(bit)(dat&0x80);
        sclk=0;
        sclk=1;
        sclk=0;
        dat=dat<<1;
        }
        }


        void disp()
        {
        uchar i,k=0;
        wri_add(0x80);

        for (i=1;i<=9;i++)
        wri_dat(clockname[i-1]);

        wri_add(0x90);

        for (i=1;i<=6;i++)
        {
        k++;
        if(k==3||k==5)
        wri_dat(clockname[8]);//時(shí)間之間的冒號(hào)。
        wri_dat(num[i-1]);
        }
        }


        void shan(void)
        {
        uchar i,k=0;
        wri_add(0x90);
        if(f==1)
        {
        num[0]= ;
        num[1]= ;
        }
        else
        goto next;
        for (i=1;i<=6;i++)
        {
        k++;
        if(k==3||k==5)
        wri_dat(clockname[8]);//時(shí)間之間的冒號(hào)。
        wri_dat(num[i-1]);
        }
        goto return1;

        next: if(f==2)
        {
        num[2]= ;
        num[3]= ;
        }
        else
        goto next1;
        for (i=1;i<=6;i++)
        {
        k++;
        if(k==3||k==5)
        wri_dat(clockname[8]);//時(shí)間之間的冒號(hào)。
        wri_dat(num[i-1]);
        }
        goto return1;

        next1: if(f==3)
        {
        num[4]= ;
        num[5]= ;
        }
        else
        goto return1;

        for (i=1;i<=6;i++)
        {
        k++;
        if(k==3||k==5)
        wri_dat(clockname[8]);//時(shí)間之間的冒號(hào)。
        wri_dat(num[i-1]);
        }
        return1:_nop_();

        }




        void intr0() interrupt 0 using 2
        {
        flag=~flag;//判斷是否閃爍位//
        TR0=~TR0; //閃關(guān)定時(shí)否則開定時(shí)
        f=1;
        }


        void tkey(void)
        {
        uchar judcekey;
        judcekey=P1&0x0f;
        if(judcekey==0x0f)
        goto return2;


        if (judcekey==0x0e)
        f++;
        if (f==4)
        f=1;

        if(judcekey==0x0d)
        {clock[f-1]++;}

        if (f==1)
        { if (clock[f-1]==24){
        clock[f-1]=0;}
        }
        else{ if (clock[f-1]==60)
        clock[f-1]=0;
        }


        if(judcekey==0x0b)
        {clock[f-1]--;}

        if (f==1)
        { if (clock[f-1]==0xff){
        clock[f-1]=23;}
        }
        else
        { if (clock[f-1]==0xff)
        clock[f-1]=59;
        }

        return2:_nop_();

        }




        評(píng)論


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

        關(guān)閉