新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 51單片機實現光源的跟蹤

        51單片機實現光源的跟蹤

        作者: 時間:2016-11-27 來源:網絡 收藏
        unsigned int show_ADC_result_ch0()
        {
        unsigned long int VCC1;
        unsigned int A1,B1,C1,D1,i;
        VCC1=0;
        for(i=0;i<8;i++)
        {
        VCC1=VCC1+get_ADC_result(0);}
        VCC1=VCC1/8;
        VCC1=get_ADC_result(0);
        VCC1=(long int)VCC1*10000/1024*5;
        A1=VCC1/10000;
        B1=VCC1000/1000;
        C1=VCC100000/100;
        D1=VCC1000000/10;
        Send(0x56);//V
        Send(0x31); //1
        Send(0x3D);//=
        Send(A1+48);
        Send(0x2E);//.
        Send(B1+48);
        Send(C1+48);
        Send(D1+48);
        //Send(0xD); //回車
        //Send(0xA); //換行
        return(A1*1000+B1*100+C1*10+D1);
        }
        unsigned int show_ADC_result_ch1()
        {
        long int VCC2;
        unsigned int A2,B2,C2,D2,i;
        VCC2=0;
        for(i=0;i<8;i++)
        {
        VCC2=VCC2+get_ADC_result(1);}
        VCC2=VCC2/8;
        VCC2=get_ADC_result(1);
        VCC2=(long int)VCC2*10000/1024*5;
        A2=VCC2/10000;
        B2=VCC2000/1000;
        C2=VCC200000/100;
        D2=VCC2000000/10;
        Send(0x56);//V
        Send(0x32); //1
        Send(0x3D);//=
        Send(A2+48);
        Send(0x2E);//.
        Send(B2+48);
        Send(C2+48);
        Send(D2+48);
        //Send(0xD); //回車
        //Send(0xA); //換行
        return(A2*1000+B2*100+C2*10+D2);
        }
        void uart_init()
        {
        TMOD=0x20; //TMOD=0010 0000B,定時器T1工作于方式2
        SM0=0; //選擇串行口工作方式1
        SM1=1;
        TH1=0xfa; //根據規定給定時器T1賦初值9600波特率
        TL1=0xfa; //根據規定給定時器T1賦初值
        TR1=1; //啟動定時器T1
        }
        void Send(unsigned char dat)
        {
        SBUF=dat;
        while(TI==0);
        TI=0;
        }
        void positive_turn(unsigned int count)
        {
        P2_0=1;
        P2_1=0;
        CMOD = 0x00;//設置PCA時鐘周期 系統時鐘12分頻 fosc/12
        CL = 0x00; //初值設置
        CH = 0x00;
        CCAP0L = count; //設置初始占空比為25%
        CCAP0H = count;//占空比 設置的是低電平的時間
        CCAPM0 = 0X42;//PWM模式
        CR = 1;//開啟PCA計數器
        }
        void negative_turn(unsigned int count)
        {
        P2_0=0;
        P2_1=1;
        CMOD = 0x00;//設置PCA時鐘周期 系統時鐘12分頻 fosc/12
        CL = 0x00; //初值設置
        CH = 0x00;
        CCAP0L = count; //設置初始占空比為25%
        CCAP0H = count;//占空比 設置的是低電平的時間
        CCAPM0 = 0X42;//PWM模式
        CR = 1;//開啟PCA計數器
        }
        void stop_turn()
        {
        P1_3=1;
        P2_0=1;
        P2_1=1;
        }
        void delay(unsigned int a)
        {
        unsigned int b,i,tt;
        b=a;
        for(i=1;i
        {tt=60000;
        while(tt--);}
        }
        void delay_10ms()
        {
        TMOD=0x01;
        TF0=0;
        TH0=(65536-18433)/256;//10ms
        TL0=(65536-18433)%6;
        TR0=1;
        while(!TF0);
        TR0=0;
        }

        上一頁 1 2 下一頁

        關鍵詞: 51單片機光源跟

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 玉田县| 大安市| 工布江达县| 柳江县| 广元市| 武平县| 蒙自县| 鹿泉市| 沈丘县| 佛坪县| 海伦市| 仙桃市| 芒康县| 邢台市| 金华市| 凤冈县| 和硕县| 柳林县| 西乌| 白银市| 涿鹿县| 临汾市| 忻州市| 卓资县| 隆德县| 岳池县| 永清县| 安国市| 巴青县| 莒南县| 肃北| 汕尾市| 孝义市| 湘潭市| 阿拉善左旗| 牟定县| 高碑店市| 太和县| 晋宁县| 肥乡县| 古交市|