wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

單片機驅動點陣16*16綜合C程序-包含各種效果

作者:佚名   來源:本站原創   點擊數:  更新時間:2012年06月30日   【字體:

一、硬件簡介: 經過努力,終于完成了我以前一直的夢想,點陣各種模式能獨立原創出點陣屏各種模式:間斷、上移、下移、左移、右移、上拉幕、下拉幕、左拉幕、右拉幕、左覆蓋、右覆蓋等等模式,我認為點陣只要是上移、左移會了,基本其它的都會了!一定要理解了,才算喲,太高興了,現在和大家分享下了,我的硬件是:行是譯碼器74HC154+S8550,列是74HC595移位寄存器.

祥細視頻如下http://www.tudou.com/programs/view/D0SCJyO4RBQ/ 
完整的程序源代碼下載:http://www.izizhuan.cn/f/dz854.rar

 二、具體原理圖見

電路介紹:http://www.izizhuan.cn/mcu/1523.html  

三、具體程序代碼如下:

#include<reg52.h>

#define uchar unsigned char

#define uint unsigned int

#define LINE P0//定義行線IO口,即74HC154控制端

#define shudu 12//字移動的速度

sbit DATA=P1^4;//74HC595數據端

sbit CLK=P1^5;//74HC595移位脈沖端

sbit CLKR=P1^6;//74HC595數據鎖存端

uchar move;//移動幾位變量

uchar line;//行變量

uint word;//字節變量

uchar ji,gai;//字節變量

uchar BUF[4];//4組緩存數組以便左移右移等功能動態更改數據

/************************************************************/

/**********上移上拉左移左拉左覆蓋數組************************/

/************************************************************/

uchar   code table[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x10,0x3F,0xF8,0x04,0x10,0x04,0x14,0xFF,0xFE,0x04,0x10,0x04,0x10,

0x3F,0xF0,0x04,0x10,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,

0x01,0x00,0x01,0x08,0x7F,0xFC,0x01,0x00,0x3F,0xF8,0x01,0x00,0xFF,0xFE,0x00,0x10,

0x1F,0xF8,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x50,0x10,0x20,

0x01,0x10,0xFF,0x90,0x14,0x50,0x14,0x7C,0x7F,0x50,0x55,0x90,0x55,0x10,0x57,0xFE,

0x61,0x04,0x41,0x7E,0x41,0x44,0x7F,0x44,0x41,0x44,0x41,0x44,0x7F,0x7C,0x41,0x44,

0x00,0x78,0x3F,0x80,0x11,0x10,0x09,0x20,0x7F,0xFE,0x42,0x02,0x82,0x04,0x7F,0xF8,

0x04,0x00,0x07,0xF0,0x0A,0x20,0x09,0x40,0x10,0x80,0x11,0x60,0x22,0x1C,0x0C,0x08,

0x04,0x40,0x04,0x44,0xFF,0xFE,0x04,0x40,0x08,0x7C,0x09,0x44,0x7F,0xC4,0x08,0x7C,

0x0A,0x44,0x3F,0x44,0x22,0x7C,0x22,0x44,0x22,0x44,0x3E,0x44,0x22,0x94,0x01,0x08,

0x08,0x20,0x08,0x24,0xFF,0xFE,0x08,0x20,0x01,0x08,0x3F,0xFC,0x20,0x08,0x20,0x08,

0x3F,0xF8,0x20,0x08,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00,

0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x20,0x10,0x20,0x22,0x44,0x7E,0xFC,0x04,0x08,

0x08,0x10,0x10,0x20,0x20,0x40,0x7E,0xFC,0x00,0x00,0x00,0x04,0xFF,0xFE,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

/************************************************************/

/**********************下拉、下移數組************************/

/************************************************************/

uchar   code table1[]={

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x08,0x10,0x08,0x10,0x08,0x10,0x10,0x20,0x10,0x20,0x22,0x44,0x7E,0xFC,0x04,0x08,

0x08,0x10,0x10,0x20,0x20,0x40,0x7E,0xFC,0x00,0x00,0x00,0x04,0xFF,0xFE,0x00,0x00,

0x08,0x20,0x08,0x24,0xFF,0xFE,0x08,0x20,0x01,0x08,0x3F,0xFC,0x20,0x08,0x20,0x08,

0x3F,0xF8,0x20,0x08,0x20,0x00,0x20,0x00,0x20,0x00,0x40,0x00,0x40,0x00,0x80,0x00,

0x04,0x40,0x04,0x44,0xFF,0xFE,0x04,0x40,0x08,0x7C,0x09,0x44,0x7F,0xC4,0x08,0x7C,

0x0A,0x44,0x3F,0x44,0x22,0x7C,0x22,0x44,0x22,0x44,0x3E,0x44,0x22,0x94,0x01,0x08,

0x00,0x78,0x3F,0x80,0x11,0x10,0x09,0x20,0x7F,0xFE,0x42,0x02,0x82,0x04,0x7F,0xF8,

0x04,0x00,0x07,0xF0,0x0A,0x20,0x09,0x40,0x10,0x80,0x11,0x60,0x22,0x1C,0x0C,0x08,

0x01,0x10,0xFF,0x90,0x14,0x50,0x14,0x7C,0x7F,0x50,0x55,0x90,0x55,0x10,0x57,0xFE,

0x61,0x04,0x41,0x7E,0x41,0x44,0x7F,0x44,0x41,0x44,0x41,0x44,0x7F,0x7C,0x41,0x44,

0x01,0x00,0x01,0x08,0x7F,0xFC,0x01,0x00,0x3F,0xF8,0x01,0x00,0xFF,0xFE,0x00,0x10,

0x1F,0xF8,0x10,0x10,0x1F,0xF0,0x10,0x10,0x1F,0xF0,0x10,0x10,0x10,0x50,0x10,0x20,

0x00,0x00,0x00,0x10,0x3F,0xF8,0x04,0x10,0x04,0x14,0xFF,0xFE,0x04,0x10,0x04,0x10,

0x3F,0xF0,0x04,0x10,0x04,0x00,0x08,0x00,0x08,0x00,0x10,0x00,0x20,0x00,0x40,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,

0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00

};

/************************************************************/

/*************************右覆蓋數組************************/

/************************************************************/

uchar code table2[]={

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00,

0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00

};

/************************************************************/

/*************************左覆蓋數組************************/

/************************************************************/

uchar code table3[]={

0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00,

0x7f,0x3f,0x1f,0x0f,0x07,0x03,0x01,0x00

};

/*****************************************/

/*****************延時子程序*************/

/***************************************/

void delay(uchar z)

{

    uchar x,y;

    for(x=2;x>0;x--)

    for(y=z;y>0;y--);

}

/*****************************************/

/**************74HC595送數子程序********/

/***************************************/

void song(uchar z)//帶參數函數

{

    uchar num,hang;//定義變量

    hang=z;//將形參給變量

    for(num=0;num<8;num++)//移動8次將數據發送完畢

    {

        if(hang&0x01==1)//將高7位屏蔽掉,保留最低位判斷

        DATA=1;//為1就將74HC595數據端置1

        else

        DATA=0;//否則給0

        CLK=0;//上升沿送走數據

        CLK=1;//高電平形成上升沿

        hang>>=1;//將數移走一位

    }

}

/************************************************************/

/************************************************************/

/**************************間斷顯示***************************/

/************************************************************/

/************************************************************/

void jian()

{

    while(word<128)//要顯示多少字?

    {

        for(move=150;move>0;move--)//字間斷顯示的速度

        {

            ji=word;

            for(line=0;line<16;line++)

            {

                song(~table[ji*2+1]);//先右半屏

                song(~table[ji*2]);//再左半屏

                ji++;//下一行

                CLKR=1;//在74HC595處鎖存起來

                CLKR=0;

                CLKR=1;

                LINE=line;//打開列

                delay(17);

            }

        }

        word=ji;

    } 

}

/************************************************************/

/************************************************************/

/**************************上移顯示***************************/

/************************************************************/

/************************************************************/

void shang()

{

    while(word<128)

    {

        for(move=20;move>0;move--)

        {

            ji=word;//將變量存起來

            for(line=0;line<16;line++)

            {

                song(~table[ji*2+1]);

                song(~table[ji*2]);

                ji++;

                CLKR=1;//在74HC595處鎖存起來

                CLKR=0;

                CLKR=1;

                LINE=line;

                delay(5);

            }

        }

        word+=1;//數組數增加一行,形成上移

    }

}

/************************************************************/

/************************************************************/

/**************************下移顯示***************************/

/************************************************************/

/************************************************************/

void xia()

{

    while(word>1)

    {

        for(move=20;move>0;move--)

        {

            ji=word;//給倒數第2個字位置地址碼給ji變量

            for(line=0;line<16;line++)

            {

                song(~table1[ji*2+1]);//發右半屏數 注意這是數組1的代碼

                song(~table1[ji*2]);//發左半屏數

                ji++;

                CLKR=1;//在74HC595處鎖存起來

                CLKR=0;

                CLKR=1;

                LINE=line;

                delay(5);

            }

        }

        word-=1;//數組數減1一行,形成下移

    }

}

/************************************************************/

/************************************************************/

/**************************左移顯示***************************/

/************************************************************/

/************************************************************/

/************************************************************/

/*裝一線數據子函數(即一行數據)*/

/********************************/

void yixian()

{

    uchar s;

    for(s=0;s<2;s++)/*循環2次,得到第1個字(代碼存在數組1與2中)

與第2個字(代碼存在數組2與3中)的某一行數值*/

    {

        BUF[s*2]=table[word+(32*s)+(line*2)];//左半屏代碼,line表示行數,word表示字數

        BUF[s*2+1]=table[word+(32*s+1)+(line*2)];//右半屏代碼

    }

}

/********************************/

/*將一行數據轉換出來,然后顯示*/

/********************************/

void yipai()

{

    uchar temp,yi;

    if(move<8)//處理移動次數小于8次的部分

    {

        yi=move;

        temp=(BUF[1]<<yi)|(BUF[2]>>(8-yi));/*將第1個字的右半屏數左移yi次,

        然后或上第2個字左半屏的8-yi次數,注此句是處理右半屏的數*/

        song(~temp);//發送給74HC595

        temp=(BUF[0]<<yi)|(BUF[1]>>(8-yi));/*將第1個字的左半屏數左移yi次,

        然后或上第1個字右半屏的8-yi次數,注此句是處理左半屏的數*/

        song(~temp);//發送給74HC595

    }

    else//處理移動次數小于8次以外的部分

    {

        yi=move-8;

        temp=(BUF[2]<<yi)|(BUF[3]>>(8-yi));//原理同上

        song(~temp);//發送給74HC595

        temp=(BUF[1]<<yi)|(BUF[2]>>(8-yi));//原理同上

        song(~temp);//發送給74HC595

    } 

}

 

/********************************/

/************左移子程序**********/

/********************************/

void zou()

{

    uchar i;

    while(word<256)

    {

        for(move=0;move<16;move++)//要移多少位?

        {

            for(i=0;i<shudu;i++)//一字移動的速度

            {

                for(line=0;line<16;line++)//掃描16次,即完成一個字的移動

                {

                    yixian();//調用一線子程序

                    yipai();//調用數據轉換子程序

                    LINE=line;//打開行線,即174HC154行線端

                    CLKR=1;//在74HC595處鎖存起來

                    CLKR=0;

                    CLKR=1;

                }

            }

        }

        word=word+32;//一個字顯示完了,就顯示下一個字

    }

}

/************************************************************/

/************************************************************/

/**************************右移顯示***************************/

/************************************************************/

/************************************************************/

/********************************/

/*將一行數據轉換出來,然后顯示*/

/********************************/

void yipai1()

{

    uchar temp,yi;

    if(move<8)//處理移動次數小于8次的部分

    {

        yi=move;//小于8次就直接給移動的次數

        temp=(BUF[0]<<(8-yi))|(BUF[1]>>yi);/*將第1個字的左半屏數左移8-yi次,

        然后或上右半屏的yi次數,注此句是處理右半屏的數*/

        song(~temp);//發送給74HC595

 

        temp=(BUF[3]<<(8-yi))|(BUF[0]>>yi);/*將第2個字的右半屏數與第1個字左

        半屏的數左移8-yi次,然后或上右半屏的yi次數,注此句是處理左半屏的數*/

        song(~temp);//發送給74HC595

    }

    else//處理移動次數小于8次以外的部分

    {

        yi=move-8;//不小于8次就給move-8次給變量

        temp=(BUF[3]<<(8-yi))|(BUF[0]>>yi);/*將第2個字的右半屏數左移8-yi次,

        然后或上第1個字左半屏的yi次數,注此句是處理右半屏的數*/

        song(~temp);//發送給74HC595

 

        temp=(BUF[2]<<(8-yi))|(BUF[3]>>yi);/*將第2個字的左半屏數左移8-yi次,

        然后或上第2個字的右半屏的yi次數,注此句是處理左半屏的數*/

        song(~temp);//發送給74HC595

    }

  

}

/********************************/

/************右移子程序**********/

/********************************/

void you()

{

    uchar i;

    while(word<256)

    {

        for(move=0;move<16;move++)//要移多少位?

        {

            for(i=0;i<shudu;i++)//一字移動的速度

            {

                for(line=0;line<16;line++)//掃描16次,即完成一個字的移動

                {

                    yixian();//調用一線子程序

                    yipai1();//調用數據轉換子程序

                    LINE=line;//打開行線,即174HC154行線端

                    CLKR=1;//在74HC595處鎖存起來

                    CLKR=0;

                    CLKR=1;

                }

            }

        }

        word=word+32;//一個字顯示完了,就顯示下一個字

    }

}

/************************************************************/

/************************************************************/

/*************************上拉子函數**************************/

/************************************************************/

/************************************************************/

/******************************************/

/***********顯示一個整體字子函數***********/

/******************************************/

void shang1()//快速上移完一個整體字

{

    ji=word;//將變量給計數器

    for(line=0;line<16;line++)//循環16次得到一個整體字

    {

        song(~table[ji*2+1]);//先發右半屏數

        song(~table[ji*2]);//再發左半屏數

        ji++;//取下一行數

        CLKR=1;//在74HC595處鎖存起來

        CLKR=0;

        CLKR=1;

        LINE=line;//打開行

        delay(10);

    }

}

/******************************************/

/****快速將一個字上移16次,即一個整體字****/

/******************************************/

void shangla()

{

    uchar i;

    while(word<128)

    {

        for(i=0;i<16;i++)//循環16次將一個字上移16次

        {

            shang1();//調用顯示

            word+=1;

        }

        for(i=0;i<150;i++)//上移完一個字后,停留一段時間,從而形成上拉

        shang1();

    }

}

/************************************************************/

/************************************************************/

/**************************下拉函數***************************/

/************************************************************/

/************************************************************/

/********************顯示一個字子程序************************/

void xia1()

{

    ji=word;

    for(line=0;line<16;line++)//循環16次顯示一個字

    {

        song(~table1[ji*2+1]);

        song(~table1[ji*2]);

        ji++;

        CLKR=1;//在74HC595處鎖存起來

        CLKR=0;

        CLKR=1;

        LINE=line;

        delay(3);

    }

}

/********************將一個字上移16次形成下拉子程序************************/

void xiala()

{

    uchar i;

    while(word>1)

    {

        for(i=0;i<16;i++)//將一個字下位16次

        {

            xia1();//調用顯示子程序

            word-=1;//下拉1位

        }

        for(i=0;i<150;i++)//下拉16次后停下來

        xia1();//調用顯示

    }

}

/************************************************************/

/************************************************************/

/**************************左拉子函數************************/

/************************************************************/

/************************************************************/

/********************************/

/*將一行數據轉換出來,然后顯示*/

/********************************/

void yipai2()

{

    uchar temp,yi;

    if(move<8)//處理移動次數小于8次的部分

    {

        yi=move;

        temp=(BUF[1]<<yi)|(BUF[2]>>(8-yi));/*將第1個字的右半屏數左移yi次,

        然后或上第2個字左半屏的8-yi次數,注此句是處理右半屏的數*/

        song(~temp);//發送給74HC595

        temp=(BUF[0]<<yi)|(BUF[1]>>(8-yi));/*將第1個字的左半屏數左移yi次,

        然后或上第1個字右半屏的8-yi次數,注此句是處理左半屏的數*/

        song(~temp);//發送給74HC595

    }

    else//處理移動次數小于8次以外的部分

    {

        yi=move-8;

        temp=(BUF[2]<<yi)|(BUF[3]>>(8-yi));//原理同上

        song(~temp);//發送給74HC595

        temp=(BUF[1]<<yi)|(BUF[2]>>(8-yi));//原理同上

        song(~temp);//發送給74HC595

    } 

}

/********************************/

/*******將一個字移一位***********/

/********************************/

void zou3()

{

    for(line=0;line<16;line++)//掃描16次,即完成一個字的移動

    {

        yixian();//調用一線子程序

        yipai2();//調用數據轉換子程序

        LINE=line;//打開行線,即174HC154行線端

        CLKR=1;//在74HC595處鎖存起來

        CLKR=0;

        CLKR=1;

    }

}

/********************************/

/*將一個左移16次,形成一個字左拉***/

/********************************/

void zoula()

{

    uchar x;

    while(word<256)

    {

        for(move=0;move<16;move++)//要移多少位?

        zou3();

        for(x=0;x<150;x++)

        zou3();

        word=word+32;//一個字顯示完了,就顯示下一個字

    } 

}

/************************************************************/

/************************************************************/

/**************************右拉子函數***************************/

/************************************************************/

/************************************************************/

/********************************/

/*將一行數據轉換出來,然后顯示*/

/********************************/

void yipai3()

{

    uchar temp,yi;

    if(move<8)//處理移動次數小于8次的部分

    {

        yi=move;//小于8次就直接給移動的次數

        temp=(BUF[0]<<(8-yi))|(BUF[1]>>yi);/*將第1個字的左半屏數左移8-yi次,

        然后或上右半屏的yi次數,注此句是處理右半屏的數*/

        song(~temp);//發送給74HC595

 

        temp=(BUF[3]<<(8-yi))|(BUF[0]>>yi);/*將第2個字的右半屏數與第1個字左

        半屏的數左移8-yi次,然后或上右半屏的yi次數,注此句是處理左半屏的數*/

        song(~temp);//發送給74HC595

    }

    else//處理移動次數小于8次以外的部分

    {

        yi=move-8;//不小于8次就給move-8次給變量

        temp=(BUF[3]<<(8-yi))|(BUF[0]>>yi);/*將第2個字的右半屏數左移8-yi次,

        然后或上第1個字左半屏的yi次數,注此句是處理右半屏的數*/

        song(~temp);//發送給74HC595

 

        temp=(BUF[2]<<(8-yi))|(BUF[3]>>yi);/*將第2個字的左半屏數左移8-yi次,

        然后或上第2個字的右半屏的yi次數,注此句是處理左半屏的數*/

        song(~temp);//發送給74HC595

    }

  

}

/********************************/

/*******將一個字移一位***********/

/********************************/

void you3()

{

    for(line=0;line<16;line++)//掃描16次,即完成一個字的移動

    {

        yixian();//調用一線子程序

        yipai3();//調用數據轉換子程序

        LINE=line;//打開行線,即174HC154行線端

        CLKR=1;//在74HC595處鎖存起來

        CLKR=0;

        CLKR=1;

    }     

}

/********************************/

/*******將一個字右移16位***********/

/********************************/

void youla()

{

    uchar i;

    while(word<256)

    {

        for(move=0;move<16;move++)//要移多少位?

        you3();

        for(i=0;i<150;i++)

        you3();

        word=word+32;//一個字顯示完了,就顯示下一個字

    }

}

/************************************************************/

/************************************************************/

/**************************左覆蓋***************************/

/************************************************************/

/************************************************************/

 

/********************************/

/*將一行數據轉換出來,然后顯示*/

/********************************/

void yipai5()

{

    uchar temp,yi;

    if(move<8)//處理移動次數小于8次的部分

    {

        yi=move;

        temp=(BUF[1]);//發送左半屏的數,在移動右半屏時,左半屏不動

        song(~temp);//發送給74HC595

        temp=(BUF[2]&~gai)|(BUF[0]&gai);

        song(~temp);//發送給74HC595

    }

    else//處理移動次數小于8次以外的部分

    {

        yi=move-8;

        temp=(BUF[3]&~gai)|(BUF[1]&gai);/*將第1個字的左半屏數第0列清0或上第二

        個字左半屏最后1行*/

        song(~temp);//發送給74HC595

        temp=BUF[2];//發送右半屏的數,在移動左半屏時,右半屏不動

        song(~temp);//發送給74HC595

    } 

}

/********************************/

/*****掃描16次,形成一列覆蓋*****/

/********************************/

void fu3()

{

    uchar i;

    for(i=0;i<2;i++)//一字移動的速度

    {

        for(line=0;line<16;line++)//掃描16次,即完成一個字的移動

        {

            yixian();//調用一線子程序

            yipai5();//調用數據轉換子程序

            LINE=line;//打開行線,即174HC154行線端

            CLKR=1;//在74HC595處鎖存起來

            CLKR=0;

            CLKR=1;

        }

    }

}

/********************************/

/***每列移動16次后,形成覆蓋****/

/********************************/

void zoufu()

{

    uchar o;

    while(word<256)

    {

        for(move=0;move<16;move++)//移動16次,形成覆蓋

        {

            gai=table3[move];//移動一次改變一次覆蓋變量

            fu3();//調用覆蓋子程序

        }

        for(o=0;o<60;o++)//一字完后,停一段時間

        {

            fu3();//調用覆蓋子程序

        }

        word=word+32;//一個字顯示完了,就顯示下一個字

    }

}

/************************************************************/

/************************************************************/

/**************************右覆蓋***************************/

/************************************************************/

/************************************************************/

/********************************/

/*將一行數據轉換出來,然后顯示*/

/********************************/

void yipai4()

{

    uchar temp,yi;

    if(move<8)//處理移動次數小于8次的部分

    {

        yi=move;

        temp=(BUF[1]&gai)|(BUF[3]&~gai);/*將第1個字的右半屏數第0列清0或上第二

        個字右半屏最后1行*/

        song(~temp);//發送給74HC595

        temp=(BUF[0]);//發送左半屏的數,在移動右半屏時,左半屏不動

        song(~temp);//發送給74HC595

    }

    else//處理移動次數小于8次以外的部分

    {

        yi=move-8;

        temp=BUF[3];//發送右半屏的數,在移動左半屏時,右半屏不動

        song(~temp);//發送給74HC595

        temp=(BUF[0]&gai)|(BUF[2]&~gai);/*將第1個字的左半屏數第0列清0或上第二

        個字左半屏最后1行*/

        song(~temp);//發送給74HC595

    } 

}

/********************************/

/*****掃描16次,形成一列覆蓋*****/

/********************************/

void fu2()

{

    uchar i;

    for(i=0;i<2;i++)//一字移動的速度

    {

        for(line=0;line<16;line++)//掃描16次,即完成一個字的移動

        {

            yixian();//調用一線子程序

            yipai4();//調用數據轉換子程序

            LINE=line;//打開行線,即174HC154行線端

            CLKR=1;//在74HC595處鎖存起來

            CLKR=0;

            CLKR=1;

        }

    }

}

/********************************/

/***每列移動16次后,形成覆蓋****/

/********************************/

void youfu()

{

    uchar o;

    while(word<256)

    {

        for(move=0;move<16;move++)//移動16次,形成覆蓋

        {

            gai=table2[move];//移動一次改變一次覆蓋變量

            fu2();//調用覆蓋子程序

        }

        for(o=0;o<60;o++)//一字完后,停一段時間

        {

            fu2();//調用覆蓋子程序

        }

        word=word+32;//一個字顯示完了,就顯示下一個字

    }

}

 

/************************************************************/

/************************************************************/

/**************************主函數***************************/

/************************************************************/

/************************************************************/

void main()

{

    while(1)

    {

       word=0;//初始化變量

       jian();//間斷顯示子程序

 

       word=0;

       shang();//調用上移子程序

 

       word=128;//賦初值以便形成下移

       xia();//調用下移子程序

 

       word=0;

       zou();//調用左移子程序

 

       word=0;

       you();//調用右移子程序

 

       word=0;

       shangla();//調用上拉子程序

 

       word=128;

       xiala();//調用下拉子程序

 

       word=0;

       zoula();//調用左拉子程序

 

       word=0;

       youla();//調用右拉子程序

 

       word=0;

       zoufu();//調用左覆蓋子程序

 

       word=0;

       youfu();//調用右覆蓋子程序

 

    }

}

 

關閉窗口

相關文章

一区二区日韩免费看| 日韩欧美一区在线| 欧美区日韩区| 99久久er| 99青草视频在线播放视| 中文字幕高清av| 日韩av色综合| 欧美日韩国产成人在线免费| 99精品热视频| 亚洲国产精品第一区二区三区| 成人国产综合| 婷婷激情在线| 成人午夜天堂| 欧美人乱大交xxxxx| 69视频免费看| 三级男人添奶爽爽爽视频| 欧美一级片在线播放| 欧美一区二区三区四区久久 | 日韩精品一区二区三区四区| 日韩国产精品久久| 国产中文字幕一区二区三区| 黄色网在线播放| 高清毛片aaaaaaaaa片| 亚洲伦理一区二区三区| 熟女人妇 成熟妇女系列视频| 国产区一区二区三区| 久久99热这里只有精品国产| 日韩欧美国产精品| 欧美色视频日本版| 成人一级视频在线观看| 亚洲三级视频| 欧美做受69| 成人午夜sm精品久久久久久久| 国产视频网址在线| www.天堂在线观看| 亚洲免费国产| 亚洲精品一区二区三区不卡| 麻豆精品一区二区三区视频| 日本在线视频播放| www一区二区www免费| 亚洲精品乱码视频| 96pao国产成视频永久免费| 中文字幕综合在线| 日韩免费电影网站| 欧美日韩精品福利| 一区二区三区免费看视频| 久久久久国产精品麻豆 | 久久久综合视频| 久久精品免费观看| 国内精品久久久久久久影视蜜臀 | 黄色小视频在线播放| 欧美做爰性欧美大fennong| 一区二区三区免费在线| 性猛交╳xxx乱大交| 成人性生活视频免费看| 国产91对白在线播放| 亚洲深夜福利在线| 欧美一区二区精品在线| 欧美色视频日本高清在线观看| 欧美国产日韩在线观看| 丁香婷婷综合五月| 日本一不卡视频| 日韩五码在线| 最新日韩欧美| 欧美美女一区| 丁香影院在线| 中文字幕伦理免费在线视频| 99青草视频在线播放视| 夜色资源站国产www在线视频| 国产精品午夜久久久久久| 色姑娘资源站| 欧美jizzhd精品欧美满| 男人的天堂视频网站| 高潮毛片7777777毛片| 亚洲精品人妻无码| 免费a视频在线观看| 女人18毛片水真多18精品| 少妇高潮久久久| 日韩一区二区三区在线观看视频| 人妻与黑人一区二区三区| 涩涩视频免费看| 青青草国产免费自拍| 国产毛片av| 5566先锋影音夜色资源站在线观看| 亚洲国产成人精品激情在线| 免费视频一二三区| 免费看日批视频| 亚洲天天综合网| 亚洲国产成人一区二区| 天天射,天天干| 亚洲一区精品视频在线观看| 国产无色aaa| 精品国产av色一区二区深夜久久| 9.1成人看片免费版| 天天舔天天操天天干| jizz亚洲少妇| 国产a级片免费观看| 超碰在线播放91| 欧日韩免费视频| 999在线免费视频| 扒开伸进免费视频| 亚洲国产一二三精品无码| 久久久久久久久久久99| 中文字幕一区二区三区有限公司| 国产亚洲黄色片| 久久久久久久久久一区二区| 久久精品老司机| 欧美在线视频一区二区三区| 亚洲第一导航| 无码人妻丰满熟妇区五十路百度| 无码人妻一区二区三区精品视频| xxxx日本黄色| 亚洲第一精品区| 久久精品99国产| 蜜臀久久99精品久久久酒店新书| 中文字幕人妻熟女人妻a片| 三年中国中文在线观看免费播放| 欧美亚洲黄色片| 久久久国产精品久久久| 国产精品视频一区二区在线观看| 亚洲第一网站在线观看| av女名字大全列表| eeuss影院www在线| 久久综合九色综合久| 在线宅男视频| sis001亚洲原创区| 欧美一级色片| 久久久久欧美精品| 中文av一区二区| 91精品国产91综合久久蜜臀| 精品国产一区二区三区久久| 91在线观看免费高清完整版在线观看| 中文字幕一区二区三区在线乱码| 亚洲性图一区二区| 中文字幕手机在线观看| 性中国古装videossex| 免费看h片网站| 男女啪啪在线观看| 在线成人综合色一区| 天天靠夜夜靠| av影院在线免费观看| 羞羞色国产精品网站| 日韩精品91亚洲二区在线观看 | 日韩在线中文| 国产精品一区二区在线看| 亚洲一区二区在线观看视频| 亚洲精品福利在线| 国产精品露脸av在线| 国产精品青青在线观看爽香蕉 | 国产91麻豆视频| 国产xxxxx18| 亚洲www免费| 欧美一区不卡| 国产精品美女久久久久久久久 | 亚洲国产精品视频| 亚洲免费精彩视频| 97se视频在线观看| 国产熟人av一二三区| 久草视频免费播放| 欧美性猛交xx乱大交| 日韩av视屏| 国产成人l区| 成人性生交大片免费看中文视频 | 国产成年精品| 日韩电影免费一区| 亚洲国产视频一区| 欧美成人午夜激情视频| 亚洲精品成人a8198a| av2014天堂网| 色窝窝无码一区二区三区| 97影院在线观看| 精品成人18| 国产麻豆成人精品| 欧美日韩精品系列| 国产免费一区二区三区在线能观看| 久久久久久精| 亚洲av成人片无码| 十八禁一区二区三区| 色吊丝在线永久观看最新版本| 一区二区三区国产好| 亚洲精品aa| 美女久久网站| 黑人巨大精品欧美一区二区| 色综合色综合网色综合| 今天免费高清在线观看国语| 国产av无码专区亚洲av毛网站| 精品一区二区91| 超碰aⅴ人人做人人爽欧美| 久久精品123| 欧美电影影音先锋| 久国内精品在线| 国产高清www| 超碰在线观看91| 黄网站app在线观看大全免费视频| 凹凸成人在线| 中文字幕成人av| 久久久久久综合网天天| 国产精品亚洲αv天堂无码| 色一情一乱一伦| 一二三四中文在线| 免费av一区| 久久国产生活片100| 欧美日本不卡视频| 国外成人在线视频网站| 欧美一级淫片播放口| 六月丁香婷婷在线| 99在线精品视频免费观看20| av一区在线观看| 一区二区网站| 久久五月婷婷丁香社区| 爱福利视频一区| 97成人在线观看视频| 亚洲一区二区人妻| 毛片av在线| 久久99精品久久久久| 亚洲成人免费在线视频| 欧美日韩亚洲一区二区三区在线观看| 国产91在线播放九色| 天天操夜夜做| 激情婷婷综合| 91福利国产成人精品照片| 欧美高清视频免费观看| 国产v亚洲v天堂无码久久久| 黄色av免费观看| 日本三级一区| 日韩中文字幕一区二区三区| 亚洲精品一区在线观看| 今天免费高清在线观看国语| 中文字幕在线播放av| 五月香视频在线观看| 日韩高清国产一区在线| 亚洲电影免费观看| 国产 日韩 欧美在线| 精品人妻无码一区二区| 欧美sm一区| 久久色成人在线| 国产精品久久国产精品99gif| 偷拍女澡堂一区二区三区| 欧洲免费av| 久久中文字幕av一区二区不卡| 欧美色图一区二区三区| 一本一本久久a久久精品综合妖精| 免费看黄色三级| 国产理论片免费观看| 亚洲成人99| 精品欧美久久久| 日本a级片免费观看| 亚洲欧洲激情在线乱码蜜桃| 亚洲视频自拍| 午夜精品免费在线| 日本不卡一区二区三区在线观看 | 亚洲qvod图片区电影| 日韩影视一区二区三区| 宅男深夜视频| 久久婷婷亚洲| 不用播放器成人网| 日韩欧美猛交xxxxx无码| 久热这里只有精品在线| 男人的天堂www| 欧美日韩日本国产亚洲在线| 精品三级在线观看| 青春草国产视频| 亚洲狠狠婷婷综合久久蜜桃| 色妞ww精品视频7777| 亚洲第一成人在线| 一区二区在线中文字幕电影视频| 精品久久久久久亚洲综合网站| 日本精品网站| 国产精品久久久久三级| 国产欧美日韩精品丝袜高跟鞋| 欧美成人精品一区二区免费看片| 日本中文在线| 国产精品一区一区三区| 国产精品日韩专区| 日本少妇毛茸茸高潮| www.麻豆传媒| 一本色道久久综合| 北条麻妃一区二区三区中文字幕 | 亚洲日本一区二区| 99在线观看| 精品国产一区二区三区久久久狼| 视频在线观看免费影院欧美meiju| 性伦欧美刺激片在线观看| 亚洲精品视频观看| 成人女人免费毛片| 激情五月婷婷网| 日韩大片欧美大片| 亚洲一线二线三线久久久| 欧美亚洲另类久久综合| 亚洲男人第一天堂| 全球av集中精品导航福利| 7777精品伊人久久久大香线蕉| 欧美亚洲国产成人| 看全色黄大色黄大片免责看的| 欧美三级不卡| 欧美成人在线网站| 91高清免费看| 免费毛片在线看片免费丝瓜视频| 国产精品久久久久永久免费观看| 欧美日本韩国国产| 手机在线观看免费av| 欧美日韩导航| 亚洲理论在线a中文字幕| 亚洲精品国产成人av在线| 神马久久精品| 日韩欧美综合| 一区二区三区在线播放欧美| 国产成人综合一区| 88av看到爽| 久久99久国产精品黄毛片色诱| 国产日韩精品在线播放| 久久久国产免费| 一区二区日韩| 亚洲精品天天看| 538精品视频| 欧美性video| 欧美日韩美女在线| 天天爱天天操天天干| 在线影院自拍| 久久久天堂av| 欧美精品一区二区性色a+v| 自拍视频网站| 欧洲激情综合| www.午夜精品| 日韩三级一区二区三区| 日本久久一区| 色婷婷亚洲综合| 男女污污视频网站| 成人福利在线| 亚洲成年人网站在线观看| 成年网站在线免费观看| 97在线资源| 国产精品麻豆一区二区| 99热久久这里只有精品| 成人手机在线| 国产精品卡一卡二卡三| 成人免费播放器| 国产最顶级的黄色片在线免费观看| 久久亚洲春色中文字幕久久久| 亚洲一区高清| 中文字幕2019第三页| 久久综合九色综合欧美亚洲| 国产青草视频在线观看| 成年人在线播放| 中文字幕一区二区三区四区不卡| 黄色特一级视频| 有码在线播放| 亚洲免费在线播放| 成人日韩在线视频| 国产视频一区二区| 精品国产中文字幕第一页| 午夜精品一区二区三区在线播放| 中文亚洲av片在线观看| 亚洲丝袜美腿一区| 国内自拍欧美激情| 人妻中文字幕一区| 蜜臀av一级做a爰片久久| 欧美色欧美亚洲另类七区| 岛国片免费看| 中文字幕在线观看不卡视频| 人妻有码中文字幕| 免费的黄网站在线观看| 欧美久久久久久久久| 无码国产69精品久久久久同性| 先锋在线亚洲| 亚洲九九爱视频| 特级黄色片视频| 欲香欲色天天天综合和网| 亚洲精品一区二三区不卡| 国产午夜精品一区二区理论影院 | 国产小视频免费在线网址| 九九**精品视频免费播放| 日韩午夜视频在线观看| av网站一区| 亚洲成a天堂v人片| 中文字幕成人动漫| 久久久免费毛片| 国产玖玖精品视频| 91麻豆产精品久久久久久夏晴子| 97se亚洲国产综合自在线观| 久久久国产欧美| 手机在线观看av网站| 国产亚洲视频中文字幕视频| 国产精品视频久久久久久| 国产精品日本| 亚洲一区二区在线免费观看| 男操女在线观看| 精品少妇一区二区三区| 亚洲中文无码av在线| 亚洲一区不卡| 妞干网视频在线观看| 黄色网址视频在线观看| 亚洲精品在线观看视频| 伊人色综合久久久| 日韩**一区毛片| www.com毛片| 婷婷激情一区| 色悠悠久久久久| 中文天堂网在线www| 国产欧美日韩激情|