<acronym id="xonnx"></acronym>
      <td id="xonnx"></td>
    1. <pre id="xonnx"></pre>

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

        點陣LED流動顯示5,4,3,2,1后一直顯示閃動的矩形

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

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

        以下是程序的源代碼:
        /****************點陣LED******************/
        /**
        *功能:點陣LED流動顯示5,4,3,2,1后,會一直顯示閃動的矩形
        *作者:徐冉
        *日期:2013-06-10
        *備注:已經通過調試
        **/
        /*****************AT89C52-RC MCU****************/
        /***********************51hei開發板**************/

        #include <reg52.h>
        typedef unsigned int uint;//數據類型聲明優于#define
        typedef unsigned char uchar;
        sbit max7219_din = P2^0;//MAX7219串行數據輸入端
        sbit max7219_cs = P2^1; //MAX7219片選端
        sbit max7219_clk = P2^2;//MAX7219時鐘端
        //顯示取模編碼表
        uchar code dis[11][8] = {
        {0x3C,0x20,0x20,0x3C,0x4,0x4,0x3C,0x0},//5
        {0x8,0x18,0x28,0x48,0xFE,0x8,0x8,0x8},//4
        {0x3E,0x2,0x2,0x3E,0x2,0x2,0x3E,0x0},//3
        {0x7E,0x2,0x2,0x7E,0x40,0x40,0x40,0x7E},//2
        {0x10,0x18,0x14,0x10,0x10,0x10,0x10,0x10},//1
        {0xff,0x81,0x81,0x81,0x81,0x81,0x81,0xff},
        {0,0x7e,0x42,0x42,0x42,0x42,0x7e,0},
        {0,0,0x3c,0x24,0x24,0x3c,0,0},
        {0,0,0,0x18,0x18,0,0,0,},
        {0,0,0,0,0,0,0,0}
        };
        //毫秒延時程序
        void delay(uint xms)
        {
        uint  x, y;
        for(x = 0; x < xms; x++)
          for(y = 0; y < 110; y++);
        }
        //寫MAX7219字節數據
        void write_byte_max7219(uchar dat)
        {
        uchar i;
        max7219_cs = 0;//選通max7219
        for(i = 0; i < 8; i++)
        {
        max7219_clk = 0;
        max7219_din = dat & 0x80;
        dat <<= 1;
        max7219_clk = 1;
        }
        }
        //寫數據到MAX7219
        void write_max7219(uchar address, uchar dat)
        {
        max7219_cs = 0;
        write_byte_max7219(address);
        write_byte_max7219(dat);
        max7219_cs = 1;
        }
        //MAX7219初始化
        void max7219_init()
        {
        //譯碼模式
        write_max7219(0x09, 0x00);
        //亮度模式
        write_max7219(0x0a, 0x06);//亮度為13/32
        //設置掉電模式
        write_max7219(0x0c, 0x01);
        //掃描模式0~7
        write_max7219(0x0b, 0x07);
        //顯示檢測
        write_max7219(0x0f, 0x00);
        }
        //主程序
        void main(void)
        {
        uchar i = 0, j = 0;
        delay(50);
        max7219_init();
        while(1)
        {
        //流動顯示數字
        for(i = 0; i < 5; i++)
        {
        for(j = 0; j < 8; j++)
        { //此處的數據必須從0x01開始寫,否則寫不成功;
        write_max7219(j+1, dis[j]);
        }
        delay(500);
        }
        //矩形閃動
        while(1)
        {
        for(i = 5; i < 10; i++)
        {
        for(j = 0; j < 8; j++)
        { //此處的數據必須從0x01開始寫,否則寫不成功;
        write_max7219(j+1, dis[j]);
        }
        delay(100);
        }
        }
        }
        }

         

        關閉窗口

        相關文章

        欧美性色欧美精品视频,99热这里只有精品mp4,日韩高清亚洲日韩精品一区二区,2020国自产拍精品高潮