• <li id="00i08"><input id="00i08"></input></li>
  • <sup id="00i08"><tbody id="00i08"></tbody></sup>
    <abbr id="00i08"></abbr>
  • 新聞中心

    EEPW首頁 > 嵌入式系統 > 設計應用 > 簡易數字直流電壓表電路及程序

    簡易數字直流電壓表電路及程序

    作者: 時間:2011-06-04 來源:網絡 收藏

    p1.0-Clock
    p1.1-Data out
    p1.2-CS
    */
    #include reg51.h
    #include intrins.h
    #include math.h
    sbit ad_clk=P1^0;
    sbit ad_dout=P1^1;
    sbit ad_cs=P1^2;
    unsigned char data re_data;
    unsigned int data T_cnt;
    double volt,xishu;
    char code led_seg_code[10]={0x3f,0x06,0x05b,0x04f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
    //led_seg_code[0-9]代表0-9的7段碼
    //---------------
    void delay(unsigned int i)//延時
    { while(--i); }
    //---------------
    void led_show(double f)
    { unsigned char i,s;
    unsigned int k,*j;
    if (f2)
    { k=f;//取整數 部分
    i=k;
    P0=led_seg_code[i] | 0x80;
    P2=0xfb;
    delay(50);
    i=f*10;
    i=i%10;
    P0=led_seg_code[i];
    P2=0xfd;
    delay(50);
    i=f*100; //取小數后1位
    i=i%10;
    P0=led_seg_code[i];
    P2=0xfe;
    delay(50);
    else //超限報警,顯示“---”
    { P0=0x40;
    P2=0xfb;
    delay(50);
    //---------
    P2=0xfd;
    delay(50);
    //-----------
    P2=0xfe;
    delay(50);
    }
    }
    //----讀取ADC轉換器TLC549的數據----
    unsigned char receive_data()
    {unsigned char i,d;
    d=0;
    ad_cs=1; // /CS置高,片選無效
    ad_clk=0;
    ad_cs=0;
    _nop_();
    for(i0;i8;i++)
    { ad_clk=1;
    d=d1;
    if (ad_dout)
    { d++;}
    ad_clk=0;
    }
    ad_cs=1;
    for(i=0;i10;i++) // 適當延時超過17us
    _nop_();
    return d;
    }
    //-------------
    main()
    {T_cnt=0;
    TMOD=0x01; //定時器設置T0
    TH0=0x4c; //50000us=(65536-0x4c00)*12/11.0592
    TL0=00;
    EA=0;
    TR0=1;
    re_data=0x00;
    volt=0;
    xishu=2.5/255.0;
    //-----------------------------
    while(1)
    { if(TF0==1)
    { TF0=0;
    TH0=0x4c; //50000us=(65536-0x4c00)*12/11.0592
    TL0=0x0;
    if (T_cnt2) //T0為50毫秒溢出一次,每100ms讀取一次AD轉換器數據
    {T_cnt++;}
    else
    { T_cnt=0;//計時到100ms了
    re_data=receive_data();
    //轉換為電壓值
    volt=re_data;
    volt=volt*xishu;
    }
    }
    led_show(volt);
    }
    }

    本文引用地址:http://www.czjhyjcfj.com/article/172700.htm

    DIY機械鍵盤相關社區:機械鍵盤DIY



    上一頁 1 2 下一頁

    評論


    相關推薦

    技術專區

    關閉
    主站蜘蛛池模板: 沂源县| 女性| 兴义市| 建德市| 易门县| 卢龙县| 古田县| 栖霞市| 洛浦县| 娄烦县| 威远县| 奉贤区| 论坛| 泸西县| 永川市| 锦州市| 庄河市| 老河口市| 凤翔县| 司法| 仁怀市| 易门县| 邢台县| 金沙县| 和硕县| 琼结县| 惠州市| 沙河市| 沂源县| 禹州市| 温宿县| 鄂托克旗| 漳平市| 成武县| 河南省| 兴文县| 永德县| 鄱阳县| 张家口市| 襄城县| 莱西市|