新聞中心

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

        用單片機制作一個數字電壓表

        作者: 時間:2012-06-29 來源:網絡 收藏

        5. 匯編源程序
        (略)
        6. C語言源程序
        #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)%256;
        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%10;
        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)%256;
        P1=dispcode[dispbuf[dispcount]];
        P2=dispbitcode[dispcount];
        if(dispcount==7)
        {
        P1=P1 | 0x80;
        }
        dispcount++;
        if(dispcount==8)
        {
        dispcount=0;
        }
        }


        上一頁 1 2 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 离岛区| 武冈市| 基隆市| 巴林左旗| 双鸭山市| 稷山县| 黔东| 洪泽县| 博湖县| 抚松县| 烟台市| 成武县| 安岳县| 班玛县| 秦安县| 涿州市| 张家川| 蒙自县| 中西区| 福海县| 图木舒克市| 长宁县| 合川市| 邹平县| 启东市| 海盐县| 朝阳区| 崇左市| 保德县| 海丰县| 峨边| 克东县| 永寿县| 淮安市| 河源市| 曲水县| 寿阳县| 舟山市| 阜新市| 涟水县| 太康县|