计算器程序加注解_第1页
计算器程序加注解_第2页
计算器程序加注解_第3页
计算器程序加注解_第4页
计算器程序加注解_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

<reg52.h><intrins.h>//环左右移要用该头文件((-crol-()ulongunsignedlongulongnum1=0,num2=0;P10=P1^0;P11=P1^1;P12=P1^2;P13=P1^3;F1=PSW^1;//定义一个标志位F0在文件里已定义void声明"示"函数void声明"断按下的是什么键"子函数voidiskeyyou(void);//声明"断是否有键按"函数voidbian1(void);//声明"将uchar型量转化为变量"子函数voidbian2(void);//声明"将ulong型量转化为型量"子函数voidjia(void);//声"加运算"子函数void声"减运算"函数voidcheng(void);//声"乘运算子函数voidchu(void);//声明"运"函数voiderror(void);//明"出错显示"子数void{uchar{displayljy();inkeylove();if(a!=0xff)//如果有键输入,续往下执行,否则从新开始{if(a==0x0f)//果输入的"清除键,将显示器清屏,同时清存放运算符号的单元for(i=0;i<8;i++){array[i]=0x10;array1[i]=0x10;}}如输入的是"="继续往下执行,否则从新开始如果未按下第二个数之前就按下=出错显示error();如果r7中放的",执行加运算jia();bian2();r7=0x00;

for(i=0;i<8;i++)array1[i]=0x10;}if(r7==0x0c)//如中存放",则执行减运算jian();r7=0x00;for(i=0;i<8;i++)array1[i]=0x10;}if(r7==0x0b)//果中放的是"*"则执行乘运算bian2();r7=0x00;for(i=0;i<8;i++)array1[i]=0x10;}如中放的是""则执行除运算chu();r7=0x00;for(i=0;i<8;i++)array1[i]=0x10;}error();//如果r7没存进运算符,则转出错处理}{if(r7!=0x00)//果已按过运算键,往下执行,否则转{if(a>0x09&&a<0x0e)//如果还按下运算键,则后按的取代前面按的if(array1[0]==0x10)//断是不是输入加数(减.)的第一个数{for(i=0;i<8;i++)//是话,将被加数(被减)存入array1中array1[i]=array[i];for(i=0;i<8;i++)array[i]=0x10;for(i=7;i>0;i--)//array中入加数(减...)array[i]=array[i-1];array[0]=a;}//不是输入加数(减数...)的第一个数{if(array[7]!=0x10)//如加(减.)是八位整数,则转出处理error();

否将加数左移array[i]=array[i-1];array[0]=a;}}}else//之前还没运算键按下{if(a>0x09)//有算键按下{if(array[0]==0x10)//但是在运算键按下之前没有输入被加数,则转出错error();r7=a;//否则将运算键输入r7中存}if(array[7]!=0x10)//如被加数已是位整数,则转出错error();//则将被加数左移array[i]=array[i-1];array[0]=a;}}}}}}voidbian1(void)//"型变量转化为ulong型量子函数{uchari;for(i=7;i>0;i--){if(array[i]==0x10)array[i]=0x00;if(array1[i]==0x10)array1[i]=0x00;}num1+=(ulong)array1[3]*1000;num1+=(ulong)array1[2]*100;num1+=(ulong)array1[1]*10;num2=(ulong)array[7]*10000000;

num2+=(ulong)array[4]*10000;num2+=(ulong)array[3]*1000;num2+=(ulong)array[2]*100;num2+=(ulong)array[1]*10;num2+=(ulong)array[0];}voidbian2(void)//声"ulong型量转化为uchar型变量"子函数{uchari=7,F0=1;error();array[5]=(uchar)(num1%1000000/100000);array[3]=(uchar)(num1%10000/1000);array[1]=(uchar)(num1%100/10);array[0]=(uchar)(num1%10);while(i>0&&F0){if(array[i]==0x00){array[i]=0x10;}F0=0;}}}voidjia(void)//"加算"子函数}void减算"子数{uchari;{num1-=num2;bian2();}if(num1==num2){for(i=1;i<8;i++)array[i]=0x10;array[0]=0x00;}

bian2();if(array[7]!=0x10)error();array[7]=0x11;}}void声"运算"子函数}void除算"子函数{ucharnum3;num3=(double)(num1)/(double)(num2);num1=(ulong)(num3);num3-=num1;if(num3==0||num1>9999999)bian2();{j++;for(i=7;i>0;i--)array[i]=array[i-1];array[0]=0x10;}array[j]+=0x12;while(k>0)num2=(ulong)(num3);num3-=num2;array[k]=(uchar)(num2);k--;}num3*=10;num2=(ulong)(num3);{for(i=0;i<7;i++)array[i]=array[i+1];array[7]=0x10;

}}}voiderror(void)//"出错显示"函数(出错显"YOU."){array[7]=0x1c;array[6]=0x00;array[5]=0x1d;array[3]=0x10;array[1]=0x00;}void显"子函数{uchararray3[32]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x79,0x71,0x00,0x40,0xbf,0x86,0xdb,0xcf,0xe6,0xed,0xfd,0x87,0xff,0xef,*p=array,count=0x80,i,time;F0=1;while(F0)p--;count=_cror_(count,1);if(count==0x80)F0=0;}}void判是否有键按下"子函数P1|=0x0f;a=P1;}void判按下的是什么键"子数{uchararray4[16]={0x07,0x08,0x04,0x05,0x01,0x02,0x0f,0x00,F1=0;

if(a!=0xff){displayljy();displayljy();if(a!=0xff){F0=1;while(F0){P2=b;P1|=0x0f;{a=0x00;F1=1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论