新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機制作的數字電壓表

        單片機制作的數字電壓表

        作者: 時間:2011-05-31 來源:網絡 收藏

        利用AT89S51與ADC0809設計一個,能夠測量0-5V之間的直流電壓值,四位數碼顯示,但是使用的元器件數目最少。

        本文引用地址:http://www.104case.com/article/172716.htm
        #include
        unsigned char code dispbitcode[]={0xfe,0xfd,0xfb,0xf7,
        0xef,0xdf,0xbf,0x7f};
        unsigned char code dispcode[]={0x3f,0x06,0x5b,0x4f,0x66,
        0x6d,0x7d,0x07,0x7f,0x6f,0x00};
        unsigned char dispbuf[8]={10,10,10,10,0,0,0,0};
        unsigned char dispcount;
        unsigned char getdata;
        unsigned int temp;
        unsigned char i;
        sbit ST=P3^0;
        sbit OE=P3^1;
        sbit EOC=P3^2;
        sbit CLK=P3^3;
        void main(void)
        {
        ST=0;
        OE=0;
        ET0=1;
        ET1=1;
        EA=1;
        TMOD=0x12;
        TH0=216;
        TL0=216;
        TH1=(65536-4000)/256;
        TL1=(65536-4000)%6;
        TR1=1;
        TR0=1;
        ST=1;
        ST=0;
        while(1)
        {
        if(EOC==1)
        {
        OE=1;
        getdata=P0;
        OE=0;
        temp=getdata*235;
        temp=temp/128;
        i=5;
        dispbuf[0]=10;
        dispbuf[1]=10;
        dispbuf[2]=10;
        dispbuf[3]=10;
        dispbuf[4]=10;
        dispbuf[5]=0;
        dispbuf[6]=0;
        dispbuf[7]=0;
        while(temp/10)
        {
        dispbuf[i]=temp;
        temp=temp/10;
        i++;
        }
        dispbuf[i]=temp;
        ST=1;
        ST=0;
        }
        }
        }
        void t0(void) interrupt 1 using 0
        {
        CLK=~CLK;
        }
        void t1(void) interrupt 3 using 0
        {
        TH1=(65536-4000)/256;
        TL1=(65536-4000)%6;
        P1=dispcode[dispbuf[dispcount]];
        P2=dispbitcode[dispcount];
        if(dispcount==7)
        {
        P1=P1 | 0x80;
        }
        dispcount++;
        if(dispcount==8)
        {
        dispcount=0;
        }
        }


        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 藁城市| 乌兰浩特市| 周口市| 定安县| 麦盖提县| 瓮安县| 来安县| 敖汉旗| 来宾市| 都安| 金华市| 巴青县| 涞源县| 建宁县| 蓬溪县| 偏关县| 嘉善县| 樟树市| 马鞍山市| 项城市| 宁化县| 新疆| 内黄县| 江永县| 巢湖市| 连云港市| 同江市| 邢台市| 吕梁市| 汉阴县| 英山县| 万安县| 伊通| 大新县| 祁连县| 利川市| 文山县| 韶关市| 和政县| 通河县| 钟祥市|