资源预览内容
第1页 / 共5页
第2页 / 共5页
第3页 / 共5页
第4页 / 共5页
第5页 / 共5页
亲,该文档总共5页全部预览完了,如果喜欢就下载吧!
资源描述
51 单片机程序设计作业-计算器 广西机电 微电-梁 (2013.5.21)以下程序是本人为课堂作业所写,基本完整作业要求,当然也存在好些问题,如 long 与 float 数据转换时出现了问题,时数值不得超过 7 位数。在所写显示函数中会出现如下错误:float a=999999999;long b;b=a;但 b 不等于 99999999。其中的缘由我也没弄懂,作为一个单片机技术入门级学生将此程序上传,希望能交到爱好电子技术的朋友,互相学习。 (qq:1571447734) (图画的有些差了,P0 脚用在显示某数字,P2 脚控制某位,P3 脚控制识别按键)#include #includesbit dian=P07; /标记小数点void delay(unsigned int j ) /基本延时单位 1msunsigned int e,f;for(e=0;e30) break; /避免进入死循环 b=k; while(b=(b/10) j+; /判断输入数的个数if(k%10=0&c0) k=k/10; / 避免输入如 1 变为 10if( (geshu0&geshu-1) j=c; / 判断特殊数如:0.01 或-0.01if(j6) /保留 7 位有效数字c=c-(j-6); for(;j!=6;j-)k=k/10; for(i=0;i0;xiaoshu2-)s=s/10;k=k+s; xianshi=k; shu=k;if( (zhongshu!=0)&(fuhao=0) ) /执行一次后非符号操作时执行新一次运算zhongshu=k; if(y=11&y=14) /运算符号if(zhongshu=0) zhongshu=k;fuhao=y;k=0;s=0;dian=0;xianshi=0;xiaoshu1=0; if(y=15) /等于 if(k=0) xianshi=0;zhongshu=0; /连续=时复位k=0;s=0;dian=0;xiaoshu1=0; switch(fuhao)case 11: zhongshu=(zhongshu+shu); break; /加法case 12: zhongshu=(zhongshu-shu); break; /减法case 13: zhongshu=(zhongshu*shu); break; /乘法case 14: zhongshu=(zhongshu/shu); break; /除法default:break; xianshi=zhongshu;fuhao=0;y=100; /防止 y 再次调用,应赋值超过 15xianshii(xianshi); /显示
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号