51单片机计算器(6)

2019-04-22 22:34

湖北师范学院物理与电子科学学院13级单片机课程设计

{ 万万

if(data_c<100000000&&data_c>-1)//溢出时显示错误 {

dispaly[8]=data_c00000000/100000000; //万万 dispaly[7]=data_c0000000/10000000; //千万 dispaly[6]=data_c000000/1000000; dispaly[5]=data_c00000/100000; dispaly[4]=data_c0000/10000; dispaly[3]=data_c000/1000; dispaly[2]=data_c00/100; dispaly[1]=data_c0/10; dispaly[0]=data_c; write_com(0x80+6+0x40); //第一行 if(x==4) {

if(data_c>99999999) { write_date('0'+dispaly[8]);} //显示

//百万

//十万

//万

//千 //百 //十 //个

if(data_c>9999999) { write_date('0'+dispaly[7]);} //千万

if(data_c>999999) { write_date('0'+dispaly[6]);} //百万 if(data_c>99999) { write_date('0'+dispaly[5]);} //十万 }

23

write_date('0'+dispaly[4]); //万 write_date('.');

write_date('0'+dispaly[3]); //千 write_date('0'+dispaly[2]); //百 write_date('0'+dispaly[1]); //十 write_date('0'+dispaly[0]); //个

湖北师范学院物理与电子科学学院13级单片机课程设计

万万

}

void eql(uchar x)//加减乘除运算 {

else{

if(data_c>99999999) { write_date('0'+dispaly[8]);} //显示

}

if(data_c>9999999) { write_date('0'+dispaly[7]);} //千万

if(data_c>999999) { write_date('0'+dispaly[6]);} //百万 if(data_c>99999) { write_date('0'+dispaly[5]);} //十万 if(data_c>9999) if(data_c>999) if(data_c>99) if(data_c>9) }

{ write_date('0'+dispaly[4]);} //万 { write_date('0'+dispaly[3]);} //千

{ write_date('0'+dispaly[2]);} //百 { write_date('0'+dispaly[1]);} //十

write_date('0'+dispaly[0]); //个

else //溢出时显示错误 { }

write_com(0x80+11+0x40); //第一行 write_date('E'); //显示 E write_date('r'); //显示R write_date('r'); write_date('o'); write_date('r');

//显示R //显示O //显示E

switch(x)

{

/*功能键选择*/

case 1:data_c=data_a+data_b;break;

24

//加 /* +

湖北师范学院物理与电子科学学院13级单片机课程设计

S=1 */ /* 数值转换函数 */

*///减

else{data_c=data_b-data_a;W_lcd(5,1,'-');} //负数符号

case

break;

/* * S=3 *///

case 2:if(data_a>=data_b){data_c=data_a-data_b;} /* - S=2

case 3:data_c=(data_a*data_b);break;

4:if(data_b==0){LCD_Write_String(0,1,\)/data_b;}break;

}

void main() {

uchar key=0xff; //键值初始化 uchar n=0; uchar m=5; uchar x=0;

data_a=0; //前一个数 data_b=0; //后一个数 data_c=0; //结果 init_lcd(); display_a();

//1602液晶初始化

//第1个数可以按1-4次 //第2个数可以按1-4次

/* / S=4 *///除//溢出时显示错误

case 0:break;

}

while(1)

{

25

湖北师范学院物理与电子科学学院13级单片机课程设计

key=keycheckdown();

/*动态扫描键盘,返回按键对应值,赋给

j key=0到f */

if(0xff!=key) {

if(key<10) {

/*若返回值有效,进入内部处理程序*/

if(n<4){data_a=data_a*10+key;m=5;display_a();}n++; //首先

输入第一个数

if(m<4){data_b=data_b*10+key;n=5;display_b();}m++; //必须

按了+-*/才能输入第二个数

}

else

{ switch(key)

{

case 0xa:n=5;m=0;x=1;W_lcd(5,0,'+');break; //加

/*功能键选择*/

/* + S=1 */ /* 数值转换函数 */

case 0xb:n=5;m=0;x=2;W_lcd(5,0,'-');break;

/* - S=2 *///减

case 0xc:n=5;m=0;x=3;W_lcd(5,0,'*');break;

/* * S=3 *///乘

case 0xd:n=5;m=0;x=4;W_lcd(5,0,'/');break;

/* / S=4 *///除

case

0xe:n=5;m=5;eql(x);W_lcd(12,0,'=');display_c(x);break; /* = */

case

0xf:n=0;x=0;m=5;

data_a=0;data_b=0;data_c=0;LCD_Write_String(0,0,table);LCD_Write_String(0,1,table);W_lcd(0,0,'0');break; /* C*/

}

}

26

湖北师范学院物理与电子科学学院13级单片机课程设计

do{P1=0xf0;}while(P1!=0xf0);

/*等待按键松开*/

}//(0xff!=key) }//while

}//main

实物图

27


51单片机计算器(6).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:基于单片机的空调温度控制系统设计毕业论文(设计)word格式

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: