色婷婷AⅤ一区二区三区|亚洲精品第一国产综合亚AV|久久精品官方网视频|日本28视频香蕉

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 51單片機+點陣8*8上、下、左、右移顯示C程序

          51單片機+點陣8*8上、下、左、右移顯示C程序

          作者: 時間:2012-07-10 來源:網(wǎng)絡(luò) 收藏
          最近在研究,這東西看起來簡單,但是要完全掌握它,可是要花一定時間的!我現(xiàn)在做得8*8硬件電路是這樣的,行采用+三極管8550驅(qū)動,列采用74HC595驅(qū)動,這種電路是非常用的,其次的掃描原理就是,先打開第一行,然后送代碼給列,即595端,像這樣掃描8次行,一個字就完成了,具體原理圖如下圖:
          點擊瀏覽下一頁

          下面我將我寫得代碼下載地址分享下:

          一、上移:
          #includereg52.h>
          #define uchar unsigned char
          #define uint unsigned int
          #define LINE P1//定義行線IO口,即74HC154控制端
          #define shudu 50//字移動的速度
          sbit DATA=P3^5;//74HC595數(shù)據(jù)端
          sbit CLK=P3^7;//74HC595移位脈沖端
          sbit CLKR=P3^6;//74HC595數(shù)據(jù)鎖存端
          uint word;//字節(jié)變量
          uchar line;//字節(jié)變量
          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ù)組
          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++)//移動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()
          {
          uchar i,f;
          for(i=0;ishudu;i++)//一字移動的速度
          {
          word=f;//將字暫存器給計數(shù)器
          for(line=0;line8;line++)//掃描8次,即完成一個字的移動
          {
          song(~table[word]);
          CLKR=1;//在74HC595處鎖存起來
          CLKR=0;
          CLKR=1;
          word++;//將計數(shù)器加1
          LINE=line;//打開行線,即行線端
          P3=0xff;
          delay(20);
          }
          }
          f+=2;//顯示完一個字后加2形成上移
          if(word>=32)
          {
          word=0;//清0重新開始
          f=0;
          }
          }
          /********************************/
          /************主程序*************/
          /********************************/
          void main()
          {
          while(1)
          {
          xian();
          }
          }


          上一頁 1 2 3 下一頁

          關(guān)鍵詞: 51單片機 點陣 74HC138

          評論


          相關(guān)推薦

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

          關(guān)閉