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

    單片機控制點陣矩形收縮閃爍源程序

    作者:寒竹子   來源:本站原創   點擊數:  更新時間:2014年03月21日   【字體:

    本程序所用的原理圖下載: 點這里 ,單片機芯片使用的stc89c52;找到點陣部分的原理圖即可.這是一整個單片機開發板的電路圖其他的忽略

    以下是程序源碼:
    /**
    *功能:矩形收縮閃爍
    *作者:徐冉
    *日期:2013-06-26-22:13
    *備注:程序調試成功
    **/
    /********AT89C52-RC MCU****************/
    /*************51hei開發板**************/
    #include <reg52.h>
    typedef unsigned int uint;
    typedef unsigned char uchar;
    sbit din = P2^0;
    sbit cs = P2^1;
    sbit clk = P2^2;
    uchar code dis[][8] ={
           {0xFF,0x81,0x81,0x81,0x81,0x81,0x81,0xFF},
              {0x00,0x7E,0x42,0x42,0x42,0x42,0x7E,0x00},
           {0x00,0x00,0x3C,0x24,0x24,0x3C,0x00,0x00},
           {0x00,0x00,0x00,0x18,0x18,0x00,0x00,0x00}
           };
    //延時xms           
    void delay(uint xms)
    {
     uint x, y;
     for(x = xms; x > 0; x--)
      for(y = 110; y > 0; y--);
    }
    //寫一個字節
    void write_byte(uchar date)
    {
     uchar i, temp;
     temp = date;
     cs = 0; //選通MAX7219
     for(i = 0; i < 8; i++)
     {
      clk = 0;
      din = temp & 0x80;
      temp <<= 1;
      clk = 1; //時鐘上升沿脈沖
     }
    }
    //寫MAX7219
    void write_max7219(uchar address, uchar date)
    {
     cs = 0;//選通MAX7219
     write_byte(address);
     write_byte(date);
     cs = 1;
    }
    //MAX7219初始化
    void max7219_init()
    {
     write_max7219(0x0c, 0x01);
     write_max7219(0x09, 0x00);
     write_max7219(0x0a, 0x05);
     write_max7219(0x0b, 0x07);
     write_max7219(0x0f, 0x00);
    }
    //主程序
    void main(void)
    {
     uchar i, j;
     delay(50);//稍作延時
     max7219_init();
     while(1)
     {
      for(i = 0; i < 4; i++)
      {
       for(j = 0; j < 8; j++)
       {
        write_max7219(j+1, dis[i][j]);//寫入MAX7219數據
       }
       delay(100); //延時100ms
      }
     }
    }
     

    關閉窗口

    相關文章

    亚洲一区二区制服在线|在绩专区欧美自拍日韩|青春娱乐网97超碰人人射|在线观看国产网址你懂的