標(biāo)題: 想寫一個(gè)單片機(jī)計(jì)算器,不知道為什么輸入的數(shù)不超過(guò)255 [打印本頁(yè)]

作者: 祥ZD    時(shí)間: 2022-2-8 19:57
標(biāo)題: 想寫一個(gè)單片機(jī)計(jì)算器,不知道為什么輸入的數(shù)不超過(guò)255
#include <REGX51.H>         
unsigned char a[]={0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90};
unsigned char b[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80 } ;
unsigned char d[]={~0x21,~0x12,~0x22,~0x42,~0x14,~0x24,~0x44,~0x18,~0x28,~0x48};
unsigned char e[]={~0x01,~0x02,~0x04,~0x08};
unsigned char c[8];
unsigned int i,j,k,l,n,nm,ny;
unsigned int y1,y2;
unsigned int x=5;
void delay(unsigned int x)
{
        x--;
}

void shuguan(unsigned int m)
{
        j=0;
        if(m!=0)
        {     
            n=m;                                      
                do
                {
                  j++;
                m=m/10;
                }while(m!=0);
                k=1;
                m=n;
                while(k<=j)
                {
                        l=m;
                        m=m/10;
                        c[8-k]=a[l-10*m];
                        k++;
                }
                k=j;
                i=0;
                while((8-k)>0)
                {
                        
                        c[ i]=0xff;
                        i++;
                        k++;
                }

        }
        else
        {
                for(i=0;i<7;i++)
                {        c[ i]=0xff;
                }
                c[7]=a[0];
        }


        for(i=0;i<8;i++)
        {
                P0=0xff;
                P2=b[ i];
                P0=c[ i];
                delay(300);
        }
}
void anj()
{
        for(i=0;i<4;i++)
        {
                P1=e[ i];
                if(P1!=e[ i])
                {
                   y2=i          ;
                        for(nm=0;nm<10;nm++)
                        {
                                if(P1==d[nm])
                                 {
                                         ny=nm;
                                        y1=1;
                                          
                                }
                        }
                }
                if(i==y2)
                {
                        if(P1==e[ i]&&y1==1)
                        {
                                x=x*10+ny;
                                y1=0;
                        }
                }

        }
}
void main()
{
        x=2;
        while(1)
        {
        shuguan(x);
        anj();
        }
}

計(jì)算器.zip

56.66 KB, 下載次數(shù): 4


作者: 祥ZD    時(shí)間: 2022-2-8 19:58

51hei圖片20220208195736.png (136.15 KB, 下載次數(shù): 86)

51hei圖片20220208195736.png

作者: lkc8210    時(shí)間: 2022-2-9 07:44
沒(méi)有注釋,變數(shù)只用簡(jiǎn)單字,誰(shuí)有耐心去看?
作者: 13205495918    時(shí)間: 2022-2-9 09:21
啊,看見(jiàn)255,就要想到無(wú)符號(hào)字符型變量的取值范圍,0~255.
作者: wojiaoguogai    時(shí)間: 2022-2-9 14:00
數(shù)據(jù)溢出




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1