在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > 簡(jiǎn)單的加法計(jì)算器單片機(jī)c程序設(shè)計(jì)

            簡(jiǎn)單的加法計(jì)算器單片機(jī)c程序設(shè)計(jì)

            作者: 時(shí)間:2016-11-18 來(lái)源:網(wǎng)絡(luò) 收藏
            /*

            //----------簡(jiǎn)單的加法計(jì)算器-----------------
            //------用數(shù)碼管顯示兩位數(shù)的加法計(jì)算器;----------
            //P0作為數(shù)碼管的段碼
            //P1作為數(shù)碼管的位碼
            //P2口作為矩陣鍵盤(pán)0----9,+,=;//本實(shí)訓(xùn)箱只有12個(gè)按鍵,P20---P26;P27未用;
            先輸入第一個(gè)數(shù),當(dāng)按+時(shí),清屏,再顯示輸入的第二個(gè)數(shù),
            按=時(shí),顯示他們的和,再次按=數(shù)據(jù)清0;
            //本程序在普中單片機(jī)實(shí)訓(xùn)箱上通過(guò)

            本文引用地址:http://www.biyoush.com/article/201611/315574.htm

            */
            #include"reg51.h"
            #include
            #define uint unsigned int
            #define uchar unsigned char

            uchar code dula[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,
            0x7d,0x07,0x7f,0x6f,0x00};
            uchar wula[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};
            uchar table[8]={0,0,10,10,10,10,10,10};
            uchar add1[2]={0,10};
            uchar add2[2]={0,10};
            uchar sum[3]={0,10,10};
            uchar sum1,aa,bb,cc;
            bit flagsum,flagadd,flag;
            uchar x,y,z,k,keyword;
            void dispadd1();
            void dispadd2();
            void dispsum();
            void delay(uint z);
            void display();
            void jisuan();
            void keyscan();
            void main()
            {
            keyword=0;
            k=0;
            while(1)
            {
            keyscan();
            if((flagadd==0)&&(flagsum==0))
            dispadd1();
            if((flagadd==1)&&(flagsum==0))
            dispadd2();
            if((flagsum==1))
            dispsum();

            }
            }

            void keyscan()
            {
            uchar temp1,temp2;
            P2=0xf0;
            if(P2!=0xf0)
            {
            delay(100);
            P2=0xf0;
            if(P2!=0xf0)
            {
            temp1=P2;
            P2=0x0f;
            temp2=P2;
            while(P2!=0x0f);
            keyword=temp1|temp2;
            switch(keyword)
            {
            case 0xed: keyword=0;flag=0;break;
            case 0xdd: keyword=1;flag=0;break;
            case 0xbd: keyword=2;flag=0;break;
            case 0x7d: keyword=3;flag=0;break;
            case 0xeb: keyword=4;flag=0;break;
            case 0xdb: keyword=5;flag=0;break;
            case 0xbb: keyword=6;flag=0;break;
            case 0x7b: keyword=7;flag=0;break;
            case 0xe7: keyword=8;flag=0;break;
            case 0xd7: keyword=9;flag=0;break;
            case 0xb7: {flagadd=1;
            flag=1;}break;
            case 0x77: {flagsum=~flagsum;cc++;}break;
            default: break;
            }
            if((flagadd==0)&&(flagsum==0))
            {
            add1[k]=keyword;
            if(k>1)
            k=1;//}
            else
            k++;}
            if((flagadd==1)&&(flagsum==0))
            {if(flag==1)
            {k=0;flag=0;}
            else
            { add2[k]=keyword;
            if(k>1)
            k=1;
            else
            k++;}}
            if(flagsum==1)
            {flagadd=0;flag=0;k=0;
            if(cc==2)
            {cc=0;add1[0]=0;add1[1]=10;
            add2[0]=0;add2[1]=10;
            sum[0]=0;sum[1]=10;sum[2]=10;}
            if(add1[1]!=10)
            aa=add1[0]*10+add1[1];
            else
            aa=add1[0];
            //
            if(add2[1]!=10)
            bb=add2[0]*10+add2[1];
            else
            bb=add2[0];
            sum1=aa+bb;
            sum[0]=sum1/100;
            sum[1]=sum1%100/10;
            sum[2]=sum1%10;

            }
            if(flagsum==0)
            {if(cc==2)
            {cc=0;flagadd=0;flag=0;k=0;
            add1[0]=0;add1[1]=10;
            add2[0]=0;add2[1]=10;
            sum[0]=0;sum[1]=10;sum[2]=10;}
            }

            }
            }
            }

            void dispadd1()
            { uchar i;
            for(i=0;i<2;i++)
            { P0=dula[add1[i]] ;
            P1=wula[i];
            delay(5);
            // P0=0;
            }
            }
            //-----------------
            void dispadd2()
            { uchar i;
            for(i=0;i<2;i++)
            { P0=dula[add2[i]] ;
            P1=wula[i];
            delay(5);
            P0=0;
            }
            }
            //-------------------
            void dispsum()
            { uchar i;
            for(i=0;i<3;i++)
            { P0=dula[sum[i]] ;
            P1=wula[i];
            delay(5);
            P0=0;
            }
            }
            //=====================
            void delay(uint z)
            {
            uint x,y;
            for(x=0;x for(y=0;y<112;y++);
            }



            關(guān)鍵詞: 加法計(jì)算器單片

            評(píng)論


            技術(shù)專(zhuān)區(qū)

            關(guān)閉