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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 基于STC12C5A60S2單片機的點陣屏完工

          基于STC12C5A60S2單片機的點陣屏完工

          作者: 時間:2016-12-01 來源:網(wǎng)絡 收藏

          //P2^0串行數(shù)據(jù)輸入
          #include//包函頭文件
          #include//包函_nop_延時函數(shù)的頭文件
          #define uchar unsigned char//宏定義
          #define uint unsigned int//宏定義
          ////////////////////////////////////////////////////////////////////////////////
          uchar code ZM000[]=
          {
          //源文件 / 文字: 祝
          0x00,0x00,0x20,0x00,0x11,0xF8,0x01,0x08,
          0x79,0x08,0x09,0x08,0x11,0x08,0x11,0xF8,
          0x38,0x90,0x54,0x90,0x10,0x90,0x10,0x90,
          0x11,0x14,0x11,0x14,0x12,0x0C,0x00,0x00,
          };
          uchar code ZM001[]=
          {
          //源文件 / 文字: 榮
          0x00,0x00,0x08,0x20,0x7F,0xFC,0x08,0x20,
          0x00,0x00,0x7F,0xFC,0x40,0x04,0x01,0x00,
          0x01,0x00,0x7F,0xFC,0x03,0x80,0x05,0x40,
          0x19,0x30,0x61,0x0C,0x01,0x00,0x00,0x00,
          };
          ////////////////////////////////////////////////////////////////////////////////
          sbit HC154_A=P0^0;//HC154數(shù)據(jù)輸入口
          sbit HC154_B=P0^1;//HC154數(shù)據(jù)輸入口
          sbit HC154_C=P0^2;//HC154數(shù)據(jù)輸入口
          sbit HC154_D=P0^3;//HC154數(shù)據(jù)輸入口
          sbit G1=P0^4;//HC154使能端控制
          sbit SH=P0^5;//HC595移位控制
          sbit ST=P0^6;//HC595鎖存更新顯示
          sbit OE=P0^7;//HC595使能端控制
          sbit DS=P2^0;//HC595串行數(shù)據(jù)輸入
          ////////////////////////////////////////////////////////////////////////////////
          void chushihua() //硬件初始化
          {
          OE=1; //關閉HC595輸出
          G1=1; //關閉HC154輸出
          }
          ////////////////////////////////////////////////////////////////////////////////
          void delay(uint ms)//延時子程序
          {
          uint x,y;
          for(x=ms;x>0;x--)
          for(y=0;y<240;y++);
          }
          ////////////////////////////////////////////////////////////////////////////////
          //低位先入
          void sendbyte(uchar Rdate)//HC595串口輸入一個字節(jié)
          {
          uchar a;
          uchar date=Rdate;
          for(a=0;a<8;a++)
          {
          SH=0;
          if(date&0x01)//先將最低位移入
          {
          DS=1;
          SH=1;
          }
          else
          {
          DS=0;
          SH=1;
          }
          date=date>>1;//輸入的字節(jié)位右移
          }
          }
          ////////////////////////////////////////////////////////////////////////////////
          void HC595_GX() //HC595鎖存數(shù)據(jù)更新并輸出
          {
          ST=0;
          _nop_();
          _nop_();
          ST=1; //HC595鎖存數(shù)據(jù)更新
          _nop_();
          _nop_();
          OE=0; //HC595輸出
          }
          ////////////////////////////////////////////////////////////////////////////////
          void HC154_HS(uint x)//X行低電平輸出
          {
          G1=0;
          switch(x)
          {
          case 1:
          HC154_A=0;
          HC154_B=0;
          HC154_C=0;
          HC154_D=0;
          break;
          case 2:
          HC154_A=1;
          HC154_B=0;
          HC154_C=0;
          HC154_D=0;
          break;
          case 3:
          HC154_A=0;
          HC154_B=1;
          HC154_C=0;
          HC154_D=0;
          break;
          case 4:
          HC154_A=1;
          HC154_B=1;
          HC154_C=0;
          HC154_D=0;
          break;
          case 5:
          HC154_A=0;
          HC154_B=0;
          HC154_C=1;
          HC154_D=0;
          break;
          case 6:
          HC154_A=1;
          HC154_B=0;
          HC154_C=1;
          HC154_D=0;
          break;
          case 7:
          HC154_A=0;
          HC154_B=1;
          HC154_C=1;
          HC154_D=0;
          break;
          case 8:
          HC154_A=1;
          HC154_B=1;
          HC154_C=1;
          HC154_D=0;
          break;
          case 9:
          HC154_A=0;
          HC154_B=0;
          HC154_C=0;
          HC154_D=1;
          break;
          case 10:
          HC154_A=1;
          HC154_B=0;
          HC154_C=0;
          HC154_D=1;
          break;
          case 11:
          HC154_A=0;
          HC154_B=1;
          HC154_C=0;
          HC154_D=1;
          break;
          case 12:
          HC154_A=1;
          HC154_B=1;
          HC154_C=0;
          HC154_D=1;
          break;
          case 13:
          HC154_A=0;
          HC154_B=0;
          HC154_C=1;
          HC154_D=1;
          break;
          case 14:
          HC154_A=1;
          HC154_B=0;
          HC154_C=1;
          HC154_D=1;
          break;
          case 15:
          HC154_A=0;
          HC154_B=1;
          HC154_C=1;
          HC154_D=1;
          break;
          case 16:
          HC154_A=1;
          HC154_B=1;
          HC154_C=1;
          HC154_D=1;
          break;
          default:
          break;
          }
          }
          ////////////////////////////////////////////////////////////////////////////////
          void OUT16x16(uchar code ZM[31])//輸出一個16x16點陣字模子程序
          {
          uint y;//行掃數(shù)據(jù)控制
          uint x_H;//列高位數(shù)據(jù)控制
          uint x_L;//列低位數(shù)據(jù)控制
          for(y=1,x_H=0,x_L=1;y<=16;y++)
          {
          sendbyte(ZM[x_L]);
          sendbyte(ZM[x_H]);
          HC595_GX();
          HC154_HS(y);
          x_H+=2;
          x_L+=2;
          delay(1);
          }
          }
          ////////////////////////////////////////////////////////////////////////////////
          void main() //主函數(shù)
          {
          uint x;
          while(1)
          {
          //輸出祝字
          for(x=0;x<5000;x++)
          {
          OUT16x16(ZM000);
          }
          //輸出榮字
          for(x=0;x<5000;x++)
          {
          OUT16x16(ZM001);
          }
          }

          }

          上一頁 1 2 下一頁

          評論


          技術專區(qū)

          關閉