新聞中心

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

        單片機制作的數字電壓表及源代碼

        作者: 時間:2012-09-02 來源:網絡 收藏

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

        本文引用地址:http://www.104case.com/article/170945.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;
        }
        }



        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 日喀则市| 建水县| 理塘县| 庆元县| 延寿县| 奉新县| 伽师县| 云林县| 濮阳县| 兴安县| 伊通| 新兴县| 正蓝旗| 松溪县| 宝清县| 江口县| 辉南县| 临泉县| 连平县| 榕江县| 渝北区| 清远市| 岚皋县| 古浪县| 芷江| 义马市| 馆陶县| 高碑店市| 新巴尔虎右旗| 宜丰县| 科技| 林州市| 肃南| 庆元县| 城口县| 阜康市| 商城县| 乐都县| 淮南市| 嘉祥县| 迁安市|