找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

想寫一個(gè)單片機(jī)計(jì)算器,不知道為什么輸入的數(shù)不超過255

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:1004248 發(fā)表于 2022-2-8 19:57 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
#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

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1004248 發(fā)表于 2022-2-8 19:58 | 只看該作者

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

51hei圖片20220208195736.png
回復(fù)

使用道具 舉報(bào)

板凳
ID:161164 發(fā)表于 2022-2-9 07:44 來自觸屏版 | 只看該作者
沒有注釋,變數(shù)只用簡單字,誰有耐心去看?
回復(fù)

使用道具 舉報(bào)

地板
ID:908826 發(fā)表于 2022-2-9 09:21 | 只看該作者
啊,看見255,就要想到無符號字符型變量的取值范圍,0~255.
回復(fù)

使用道具 舉報(bào)

5#
ID:415064 發(fā)表于 2022-2-9 14:00 | 只看該作者
數(shù)據(jù)溢出
回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

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

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

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