久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 1162|回復: 0
打印 上一主題 下一主題
收起左側

都是

[復制鏈接]
跳轉到指定樓層
樓主
ID:275853 發表于 2018-1-14 15:21 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg52.h>
#include <intrins.h>//循環左右移要用該頭文件(-cror-(),-crol-())
#define uchar unsigned char
#define ulong unsigned long
uchararray[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};
uchararray1[8]={0x10,0x10,0x10,0x10,0x10,0x10,0x10,0x10};
uchar a;
ulong num1=0,num2=0;
sbit P10=P1^0;
sbit P11=P1^1;
sbit P12=P1^2;
sbit P13=P1^3;
sbit F1=PSW^1;//定義一個標志位,F0在頭文件里已定義
void displayljy(void);//聲明"顯示"子函數
void inkeylove(void);//聲明"判斷按下的是什么鍵"子函數
void iskeyyou(void);//聲明"判斷是否有鍵按下"子函數
void bian1(void);//聲明"將uchar型變量轉化為ulong型變量"子函數
void bian2(void);//聲明"將ulong型變量轉化為uchar型變量"子函數
void jia(void);//聲明"加運算"子函數
void jian(void);//聲明"減運算"子函數
void cheng(void);//聲明"乘運算"子函數
void chu(void);//聲明"除運算"子函數
void error(void);//聲明"出錯顯示"子函數
void main()
{uchar r7=0x00,i;
while(1)
{displayljy();
inkeylove();
if(a!=0xff)//如果有鍵輸入,繼續往下執行,否則從新開始
{if(a==0x0f) //如果輸入的是"清除"鍵,將顯示器清屏,同時清存放運算符號的單元
{r7=0x00;
for(i=0;i<8;i++)
{array=0x10;
  array1=0x10;
  }
}
else if(a==0x0e)//如果輸入的是"=",繼續往下執行,否則從新開始
{if(r7==0x0d)//如果r7中存放的是"+",則執行加運算
  {bian1();
    jia();
    bian2();
    }
  else if(r7==0x0c)//如果r7中存放的是"-",則執行減運算
  {bian1();
    jian();
    }
    elseif(r7==0x0b)//如果r7中存放的是"*",則執行乘運算
  {bian1();
    cheng();
    bian2();
    }
    elseif(r7==0x0a)//如果r7中存放的是"÷",則執行除運算
  {bian1();
    chu();
    }
    else
      error();//如果r7沒有存進運算符,則轉出錯處理
    }
else
{if(r7!=0x00)//如果已按過運算鍵,往下執行,否則轉else
  {if(a>0x09&&a<0x0e)//如果還按下運算鍵,則后按的取代前面按的
      r7=a;
    elseif(array1[0]==0x10)//判斷是不是輸入加數(減數...)的第一個數
    {for(i=0;i<8;i++)//是的話,將被加數(被減數...)存入array1中
      array1=array;
     for(i=0;i<8;i++)
      array=0x10;
      for(i=7;i>0;i--)//array中存入加數(減數...)
       array=array[i-1];
     array[0]=a;
     }
    else            //不是輸入加數(減數...)的第一個數
     {if(array[7]!=0x10)//如果加數(減數...)已是八位整數,則轉出錯處理
        error();
      else
      {for(i=7;i>0;i--)//否則將加數左移
          array=array[i-1];
       array[0]=a;
     }
     }
  }
else//之前還沒有運算鍵按下
  {if(a>0x09)//有運算鍵按下
  {if(array[0]==0x10)//但是在運算鍵按下之前沒有輸入被加數,則轉出錯
      error();
    else
     r7=a;//否則將運算鍵輸入r7中保存
  }
  else if(array[7]!=0x10)//如果被加數已是八位整數,則轉出錯
     error();
  else                 //否則將被加數左移
  {for(i=7;i>0;i--)
      array=array[i-1];
    array[0]=a;
    }
    }
     }
     }
     }
     }
void bian1(void)//"將uchar型變量轉化為ulong型變量"子函數
{uchar i;
for(i=7;i>0;i--)
{if(array==0x10)
    array=0x00;
if(array1==0x10)
    array1=0x00;
}
num1=(ulong)array1[7]*10000000;
num1+=(ulong)array1[6]*1000000;
num1+=(ulong)array1[5]*100000;
num1+=(ulong)array1[4]*10000;
num1+=(ulong)array1[3]*1000;
num1+=(ulong)array1[2]*100;
num1+=(ulong)array1[1]*10;
num1+=(ulong)array1[0];
num2=(ulong)array[7]*10000000;
num2+=(ulong)array[6]*1000000;
num2+=(ulong)array[5]*100000;
num2+=(ulong)array[4]*10000;
num2+=(ulong)array[3]*1000;
num2+=(ulong)array[2]*100;
num2+=(ulong)array[1]*10;
num2+=(ulong)array[0];
}
void bian2(void)//聲明"將ulong型變量轉化為uchar型變量"子函數
{uchar i=7,F0=1;
if(num1>99999999)
  error();
else
{array[7]=(uchar)(num1/10000000);
array[6]=(uchar)(num1%10000000/1000000);
array[5]=(uchar)(num1%1000000/100000);
array[4]=(uchar)(num1%100000/10000);
array[3]=(uchar)(num1%10000/1000);
array[2]=(uchar)(num1%1000/100);
array[1]=(uchar)(num1%100/10);
array[0]=(uchar)(num1%10);
while(i>0&&F0)
{if(array==0x00)
     {array=0x10;
      i--;
      }
  else
     F0=0;  
  }
}
}
void jia(void)//"加運算"子函數
{num1+=num2;
}
void jian(void)//"減運算"子函數
{uchar i;
if(num1>num2)
{num1-=num2;
bian2();
}
else if(num1==num2)
{for(i=1;i<8;i++)
     array=0x10;
    array[0]=0x00;
    }
  else
  {num1=num2-num1;
    bian2();
    if(array[7]!=0x10)
      error();
    else
    array[7]=0x11;
    }
}
void cheng(void)////聲明"乘運算"子函數
{num1*=num2;
}
void chu(void)//"除運算"子函數
{uchar i,j=0x00,k;
double num3;
num3=(double)(num1)/(double)(num2);
num1=(ulong)(num3);
num3-=num1;
if(num3==0||num1>9999999)
    bian2();
else
  {bian2();
    while(array[7]==0x10)
    {j++;
     for(i=7;i>0;i--)
        array=array[i-1];
     array[0]=0x10;
     }
     array[j]+=0x12;
     k=j-1;
     while(k>0)
     {num3*=10;
      num2=(ulong)(num3);
      num3-=num2;
      array[k]=(uchar)(num2);
      k--;
      }
      array[0]=(uchar)(num3*10);
      while(array[0]==0x00)
      {for(i=0;i<7;i++)
          array=array[i+1];
        array[7]=0x10;
       }
      }
}
void error(void)//"出錯顯示"子函數(出錯顯示"Chu cuo.")
{array[7]=0x0c;
array[6]=0x1d;
array[5]=0x1f;
array[4]=0x10;
array[3]=0x10;
array[2]=0x1c;
array[1]=0x1f;
array[0]=0x1e;
}
void displayljy(void)//"顯示"子函數
{uchararray3[32]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
                   0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,
                  0x79,0x71,0x00,0x40,0xbf,0x86,0xdb,
                  0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,
                  0x58,0x74,0xdc,0x1c};
uchar *p=array,count=0x80,i,time;
F0=1;
while(F0)
{i=*(p+7);
P2=count;
P0=array3;
for(time=0xff;time>0x00;time--);
p--;
count=_cror_(count,1);
if(count==0x80)
    F0=0;
}
}
void iskeyyou(void)//"判斷是否有鍵按下"子函數
{P2=0x00;
P1|=0x0f;
a=P1;
a|=0xf0;
}
void inkeylove(void)//"判斷按下的是什么鍵"子函數
{uchar b=0xfe,c=0x00,d;
uchar array4[16]={0x07,0x08,0x04,0x05,0x01,0x02,0x0f,0x00,
                   0x09,0x0a,0x06,0x0b,0x03,0x0c,0x0e,0x0d};
F1=0;
iskeyyou();
if(a!=0xff)
{displayljy();
  displayljy();
  iskeyyou();
  if(a!=0xff)
  {F0=1;
    while(F0)
    {P2=b;
     P1|=0x0f;
     if(P10==0)
       {a=0x00;
        F1=1;
        }
     else if(P11==0)
       {a=0x02;
        F1=1;
        }
     else if(P12==0)
       {a=0x04;
        F1=1;
        }
     else if(P13==0)
       {a=0x06;
        F1=1;
        }
     else
     {a=c;
      a%=4;
      if(a==0x01)
      {a=0x07;
       c+=a;
       }
       else
       c++;
       b=_crol_(b,1);
       if(b&0x10==0)
         {F0=0;
         a=0xff;
          }
      }
      while(F1)
      {a+=c;
       a=array4[a];
       d=a;
       while(a!=0xff)
       {displayljy();
        iskeyyou();
        }
        a=d;
        F1=0;
        F0=0;
        }
        }
        }
        }
        }

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精品乱码久久久久久按摩观 | 黄色成人av | 中文二区 | 国产精品国产精品国产专区不片 | 91在线中文字幕 | www.久久99 | 精品二区视频 | 精品久久久久久亚洲精品 | 精品久久99| 一级看片免费视频囗交动图 | 国产一区二区电影网 | 亚洲国产高清高潮精品美女 | 日韩免费视频一区二区 | 久久国产婷婷国产香蕉 | 日韩在线中文字幕 | 久久日韩精品一区二区三区 | 久久伊人影院 | 免费成人高清 | 欧美自拍视频 | 亚洲一区二区三区免费在线观看 | 日韩手机在线视频 | 91精品国产色综合久久不卡98口 | 交专区videossex农村 | 国产成人99久久亚洲综合精品 | 国产二区视频 | 欧美激情精品久久久久久变态 | 中文字幕在线看第二 | 97精品久久 | 欧美a在线| 亚洲第一视频 | 婷婷色国产偷v国产偷v小说 | 免费观看黄色片视频 | 夜夜精品浪潮av一区二区三区 | 日韩亚洲一区二区 | 亚洲精久久| 欧美日韩精品久久久免费观看 | 欧美在线 | 国产精品三级 | 久久国产视频播放 | 色偷偷888欧美精品久久久 | av网站免费看 |