单片机之计算器c程序.ppt

  1. 1、本文档共143页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
单片机之计算器c程序

此计算器的优点: 1.具有6秒的开机画面显示. 2.范围大 例:可以计算35876*51205=? 3.超出范围可以报错. 例:error是英文错误的意思. 4.对于减法运算可以显示负数. 5.具有清0功能 例:按清0键可以清零. 6.做完第一道算术题可以不用清0直接运算第二道算术题. 7.当除数为0时,结果=无穷. 例:44÷0=∞。 8.按键灵敏. 9.工作稳定. 此计算器的缺点: 1. 不能连续运算. 例:不能计算{ 455×31+37 }. 2.不能运算小数。 例:当计算41÷4时,结果=10而余数不能显示. #includereg52.h #define uchar unsigned char #define uint unsigned int sbit rs=P3^7; sbit e=P3^6; uchar kaishi[]=zhang an ning;//13个字符 uchar qq[]=“QQ:635435183;//13个字符 uchar err[]=error; uchar zifu[]= {0,1,2,3,4,5,6,7,8,9, c,+,-,0x78,0xfd,=}; uchar jianzhi; uchar key_h,key_l,key; long a,b,c; uchar flag;//按下键盘的次数 uchar flag1; uchar flag2; void delay (uint m) { uint i,j; for(i=0;im;i++) for(j=0;j121;j++); } void write_dat(int dat) { rs=0; e=0; rs=1; delay(1); e=1; delay(1); P2=dat; delay(1); e=0; rs=0; } void write_com(uchar com) { rs=1; e=0; rs=0; delay(1); e=1; delay(1); P2=com; delay(1); e=0; rs=1; } void init_1602(void) { delay(50); write_com(0x3c); write_com(0x3c); write_com(0x3c); write_com(0x0c); write_com(0x01); delay(3); write_com(0x0c); write_com(0x06); } void clear(void) { flag=0; flag1=0; flag2=0; a=0; b=0; c=0; write_com(0x01); delay(3); write_com(0xc0); write_dat(zifu[0]); } void error(void) { uchar f; write_com(0x85); for(f=0;f5;f++) { write_dat(err[f]); } } void star(void) { uchar f; write_com(0x81); for(f=0;f13;f++) { write_dat(kaishi[f]); } write_com(0xc1); for(f=0;f13;f++) { write_dat(qq[f]); } } uchar anjian(void) { P1=0xf0; key_l=P1; if(key_l!=0xf0) { delay(5); P1=0xf0; key_l=P1; if(key_l!=0xf0) { key_l=P1; key_l=key_l|0x0f; P1=key_l; key_h=P1; key_l=key_l0xf0; key_h=key_h0x0f; key=key_l+key_h; flag++; delay(400); if(flag==1) { clear(); flag=1; } } } switch(key) { case 0xee: //7 key=0xff; return 7; break; case 0xde://8 key=0xff; return 8; break; case 0xbe://9 key=0xff; return 9; break; case 0

您可能关注的文档

文档评论(0)

shenlan118 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档