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

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

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

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

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

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

 二、具體原理圖見

電路介紹:http://m.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();//調用右覆蓋子程序

 

    }

}

 

關閉窗口

相關文章

天天综合久久| 卡通动漫亚洲综合| 久久精品亚洲无码| 亚洲高清色图| 视频午夜在线| 91成人在线精品视频| 爽爽淫人综合网网站| 亚洲愉拍自拍另类高清精品| 亚洲老头同性xxxxx| 99精品欧美一区二区三区| 五月婷婷六月丁香激情| 日本一区二区免费电影| h在线观看视频| 欧美专区福利免费| 亚洲精品123区| 亚洲一区视频在线| 超碰97人人做人人爱少妇| 欧美日本亚洲| 九色porny自拍视频| 人妻偷人精品一区二区三区| 校园春色欧美| 欧美艹逼视频| 日韩精品一级毛片在线播放| 麻豆精品在线看| 欧美日韩国产经典色站一区二区三区| 日韩美女在线观看| 成人免费xxxxx在线视频| 国产欧美一区二区三区在线看蜜臂| 九色网com| 成人精品电影在线| 六月婷婷色综合| 91麻豆精品国产91久久久久久久久| 国产精品直播网红| 欧美日韩精品区别| 精品国产av一区二区三区| 中文字幕欧美一区二区| 色综合久久中文| 国产日韩欧美在线一区| 在线亚洲男人天堂| 日本美女爱爱视频| 久久精品国产亚洲AV无码麻豆| 软萌小仙自慰喷白浆| 国产精品迅雷| 麻豆精品精品国产自在97香蕉| 欧美日本韩国一区| 成人资源av| 国产男女猛烈无遮挡a片漫画| 影音先锋中文字幕在线播放| 色的视频在线免费看| 欧美深夜福利| 色综合久久久久综合99| 国产精品三级网站| 亚洲一区二区在线免费| 推川ゆうり中文亚洲二区| 欧洲精品二区| 奇米色一区二区| 精品电影一区二区三区| 四虎影院一区二区三区| 国产大片中文字幕| 自由色视频.| 欧美美女一区| 一区二区三区在线视频播放| 奇米四色中文综合久久| 亚洲第一天堂久久| 亚洲电影先锋| 欧美momandson| 国产91丝袜在线观看| 中文字幕视频在线免费欧美日韩综合在线看 | 国产剧情av麻豆香蕉精品| 亚洲精品国产电影| 亚洲在线色站| 亚洲欧美偷拍一区| 久草福利在线视频| 亚洲经典三级| 精品电影一区二区三区| 精品久久免费观看| 亚洲自拍一区在线观看| 青青草视频在线观看| 欧美欧美天天天天操| 欧美性大战xxxxx久久久| 国产在线精品一区二区中文 | 岛国在线大片| 在线亚洲一区| 日韩国产精品一区| 国产av熟女一区二区三区| 中文字幕在线视频第一页| 天堂аⅴ在线地址8| 免费在线观看不卡| 一区二区欧美亚洲| 老司机午夜av| 亚洲精品一区二区三区网址| 日韩欧国产精品一区综合无码| www国产精品av| 91精品国产99久久久久久| 亚洲精品鲁一鲁一区二区三区 | 国产亚洲成av人片在线观看桃| 成人性生活视频免费看| 人妻妺妺窝人体色www聚色窝| 欧美黑人一区| 国产女主播一区| 国产精品成人v| 久久免费手机视频| 满满都是荷尔蒙韩剧在线观看| 国产综合色产| 亚洲成人三级在线| 激情六月丁香婷婷| 亚洲国产图片| 欧美人妖视频| 91福利国产成人精品照片| 日韩成人在线资源| 国产熟女一区二区三区四区| 免费h视频在线观看| 久久精品福利| 亚洲福利视频一区二区| 极品日韩久久| 亚洲第一区av| 中文字幕在线高清| 国产欧美综合在线| 91久久极品少妇xxxxⅹ软件| 国产无套内射又大又猛又粗又爽 | 懂色aⅴ精品一区二区三区| 中文字幕第一区第二区| 91精品国产自产在线老师啪| 欧美日韩大片在线观看| 网友自拍视频在线| 99久久久久久99| 国产精品自产拍在线观看| 中文字幕影音先锋| 看黄网站在线观看| 91视频观看视频| 国产在线精品成人一区二区三区| 久久精品人妻一区二区三区| 超碰最新在线| 欧美激情一区在线观看| 国产精品视频500部| 中文字幕免费在线看| 日韩精品三区| 午夜激情久久久| 一区二区三区四区在线视频| 午夜福利理论片在线观看| 精品网站aaa| 欧美一区二区播放| 免费看污污网站| 成人免费网址在线| 久久亚洲综合| 5566日本婷婷色中文字幕97| 青娱乐免费在线视频| 手机在线免费av| 成人欧美一区二区三区视频网页 | 欧亚成年男女午夜| 九一精品国产| 精品视频在线播放| 中文字幕人妻一区| 亚洲最大黄色| 26uuu久久综合| 精品乱码一区| 亚洲色图另类小说| 日韩欧美视频在线播放| 亚洲最新av网址| 波多野结衣片子| 日韩三级影院| 成人国产精品免费观看动漫| 91成人理论电影| 国产高中女学生第一次| 欧美精品密入口播放| 亚洲国产精品成人一区二区| 国产精品久久一区| 一级特黄aaa| 青青久久av| 国产视频精品一区二区三区| 日韩人妻无码精品综合区| 日韩在线观看www| 亚洲精品视频在线| 999久久欧美人妻一区二区| 日日爱66.cn| 石原莉奈在线亚洲三区| 国产精品欧美风情| 久久久精品人妻一区二区三区四 | 一本久道久久综合| 91视频论坛| 久久久久久久尹人综合网亚洲| 欧美综合在线观看| 黄色一区二区视频| 日韩mv欧美mv国产网站| 夜夜嗨av色综合久久久综合网| 性生交大片免费全黄| 亚洲欧美小说色综合小说一区| 91久久精品一区二区| www.se五月| 国产三级在线观看| 1024成人网色www| 131美女爱做视频| 国产午夜在线| 久久久影视传媒| 99re99热| eeuss影院95999部| 高清日韩电视剧大全免费| 女同一区二区| 一个人免费观看日本www视频| 日本午夜精品一区二区三区电影| 99一区二区| 亚洲精品成人a| 日韩高清不卡一区二区| av一区和二区| 精品国内自产拍在线视频| 日韩国产高清在线| 黄色小网站91| 一线天自拍视频| 国产成人综合网站| 亚洲午夜精品久久| 在线看片地址| 中文字幕精品一区二区精品绿巨人| 久久视频国产精品免费视频在线| 久久久精品国产sm调教网站| 成人黄色91| 亚洲人线精品午夜| 国产精品成人免费一区二区视频| 欧美日韩中出| 日韩中文视频免费在线观看| 免费在线视频一区二区| 波多野结衣欧美| 久久综合五月天| 伊人免费在线观看高清版| 日韩精品二区| 国产精品va在线| 濑亚美莉大战黑人中文字幕| 久久一区中文字幕| 欧美精品成人一区二区在线观看| 免费黄色成年网站| 久久午夜羞羞影院免费观看| 国产精品久久..4399| xfplay每日更新av资源在线| 2020日本不卡一区二区视频| 欧美亚洲精品一区二区| 国产毛片在线看| 色综合天天做天天爱| 亚洲国产欧美视频| 国产不卡精品在线| 久久国产精品视频| a级片免费观看| 久久一区二区三区超碰国产精品| 欧美自拍资源在线| 成年人黄色电影| 一区二区三区日韩欧美精品| 亚洲欧洲日韩综合| 丝袜美腿诱惑一区二区三区| 正在播放国产一区| 精品国产亚洲一区二区麻豆| 91亚洲成人| 91免费在线视频网站| 人人插人人射| 国产精品免费人成网站| 激情图片中文字幕| 怡红院成人在线| 丝袜亚洲另类欧美重口| av观看在线免费| 日韩电影在线观看一区| 欧美 日韩 国产 在线观看| 欧美日韩国产中文字幕在线| 欧美性生活一区| 91日韩中文字幕| 日韩一区二区在线免费| 91九色偷拍| 超级碰碰视频| 精品国产91久久久久久老师| 久久国产柳州莫菁门| 成人直播在线观看| 国产激情久久久| 日本三级电影网站| 亚洲视频 欧洲视频| av黄色一级片| 91在线一区| 国产精品视频免费在线观看| 日本黄色免费网址| 亚洲有吗中文字幕| 激情一区二区三区| 天堂资源在线观看| 7777精品伊人久久久大香线蕉最新版| 久久中文字幕无码| 欧美日韩一区自拍| 一本一本a久久| 免费在线观看黄| 亚洲男人天堂久| 粉嫩av一区二区夜夜嗨| 国产成人三级在线观看| 宅男av一区二区三区| 欧美激情办公室videoshd| 亚洲成人久久一区| 亚洲黄色一级大片| 成人av电影在线| 操人视频免费看| 亚洲精品一二三**| 成人午夜黄色影院| 超碰超碰97| 777午夜精品视频在线播放| 精品人妻一区二区三区免费看| 丝袜亚洲另类欧美综合| 9久久9毛片又大又硬又粗| 91九色在线看| 国内精久久久久久久久久人| 十大黄色软件免费看| 亚洲va欧美va国产va天堂影院| 国产男女猛烈无遮挡在线喷水| 2023国产精品久久久精品双| 亚洲一二区在线| 男女视频在线| 97在线日本国产| 99热免费在线| 日韩午夜在线播放| 性生交生活影碟片| 久久久久久久久久久久久夜| 四虎永久免费影院| 一本一道久久综合狠狠老| a级黄色片网站| 三级在线观看视频| 国产精品久久久久久久久免费| 男人的天堂网av| 亚洲国产精品国自产拍av秋霞| 五月色婷婷综合| 亚洲卡通动漫在线| 91香蕉在线视频| 国产高清在线精品| 亚洲熟女一区二区| 婷婷综合视频| 国产96在线 | 亚洲| 伊人久久一区| 精品国产乱码久久久久| caoporn免费在线视频| 色综合色综合久久综合频道88| av免费在线电影| 欧美r级电影在线观看| 日本综合一区二区三区| 亚洲无人区一区| 免费av中文字幕| 91女神在线视频| www.av视频| 激情五月激情综合网| 大尺度做爰床戏呻吟舒畅| 欧美精品网站| 国产精品无码av无码| 狼人天天伊人久久| 亚洲欧洲久久| 99热播精品免费| 国产一区二区高清视频| 日本伦理一区二区| 色综合激情五月| 国产三级理论片| 91在线观看视频| 亚洲激情图片网| 丝袜a∨在线一区二区三区不卡| 99视频在线视频| 久久精品国产大片免费观看| 久久狠狠久久综合桃花| 国产白浆在线免费观看| 国产成人精品综合| 二区三区在线| 欧美国产亚洲精品久久久8v| 神马午夜dy888| 亚洲视频综合网| 自己做鸭怎么接单寻找客源| 日韩精品一区二区三区中文精品| 日本精品久久久久| 精品美女国产在线| 夜夜躁狠狠躁日日躁av| 成人免费视频网站在线观看| 少妇毛片一区二区三区| 好吊一区二区三区| 国产精品中文久久久久久| 国产精品一区二区三区av麻 | 一级特黄性色生活片| 国产精品网站在线看| 亚洲精品高清国产一线久久| www.久久爱.com| 日韩不卡av| 秋霞影院一区| 亚洲成人a**址| 国产精品av一区二区三区 | 粉嫩av一区二区三区| 农村黄色一级片| 成人sese在线| 日本一本高清视频| 91网页版在线| 丁香花五月激情| 久久先锋资源网| 国产成人精品网| 亚洲视频你懂的| 国产一区二区自拍视频| 偷拍与自拍一区| 亚洲精品国产精| 欧美三级在线看| 欧美性猛交xxxx免费看蜜桃| 欧美三级韩国三级日本三斤| 国精品日韩欧美一区二区三区| 欧美精品日韩一本| 日本jizzjizz| 亚洲人精品午夜在线观看| 免费看美女隐私的视频| 日韩一级黄色av| 北条麻妃在线| 国产欧美精品久久久|