云题海 - 专业文章范例文档资料分享平台

当前位置:首页 > 毕业设计(论文)-基于MC51单片机的简易计算器设计 - 图文

毕业设计(论文)-基于MC51单片机的简易计算器设计 - 图文

  • 62 次阅读
  • 3 次下载
  • 2025/5/2 20:52:00

附录二:系统程序清单

;主程序 // Header: // File Name: // Author: // Date:

#include #include \#include \

void Header_printf(unsigned char *str) //规避WARNING L15 { }

void Header() { }

void Main() {

26

while(*str!='\\0') { }

BWR_data(*str); str++;

LCD_moveto(0,0);

Header_printf(\LCD_moveto(1,3);

Header_printf(\

LCD_init(); Header();

P2=P2|0x0F; P1=P1&0xC0;

/*开外部中断*/

IT0=1; //下降沿触发 EX0=1; EA = 1;

while(1);

}

void mINT0 (void) interrupt 0 { char i; EA=0;

for(i=5;i>0;i--) { if(INT0==1) break;

}

if(INT0==0) {

Key_press(); } EA=1;

}

;按键处理程序 #include

27

#include \#include \#include \void Key_press() {

char a[16];

//第一次输入数字存在b[16]里,按下中间计算符后,循环a[len]=b[len];

清空b[len]

char b[16]; char key; char i;

//再次输入数字仍存在b[16]里,按下等号后,计算a,b,结果存在b[len];

char arc; //运算符 char len; //数字长度 bit sign; //正负号 bit point; //小数点

key=Key_get(); //数字键处理

if(key==12) key='7'; else if(key==13) key='8'; else if(key==14) key='9'; else if(key==22) key='4'; else if(key==23) key='5'; else if(key==24) key='6'; else if(key==32) key='1'; else if(key==33) key='2'; else if(key==34) key='3'; else if(key==42) key='0';

else if(key==11) key='C'; else if(key==21) key='S'; else if(key==31) key='%';

else if(key==41) key=' '; //空格

28

//清空 //正负号

else if(key==43) key='.'; else if(key==44) key='='; else if(key==45) key='+'; else if(key==25) key='-'; else if(key==15) key='*'; else if(key==16) key='/'; else if(key==26) key='M'; //MRC else if(key==36) key='D'; //M- else if(key==46) key='A'; //M+

else key='E'; //错误

if(len<15) //前15个数字输入有效 {

if(len==0) {

LCD_init();

for(len=15;len>0;len--) { b[len]=' ';

}

b[0]='0';

b[1]='.';

LCD_moveto(1,14); LCD_printf(\

}

if(key>0x2F&&key<0x3A) { if(len==0&&key=='0') { LCD_moveto(1,14); LCD_printf(\ //第一位输入'0'不响应

}

29

  • 收藏
  • 违规举报
  • 版权认领
下载文档10.00 元 加入VIP免费下载
推荐下载
本文作者:...

共分享92篇相关文档

文档简介:

附录二:系统程序清单 ;主程序 // Header: // File Name: // Author: // Date: #include #include \#include \ void Header_printf(unsigned char *str) //规避WARNING L15 { } void Header() { } void Main() { 26 while(*str!='\\0') { } BWR_data(*str); str++; LCD_moveto(0,0); Header_printf(\LCD_moveto

× 游客快捷下载通道(下载后可以自由复制和排版)
单篇付费下载
限时特价:10 元/份 原价:20元
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:fanwen365 QQ:370150219
Copyright © 云题海 All Rights Reserved. 苏ICP备16052595号-3 网站地图 客服QQ:370150219 邮箱:370150219@qq.com