新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > CH451驅動LED數碼管單片機C語言實例程序

        CH451驅動LED數碼管單片機C語言實例程序

        作者: 時間:2016-11-13 來源:網絡 收藏
        CH451能夠一次性驅動8位數碼管,與單片機串行通信。支持數碼管的左移,右移,左循環,右循環,獨立閃爍,16級亮度控制等功能。是單片機控制多個數碼管的得力助手,現將MEGA16單片機(MEGA16是AVR單片機,改程序稍加修改可以應用到8051單片機,PIC單片機,MSP430單片機上)驅動CH451的程序發布,希望能有所用。CH451的詳細資料可去官方網站下載。

        本文引用地址:http://www.104case.com/article/201611/316267.htm

        //包含CH451所需頭文件

        #i nclude

        #i nclude

        /*------宏定義------*/

        #define uchar unsigned char

        #define uint unsigned int

        #define ch451din PORTB

        #define ch451dclk0 PORTB&=~BIT(PB1)

        #define ch451dclk1 PORTB|=BIT(PB1)

        #define ch451load0 PORTB&=~BIT(PB2)

        #define ch451load1 PORTB|=BIT(PB2)

        #define ch451dout0 PORTB&=~BIT(PB3)

        #define ch451dout1 PORTB|=BIT(PB3)

        //CH451復位

        #define CH451_RESET 0x0201

        //設置移動方式-作移、左循、右移、右循

        #define CH451_LEFTMOV 0x0300

        #define CH451_LEFTCYC 0x0301

        #define CH451_RIGHTMOV 0x0302

        #define CH451_RIGHTCYC 0x0303

        //設置BCD譯碼方式

        #define CH451_BCD 0x0580

        //設置數碼管閃爍控制

        #define CH451_TWINKLE 0x0600

        //數碼管各位顯示

        #define CH451_DIG0 0x0800

        #define CH451_DIG1 0x0900

        #define CH451_DIG2 0x0a00

        #define CH451_DIG3 0x0b00

        #define CH451_DIG4 0x0c00

        #define CH451_DIG5 0x0d00

        #define CH451_DIG6 0x0e00

        #define CH451_DIG7 0x0f00

        //CH451初始化

        void ch451_init()

        {

        ch451din=0;

        ch451din=1;

        }

        //輸出命令子程序

        //定義一個無符號整型變量存儲12字節的命令字

        void ch451_write(uint command)

        {

        uchar i;

        ch451load0;

        for(i=0;i<12;i++)

        {

        ch451din=command&1;

        ch451dclk0;

        ch451dclk1;

        command>>=1;

        }

        ch451load1;

        }

        //CH451端口初始化

        void port_init(void)

        {

        PORTA = 0x00;

        DDRA = 0x00;

        PORTB = 0x07;

        DDRB = 0x07;

        PORTC = 0x00;

        DDRC = 0x00;

        PORTD = 0x00;

        DDRD = 0x00;

        }

        //單片機C語言主函數

        void main(void)

        {

        port_init();

        ch451_init();

        ch451_write(CH451_RESET);

        ch451_write(0x401);

        ch451_write(0x580);

        ch451_write(0x600);

        ch451_write(CH451_DIG0|0x08);

        while(1)

        {}

        }



        評論


        技術專區

        關閉
        主站蜘蛛池模板: 石渠县| 社会| 太谷县| 远安县| 益阳市| 巴林右旗| 密云县| 临颍县| 都匀市| 鹤岗市| 浦城县| 新建县| 炎陵县| 贵定县| 万盛区| 确山县| 大足县| 内黄县| 泰兴市| 漠河县| 平顺县| 天等县| 固始县| 方正县| 禄劝| 衡山县| 佛教| 宁陵县| 靖州| 黄山市| 澎湖县| 永定县| 万荣县| 全南县| 洛南县| 博野县| 广平县| 财经| 左云县| 建宁县| 苍南县|