中文字幕 另类精品,亚洲欧美一区二区蜜桃,日本在线精品视频免费,孩交精品乱子片免费

<sup id="3hn2b"></sup>

    1. <sub id="3hn2b"><ol id="3hn2b"></ol></sub><legend id="3hn2b"></legend>

      1. <xmp id="3hn2b"></xmp>

      2. 新聞中心

        EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 基于51單片機(jī)太陽(yáng)能電池太陽(yáng)跟蹤裝置程序設(shè)計(jì)

        基于51單片機(jī)太陽(yáng)能電池太陽(yáng)跟蹤裝置程序設(shè)計(jì)

        作者: 時(shí)間:2016-11-23 來(lái)源:網(wǎng)絡(luò) 收藏
        #include
        #include
        #include
        #define uchar unsigned char
        #define uint unsigned int
        #define ysfs 600 //宏定義 預(yù)設(shè)風(fēng)速
        #define shuiping 1500 //宏定義 水平位置AD轉(zhuǎn)換結(jié)果
        #define fuyang 1500 //宏定義 俯仰位置AD轉(zhuǎn)換結(jié)果
        #define PA XBYTE [0x7CFF] //8255芯片端口4個(gè)基地址宏定義
        #define PB XBYTE [0x7FFD]
        #define PC XBYTE [0x7FFE]
        #define CONTROL XBYTE [0x7FFF]
        sbit OE=P1^0; //以下為關(guān)于AD0808與單片機(jī)的八個(gè)接口定義
        sbit EOC=P1^1;
        sbit START=P1^2;
        sbit CLK=P1^3;
        sbit ALE=P1^4;
        sbit C0=P1^5;
        sbit C1=P1^6;
        sbit C2=P1^7;
        sbit gdkg=P2^3; //用于復(fù)位光電開(kāi)關(guān)端口定義
        sbit clock=P2^0; //定義水平俯仰步進(jìn)電機(jī)的速度端口,頻率越快,速度越快,不給頻率電機(jī)不轉(zhuǎn)
        sbit cw1=P2^1; //定義水平步進(jìn)電機(jī)的轉(zhuǎn)向端口,1正轉(zhuǎn),0反轉(zhuǎn)
        sbit enable1=P2^2; //定義水平步進(jìn)電機(jī)的使能端口,1轉(zhuǎn),0不轉(zhuǎn)
        sbit cw2=P2^4; //定義俯仰步進(jìn)電機(jī)的轉(zhuǎn)向端口,1正轉(zhuǎn),0反轉(zhuǎn)
        sbit enable2=P2^5; //定義俯仰步進(jìn)電機(jī)的使能端口,1轉(zhuǎn),0不轉(zhuǎn)
        uint ad_result_fenshu,ad_result_shuiping,ad_result_fuyang;
        void timer_init()
        {
        TMOD=0x11; //定時(shí)器模式設(shè)置
        TH0=(65536-5000)/256;
        TL0=(65536-5000)%6;
        TH1=0xFF;
        TL1=0x9C;
        ET0=1; //允許定時(shí)器0中斷
        TR0=1; //啟動(dòng)定時(shí)器0
        ET1=1; //允許定時(shí)器1中斷
        TR1=1; //啟動(dòng)定時(shí)器1
        EA=1; //允許總中斷
        }
        void AD_chane(int x)
        {
        if(x==0)
        {
        C0=0;
        C1=0;
        C2=0;
        }
        else if(x==1)
        {
        C0=1;
        C1=0;
        C2=0;
        }
        else if(x==2)
        {
        C0=0;
        C1=1;
        C2=0;
        }
        ALE=1;
        }
        int Get_AD_Sd()
        {
        int Sd;
        START=0;START=1;START=0;
        while(EOC==0);
        OE=1;
        Sd=P3;
        OE=0;
        return Sd;
        }
        void reset()
        {
        while(gdkg!=1)
        {
        cw2=0;
        enable2=1;
        }
        enable2=0;
        }
        void shuiping_tiaozheng(int date)
        {
        if(date>shuiping)
        {
        do
        {
        cw1=1;
        enable1=1;
        }
        while(date==shuiping);
        enable1=0;
        }
        else if(date
        {
        do
        {
        cw1=0;
        enable1=1;
        }
        while(date==shuiping);
        enable1=0;
        }
        }
        void fuyang_tiaozheng(int date)
        {
        if(date>fuyang)
        {
        do
        {
        cw2=1;
        enable2=1;
        }
        while(date==fuyang);
        enable2=0;
        }
        else if(date
        {
        do
        {
        cw2=0;
        enable2=1;
        }
        while(date==fuyang);
        enable2=0;
        }
        }
        void main()
        {
        CONTROL = 0x80;
        ALE=0;
        timer_init();
        enable1=0;
        enable2=0;
        while(1) //進(jìn)入循環(huán)
        {
        AD_chane(0);
        ad_result_fenshu=Get_AD_Sd();
        ALE=0;
        AD_chane(1);
        ad_result_shuiping=Get_AD_Sd();
        ALE=0;
        AD_chane(2);
        ad_result_fuyang=Get_AD_Sd();
        ALE=0;
        if(ad_result_fenshu>ysfs) //如果風(fēng)速大于預(yù)設(shè)風(fēng)速,則復(fù)位
        {
        reset();
        }
        shuiping_tiaozheng(ad_result_shuiping);
        fuyang_tiaozheng(ad_result_fuyang);
        }
        }
        void timer0() interrupt 1
        {
        TH0=(65536-5000)/256;
        TL0=(65536-5000)%6;
        CLK=~CLK;
        }
        void timer1() interrupt 3
        {
        static uchar i=0;
        TH1=0xFF;
        TL1=0x9C;
        ++i;
        if (i>10) i=0;
        if (i<=6)
        clock=0;
        else
        clock=1;
        }


        評(píng)論


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

        關(guān)閉