新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > [C51代碼]MAX7219驅動

        [C51代碼]MAX7219驅動

        作者: 時間:2016-11-10 來源:網絡 收藏
        /***************max7219.h****************/
        #ifndef _max7219_h_
        #define _max7219_h_
        #include
        #include "link.h"
        /***************控制引腳定義****************/
        sbit _7219_DIN = P2^0;
        sbit _7219_CS = P2^1;
        sbit _7219_CLK = P2^2;
        /***************控制字定義****************/
        #define _7219_NO_OP0x00 //Digit0~Digit7位于RAM的地址
        #define _7219_DIG00x01
        #define _7219_DIG10x02
        #define _7219_DIG20x03
        #define _7219_DIG30x04
        #define _7219_DIG40x05
        #define _7219_DIG50x06
        #define _7219_DIG60x07
        #define _7219_DIG70x08
        #define _7219_DECODE0x09 //譯碼方式地址
        #define _7219_INTENSITY0x0A //亮度寄存器地址
        #define _7219_SCANLIMIT0x0B //掃描界限寄存器地址,用于設置外接數碼管個數
        #define _7219_SHUTDOWN0x0C //停機寄存器地址,使其處于低功耗
        #define _7219_DISPTEST0x0F //顯示測試寄存器地址,用于測試數碼管和MAX2719是否工作
        //Decode Mode
        #define _7219_DECODE_ALL0xff
        #define _7219_DECODE_NONE0x00
        // Intensity
        #define _7219_INTENSITY_MIN0x01
        #define _7219_INTENSITY_MAX0x0f
        // Scanlimit
        #define _7219_SCANLIMIT_70x07
        #define _7219_SCANLIMIT_60x06
        #define _7219_SCANLIMIT_50x05
        #define _7219_SCANLIMIT_40x04
        #define _7219_SCANLIMIT_30x03
        #define _7219_SCANLIMIT_20x02
        #define _7219_SCANLIMIT_10x01
        #define _7219_SCANLIMIT_00x00
        //Shutdown mode
        #define _7219_SHUTDOWN_ON 0x01
        #define _7219_SHUTDOWN_OFF 0x00
        //Display test
        #define _7219_DISPTEST_ON0x01
        #define _7219_DISPTEST_OFF 0x00
        //7219 CODE B
        //BCD譯碼對應的字符段位
        #define _7219_00x00
        #define _7219_10x01
        #define _7219_20x02
        #define _7219_30x03
        #define _7219_40x04
        #define _7219_50x05
        #define _7219_60x06
        #define _7219_70x07
        #define _7219_80x08
        #define _7219_90x09
        #define _7219_E0x0B
        #define _7219_H0x0C
        #define _7219_L0x0D
        #define _7219_P0x0E
        #define _7219_BLANK0x0F
        //7219 NO Code
        #define _7219_SEG_DP7
        #define _7219_SEG_A6
        #define _7219_SEG_B5
        #define _7219_SEG_C4
        #define _7219_SEG_D3
        #define _7219_SEG_E2
        #define _7219_SEG_F1
        #define _7219_SEG_G0
        /***************函數聲明****************/
        extern void Write_Max7219(uchar Addr, uchar Content);
        extern void Init_Max7219();
        #endif
        /**************************max7219.c*******************************/
        #include "max7219.h"
        #include "link.h"
        #include
        /****************************************************************
        *函數功能:寫入一個字節到max7219
        *入口參數:數據Content
        *出口參數:無
        *****************************************************************/
        void Write_Max7219_byte(unsigned char temp)
        {
        unsigned char i;
        for (i=0;i<8;i++)
        {
        _7219_CLK=0;
        _7219_DIN=(bit)(temp&0x80);
        temp<<=1;
        _7219_CLK=1;
        }
        }
        /****************************************************************
        *函數功能:在max7219指定的地址寫入一個字節的內容
        *入口參數:要寫入數據的地址:Address
        寫入數據的具體值:Content
        *出口參數:無
        ****************************************************************/
        void Write_Max7219(unsigned char address,unsigned char dat)
        {
        _7219_CS=0;
        Write_Max7219_byte(address);
        Write_Max7219_byte(dat);
        _7219_CS=1;
        }
        /****************************************************************
        *函數功能:配置max7219的基本參數
        *入口參數:無
        *出口參數:無
        ****************************************************************/
        void Init_Max7219()
        {
        Write_Max7219(_7219_SHUTDOWN , _7219_SHUTDOWN_OFF);
        Write_Max7219(_7219_INTENSITY, 0x05);
        Write_Max7219(_7219_DECODE , _7219_DECODE_ALL);
        Write_Max7219(_7219_DISPTEST , _7219_DISPTEST_OFF);
        Write_Max7219(_7219_SHUTDOWN , _7219_SHUTDOWN_ON);
        Write_Max7219(_7219_SCANLIMIT , _7219_SCANLIMIT_7);
        }


        關鍵詞: C51代碼MAX7219驅

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 托克托县| 新干县| 昭觉县| 建瓯市| 苏尼特右旗| 昔阳县| 水富县| 望都县| 灵璧县| 神木县| 陈巴尔虎旗| 肥乡县| 洪洞县| 尚志市| 德安县| 利津县| 堆龙德庆县| 永嘉县| 瑞昌市| 金溪县| 集贤县| 襄汾县| 太白县| 济宁市| 黑河市| 兴海县| 河源市| 高阳县| 惠州市| 中西区| 彭山县| 化德县| 柘城县| 乌拉特中旗| 太白县| 邯郸市| 阜新市| 建德市| 南乐县| 渝北区| 库车县|