新聞中心

        EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于51單片機(jī)驅(qū)動S8330E C語言程序

        基于51單片機(jī)驅(qū)動S8330E C語言程序

        作者: 時間:2016-11-30 來源:網(wǎng)絡(luò) 收藏
        //S8330E是日本精工的一個電源IC,需要軟件調(diào)節(jié)電壓輸出值
        #include
        #include
        sbit DIN = P1^0;
        sbit CLK = P1^1;
        sbit STB = P1^2;
        sbit Key = P3^4;
        sbit LED = P1^7;

        void Delay(unsigned int MS)
        {
        unsigned char us,usn;
        while(MS!=0)
        {
        usn = 2; //for 12M
        while(usn!=0)
        {
        us=0xf6;
        while (us!=0){us--;};
        usn--;
        }
        MS--;
        }
        }

        void DelayKey(unsigned int Second , unsigned int MS100)
        { //輸入精確到0.1S,是用,
        unsigned int i;
        for(i=0;i {
        if(Key==0)
        {
        Delay(20);
        while(Key==0) {Delay(20);}
        break;
        }
        else Delay(10);
        }
        }

        void LEDOnOfF(unsigned char n)
        {
        unsigned char i;
        LED = 1;
        for(i=0;i<2*n;i++)
        {
        LED = ~LED;
        Delay(30);
        }
        }

        void SetVout(unsigned char lv)
        {
        unsigned char i;
        STB = 0; //芯片資料有點問題,只需要在STB=0時送數(shù)據(jù),然后STB=1即有效
        for(i=0;i<8;i++) //而不需要前后各一個脈沖,芯片說在SEB=0時候Vout輸出Min也不對
        { //只有前面時序圖似乎有點正確,后面的詳細(xì)操作過程說明有些問題
        DIN = (lv>>(7-i))&0x01;
        CLK = 0;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        CLK = 1;
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        _nop_();

        }
        CLK = 0; //送完一組數(shù)據(jù)后,CLK須為0,見時序圖,否則輸入數(shù)據(jù)無效
        STB = 1;
        LEDOnOfF(3);
        }

        void main (void)
        {
        unsigned char i;
        Delay(10);
        DelayKey(1,0);
        LEDOnOfF(1);
        DelayKey(1,0);
        for(i=0;i<=255;i=i+5)
        {
        SetVout(i);
        DelayKey(0,2);
        }
        }


        評論


        技術(shù)專區(qū)

        關(guān)閉
        主站蜘蛛池模板: 元阳县| 庆阳市| 楚雄市| 历史| 湄潭县| 梁山县| 荣成市| 英德市| 揭阳市| 承德市| 三门峡市| 双柏县| 年辖:市辖区| 云龙县| 崇州市| 绥江县| 韶山市| 阜阳市| 定州市| 彭阳县| 六枝特区| 茂名市| 武宁县| 互助| 湖南省| 安丘市| 敖汉旗| 江孜县| 安岳县| 新干县| 青河县| 揭西县| 普兰县| 阿克| 瑞金市| 南阳市| 宾川县| 喀什市| 秦皇岛市| 富锦市| 文安县|