找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 1868|回復(fù): 0
打印 上一主題 下一主題
收起左側(cè)

求助電壓表分量程程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主

#include<reg52.h>
unsigned char smg_du[10] = {0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f};
sbit oe=P1^0;               
sbit eoc=P1^1;               
sbit st=P1^2;                       
sbit clk=P1^3;
unsigned int c=4;
unsigned int ad_data;
unsigned int s,a;               
void mDelay(unsigned int Delay)
{
        unsigned int i;
        for(;Delay>0;Delay--)
        {        
                for(i=0;i<54;i++) {;}
        }
}
void cbs()
{       
        switch(c)
        {
        case 1:
            s=1;
                break;
        case 2:
                s=4;
                break;
        case 3:
                s=10;
                break;
        case 4:
                s=20;
                break;
        }       
}
void smg_display(unsigned char dat)
{
        unsigned char i;
        unsigned int b;
        b=dat*1.0/255*500*s;
        for(i=0;i<4;i++)
        {
                P0 = 0x00;
                switch(i)
                {
                        case 0:
                                P0 = smg_du[b/10%10];                          //顯示十分位
                                P2 = 0xfb;
                                break;
                        case 1:
                                P0 = smg_du[b/100%10]+0x80;                //顯示個(gè)位
                                P2 = 0xfd;
                                break;
                        case 2:
                                P0 = smg_du[b/1000];                          //顯示十位
                                P2 = 0xfe;
                                break;
                        case 3:
                                P0 = smg_du[b%10];                          //顯示千分位
                                P2 = 0xf7;
                                break;         
                }
                mDelay(1);
        }
}
void start()
{
        st = 0;
        st = 1;
        st = 0;
        while(!eoc );
        oe = 1;
        P1=0x0f;
        ad_data=P3;
        a=ad_data*1.0/255*5*20;           //P3口輸出值化成電壓
        oe = 0;       
}
void chuli()
{
        if(a<5)
        {        c=1;
                P1=0x3f;
        }
        if(5<=a<20)
        {        c=2;
                P1=0x2f;
        }
        if(20<=a<50)
        {        c=3;
                P1=0x1f;
        }
        if(a<=50<100)
        {        c=4;
                P1=0x0f;
        }
}
void main()
{
        TMOD =0x02;
        TH0 = 65355/256;                       
        TL0 = 65355/256;
        EA = 1;
        ET0 = 1;
        TR0 = 1;
        while(1)
        {
                start();
                chuli();
                cbs();
                smg_display(P3);
        }
}

void timer0() interrupt 1
{
        clk = ~clk;
}



這個(gè)程序出不來(lái)  請(qǐng)問(wèn)哪里錯(cuò)了,謝謝了
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩

相關(guān)帖子

回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表