新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機做的8位計算器

        單片機做的8位計算器

        作者: 時間:2016-12-01 來源:網絡 收藏

        return date;
        }
        void display(longint num)
        {
        char i;
        LA[7]=num%100000000/10000000;
        LA[6]=num%10000000/1000000;
        LA[5]=num%1000000/100000;
        LA[4]=num%100000/10000;
        LA[3]=num%10000/1000;
        LA[2]=num%1000/100;
        LA[1]=num%100/10;
        LA[0]=num%10;
        if(num==0)
        {
        wela=1;
        P0=wetable[0];
        wela=0;
        dula=1;
        P0=dutable[0];
        dula=0;
        P0=0xff;
        delay(2);
        }
        else
        {
        for(i=7;i>=0;i--)
        {
        if(LA[i]!=0)
        {
        p=i;
        break;
        }
        }
        for(i=0;i<=p;i++)
        {
        wela=1;
        P0=wetable[i];
        wela=0;

        dula=1;
        P0=dutable[LA[i]];
        dula=0;
        P0=0xff;//消影
        delay(2);
        }
        }
        }
        void calc(uchar date)
        {
        if(flag==1)
        {
        if(count==0)//得到的第一個完整數字
        {
        num1=num1*10+date;
        flag=0;
        num=num1;
        }
        if(count==1)//得到的第二個完整數字
        {
        num2=num2*10+date;
        flag=0;
        num=num2;
        }
        }
        if(count>1&&mark==1)
        {
        num1=num;
        flag=0;
        count=1;//講num2置為第二個數
        }
        display(num);
        if(flag==2)//如果得到符號位
        {
        count++;
        flag=0;
        }
        if(flag==3)
        {
        switch(ch)
        {
        case +:num=num1+num2;
        break;
        case -:num=num1-num2;
        break;
        case *:num=num1*num2;
        break;
        case /:num=num1/num2;
        break;
        }
        num1=0;
        num2=0;
        flag=0;
        mark=1;//here is a bug
        }
        display(num);
        if(flag==4)
        {
        num1=0;
        num2=0;
        num=0;
        count=0;
        flag=0;
        mark=0;
        }
        }
        void main()
        {
        init();
        while(1)
        {
        calc(keyscan());
        }
        }

        本文引用地址:http://www.104case.com/article/201612/324178.htm

        上一頁 1 2 3 下一頁

        關鍵詞: 單片機8位計算

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 永福县| 新乡县| 堆龙德庆县| 芜湖市| 平罗县| 德惠市| 贺州市| 张家口市| 江油市| 手机| 壤塘县| 竹北市| 全椒县| 兴山县| 长岛县| 平南县| 西华县| 卓尼县| 和田县| 田东县| 彭州市| 黄山市| 乾安县| 永宁县| 乌鲁木齐县| 余姚市| 巴里| 中江县| 墨脱县| 乌兰察布市| 嘉黎县| 绍兴市| 遂川县| 准格尔旗| 广平县| 谷城县| 巴林左旗| 枣阳市| 格尔木市| 涞水县| 晋江市|