C51单片机和12864液晶显示制作十位简易计算器C源码.doc_第1页
C51单片机和12864液晶显示制作十位简易计算器C源码.doc_第2页
C51单片机和12864液晶显示制作十位简易计算器C源码.doc_第3页
C51单片机和12864液晶显示制作十位简易计算器C源码.doc_第4页
C51单片机和12864液晶显示制作十位简易计算器C源码.doc_第5页
免费预览已结束,剩余5页可下载查看

下载本文档

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

文档简介

#include #include#include#includesbit RS=P20;sbit RW=P21;sbit E=P22;sbit BUZZER=P10;#define unchar unsigned char #define unint unsigned intvoid delay(unsigned int t)unsigned int i,j;for(i = 0;i t;i +)for(j = 0;j 0)write_date(*s);s+; void clearscreen() /清屏write_com(0x01);void tishi()clearscreen();display(1,0,超出计算范围);display(2,0,请按复位键);display(3,0,并重新输入);display(4,0,否则会出现错误);void displayshu(unchar n,unchar m, long rzt)/显示字符串 unchar i,j,k,x,p; unchart10=0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff;unsigned char array10;array9=(int)rzt%10;array8=(int)rzt/10)%10;array7=(int)rzt/100)%10;array6=(int)rzt/1000)%10;array5=(int)rzt/10000)%10;array4=(int)rzt/100000)%10;array3=(int)rzt/1000000)%10;array2=(int)rzt/10000000)%10;array1=(int)rzt/100000000)%10;array0=(int)rzt/1000000000; sendaddr(n,m);for(i=0;i10;i+)if(arrayi=0)p=i;elsebreak;for(j=p+1;j10;j+)tk=arrayj ;k+;while(tx!=0xff)write_date(tx+0x30);x+; void main(void)unchar i,j,opt,p;long b,c,rzt;start:init();delay(20);i=0;j=0;rzt=0;b=0;c=0;write_com(0x80);while(1) /输入第一个数 P3=0xfe;if(P3!=0xfe)delay(40); if(P3!=0xfe)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;write_date(0+0x30);b=b*10+0;i+;if(i=11)tishi(); break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;write_date(1+0x30);b=b*10+1;i+;if(i=11)tishi(); break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;write_date(2+0x30);b=b*10+2;i+;if(i=11)tishi(); break; case 0xe0:BUZZER=0;delay(80);BUZZER=1;write_date(3+0x30);b=b*10+3;i+;if(i=11)tishi(); break;if(P3!=0xfe);delay(30);while(P3!=0xfe);P3=0xfd;if(P3!=0xfd)delay(40); if(P3!=0xfd)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;write_date(4+0x30);b=b*10+4;i+;if(i=11)tishi(); break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;write_date(5+0x30);b=b*10+5;i+;if(i=11)tishi(); break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;write_date(6+0x30);b=b*10+6;i+;if(i=11)tishi(); break; case 0xe0:BUZZER=0;delay(80);BUZZER=1;write_date(7+0x30);b=b*10+7;i+;if(i=11)tishi(); break;if(P3!=0xfd);delay(30);while(P3!=0xfd);P3=0xfb;if(P3!=0xfb)delay(40); if(P3!=0xfb)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;write_date(8+0x30);b=b*10+8;i+;if(i=11) tishi(); break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;write_date(9+0x30);b=b*10+9;i+;if(i=11) tishi(); break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;p=1;write_com(0x97);write_date(0x2b);opt=10; goto two; break; case 0xe0:BUZZER=0;delay(80);BUZZER=1;p=1;write_com(0x97);write_date(0x2d);opt=11; goto two; break;if(P3!=0xfb);delay(30);while(P3!=0xfb);P3=0xf7;if(P3!=0xf7)delay(40); if(P3!=0xf7)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;p=1;write_com(0x97);write_date(0x2a);opt=12; goto two; break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;p=1;write_com(0x97);write_date(0x2f);opt=13; goto two; break;case 0xd0:BUZZER=0;delay(80);BUZZER=1; clearscreen();goto start;break; case 0xe0:BUZZER=0;delay(80);BUZZER=1; clearscreen();goto start;break;if(P3!=0xf7);delay(30);while(P3!=0xf7); two: write_com(0x88); while(1) /输入第二个数 P3=0xfe;if(P3!=0xfe)delay(40); if(P3!=0xfe)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;write_date(0+0x30);c=c*10+0;j+;if(j=11)tishi(); break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;write_date(1+0x30);c=c*10+1;j+;if(j=11)tishi(); break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;write_date(2+0x30);c=c*10+2;j+;if(j=11)tishi(); break; case 0xe0:BUZZER=0;delay(80);BUZZER=1;write_date(3+0x30);c=c*10+3;j+;if(j=11)tishi(); break;if(P3!=0xfe);delay(30);while(P3!=0xfe);P3=0xfd;if(P3!=0xfd)delay(40); if(P3!=0xfd)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;write_date(4+0x30);c=c*10+4;j+;if(j=11)tishi();break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;write_date(5+0x30);c=c*10+5;j+;if(j=11)tishi();break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;write_date(6+0x30);c=c*10+6;j+;if(j=11)tishi();break; case 0xe0:BUZZER=0;delay(80);BUZZER=1;write_date(7+0x30);c=c*10+7;j+;if(j=11)tishi();break;if(P3!=0xfd);delay(30);while(P3!=0xfd);P3=0xfb;if(P3!=0xfb)delay(40); if(P3!=0xfb)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;write_date(8+0x30);c=c*10+8;j+;if(j=11)tishi();break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;write_date(9+0x30);c=c*10+9;j+;if(j=11)tishi();break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;if(p=0) write_com(0x97); write_date(0x2b);break; case 0xe0:BUZZER=0;delay(80);BUZZER=1;if(p=0) write_com(0x97); write_date(0x2d); break;if(P3!=0xfb);delay(30);while(P3!=0xfb);P3=0xf7;if(P3!=0xf7)delay(40); if(P3!=0xf7)switch(P3&0xf0)case 0x70:BUZZER=0;delay(80);BUZZER=1;if(p=0) write_com(0x97); write_date(0x2a); break; case 0xb0:BUZZER=0;delay(80);BUZZER=1;if(p=0) write_com(0x97); write_date(0x2f); break;case 0xd0:BUZZER=0;delay(80);BUZZER=1;goto answer;break; case 0xe0:BUZZER=0;delay(80);BUZZER=1; clearscreen();goto start;break;if(P3!=0xf7);delay(30);while(P3!=0xf7);answer:write_com(0x98);write_date(0x3d);if(c=0&opt=13) /错误处理display(2,0,分母不能为零);clearscreen();goto start;switch(opt)cas

温馨提示

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

最新文档

评论

0/150

提交评论