在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,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首頁 > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 51單片機(jī)+點(diǎn)陣8*8上、下、左、右移顯示C程序

            51單片機(jī)+點(diǎn)陣8*8上、下、左、右移顯示C程序

            作者: 時(shí)間:2012-07-10 來源:網(wǎng)絡(luò) 收藏

            二、下移

            #includereg52.h>
            #define uchar unsigned char
            #define uint unsigned int
            #define LINE P1//定義行線IO口,即74HC154控制端
            #define shudu 50//字移動(dòng)的速度
            sbit DATA=P3^5;//74HC595數(shù)據(jù)端
            sbit CLK=P3^7;//74HC595移位脈沖端
            sbit CLKR=P3^6;//74HC595數(shù)據(jù)鎖存端
            uchar f=24;//給一個(gè)初值以便下移
            uchar code table[]={
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            0x08,0x08,0x7F,0x49,0x7F,0x08,0x08,0x08,//將字碼調(diào)換
            0x00,0x3C,0x00,0x18,0x00,0x7E,0x00,0x00,
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00
            };//字模數(shù)組
            void delay(uchar z)
            {
            uchar x,y;
            for(x=8;x>0;x--)
            for(y=z;y>0;y--);
            }
            /********************************/
            /**74HC595移位寄存器送數(shù)子函數(shù)***/
            /********************************/
            void song(uchar z)//帶參數(shù)函數(shù)
            {
            uchar num,hang;//定義變量
            hang=z;//將形參給變量
            for(num=0;num8;num++)//移動(dòng)8次將數(shù)據(jù)發(fā)送完畢
            {
            if(hang0x01==1)//將高7位屏蔽掉,保留最低位判斷
            DATA=1;//為1就將74HC595數(shù)據(jù)端置1
            else
            DATA=0;//否則給0
            CLK=0;//上升沿送走數(shù)據(jù)
            CLK=1;//高電平形成上升沿
            hang>>=1;//將數(shù)移走一位
            }
            }
            /********************************/
            /*將一行數(shù)據(jù)轉(zhuǎn)換出來,然后顯示*/
            /********************************/
            void xian()
            {
            uint word;//字節(jié)變量
            uchar line,i;//字節(jié)變量
            for(i=0;ishudu;i++)//一字移動(dòng)的速度
            {
            word=f;//將字暫存器給計(jì)數(shù)器
            for(line=0;line8;line++)//掃描8次,即完成一個(gè)字的移動(dòng)
            {
            song(~table[word]);
            CLKR=1;//在74HC595處鎖存起來
            CLKR=0;
            CLKR=1;
            word++;//將計(jì)數(shù)器加1
            LINE=line;//打開行線,即行線端
            //P3=0xff;
            delay(10);
            }
            }
            f--;//顯示完一個(gè)字后減1形成下移
            if(f==0)
            {
            f=24;//移完后給值
            }
            }
            /********************************/
            /************主程序*************/
            /********************************/
            void main()
            {
            while(1)
            {
            xian();
            }
            }

            三、左移

            #includereg52.h>
            #define uchar unsigned char
            #define uint unsigned int
            #define LINE P1//定義行線IO口,即74HC154控制端
            #define shudu 120//字移動(dòng)的速度
            sbit DATA=P3^5;//74HC595數(shù)據(jù)端
            sbit CLK=P3^7;//74HC595移位脈沖端
            sbit CLKR=P3^6;//74HC595數(shù)據(jù)鎖存端
            uchar move;//移動(dòng)幾位變量
            uchar line;//行變量
            uint word;//字節(jié)變量
            uchar BUF[2];//2組緩存數(shù)組以便動(dòng)態(tài)更改數(shù)據(jù)
            uchar code table[]={
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            0x00,0x3C,0x00,0x18,0x00,0x7E,0x00,0x00,
            0x08,0x08,0x7F,0x49,0x7F,0x08,0x08,0x08,
            0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
            };//字模數(shù)組
            /********************************/
            /**74HC595移位寄存器送數(shù)子函數(shù)***/
            /********************************/
            void song(uchar z)//帶參數(shù)函數(shù)
            {
            uchar num,hang;//定義變量
            hang=z;//將形參給變量
            for(num=0;num8;num++)//移動(dòng)8次將數(shù)據(jù)發(fā)送完畢
            {
            if(hang0x01==1)//將高7位屏蔽掉,保留最低位判斷
            DATA=1;//為1就將74HC595數(shù)據(jù)端置1
            else
            DATA=0;//否則給0
            CLK=0;//上升沿送走數(shù)據(jù)
            CLK=1;//高電平形成上升沿
            hang>>=1;//將數(shù)移走一位
            }
            }
            /********************************/
            /*裝一線數(shù)據(jù)子函數(shù)(即一行數(shù)據(jù))*/
            /********************************/
            void yixian()
            {
            BUF[0]=table[word+line];//第1個(gè)字代碼裝入緩存數(shù)組0,line表示行數(shù),word表示字?jǐn)?shù)
            BUF[1]=table[word+8+line];//第2個(gè)字代碼裝入緩存數(shù)組1
            }
            /********************************/
            /*將一行數(shù)據(jù)轉(zhuǎn)換出來,然后顯示*/
            /********************************/
            void yipai()
            {
            uchar temp,yi;//定義兩個(gè)變量
            yi=move;//將要移多少位給變量yi
            temp=(BUF[0]yi)|(BUF[1]>>(8-yi));/*將第1個(gè)字即數(shù)組0左移yi(yi只是代號(hào),比如1位)位
            ,然后將第下一個(gè)字即數(shù)組1右移8-yi位,然后或一下,這樣就會(huì)得到要發(fā)送的數(shù)*/
            song(~temp);//發(fā)送給74HC595



            評(píng)論


            相關(guān)推薦

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

            關(guān)閉