电子计算器Word文件下载.docx
《电子计算器Word文件下载.docx》由会员分享,可在线阅读,更多相关《电子计算器Word文件下载.docx(20页珍藏版)》请在冰豆网上搜索。
tan);
4)未工作时显示北京时间;
5)当数据超出范围,可声音提示或报警。
本系统采用4X4矩阵键盘作为输入部分,实现数据输入功能。
本系统规定的键盘上的各按键功能如下所示:
1(+)
2(-)
3(*)
ON
4(/)
5(sqrt)
6(power)
OFF
7(sin)
8(cos)
9(tan)
Clear
Fuction
.
=
各按键功能如下:
Fuction:
功能键。
按下此键,显示数字1至9括号里的运算符;
未按此键,显示数字。
ON显示北京时间时,按下此键之后进入计算器状态。
OFF在计算器状态下,按下此键之后显示北京时间。
Clear:
清除键。
2系统的工作流程图
C
off
功能键(F)
清除
数字键
3系统程序设计
3.1主程序模块设计
#include<
aduc848.h>
#include<
Keyprocess.h>
LCD.h>
#include<
math.h>
stdio.h>
zifuc.h>
iic.h>
sin.h>
cos.h>
#defineucharunsignedchardoublexdataFirst,End1,End2;
voiddelay(intn)
{inti,j;
for(i=0;
i<
n;
i++)
{for(j=0;
j<
25;
j++)
;
}
doubleadd(doublex,doubley){doublez;
z=x+y;
//
延时程序
加法程序
return(z);
doublesub(doublex,doubley){doublez;
if(x>
=y)
z=x-y;
else
z=y-x;
doublemul(doublex,doubley){doublez;
z=x*y;
doublediv(doublex,doubley)
{doublez;
z=x/y;
doublepower(doublex,inty)
inti;
z=1;
for(i=1;
=y;
z=z*x;
doubletan(doublex)
{doublez;
z=sin(x)/cos(x);
//tan(x)
乘法程序
除法程序
乘方程序
程序
voidmain(void)
{intn,k,h,g,t=0;
unsignedchartime[7]={00,00,12,4,9,6,11};
unsignedcharf,m,key=0x80;
unsignedcharfp[16];
l2CCON=0xE8;
m功能键,g小数转换,k按键次数,n判
n=0;
f=0;
m=0;
k=-1;
h=0;
/*h有小数,
断前后数,f算法,t时间计算切换*/
First=0;
g=1;
//LCD初始化
LCDInitialize();
SetTime(time);
SwitchRTC
(1);
while
(1)
{key=GetKey();
if(t==0)
key=100;
switch(key)
{case1:
if(m==0)
{if(h==0)
{First=First*10+key;
k++;
else{First=First+(double)key/(g*10);
g=g*10;
LCDPrintString(k,1,"
1"
);
/*
不断查询是否有按键动作获取返回键值
时间状态*/
{f=1;
n=1;
+"
break;
case2:
2"
{f=2;
-"
case3:
3"
{f=3;
x"
case4:
4"
{f=4;
/"
case5:
5"
{f=5;
m=0;
n=1;
sqrt"
k=k+3;
case6:
6"
{f=6;
^"
case7:
7"
{f=7;
sin"
);
k=k+2;
case8:
8"
{f=8;
cos"
}break;
case9:
态*/
case0:
if(h==0)
}LCDPrintString(k,1,"
0"
case15:
switch(f)
First=add(End1,End2);
if(First>
30000){buzzer();
key=14;
}else{ecvt(First,fp);
LCDPrintString(0,2,fp);
}break;
case2:
First=sub(End1,End2);
30000)
{buzzer();
else{ecvt(First,fp);
First=mul(End1,End2);
First=div(End1,End2);
First=sqrt(End2);
First=power(End1,End2);
case7:
First=sin(End2);
case8:
First=cos(End2);
case9:
First=tan(End2);
n=0;
b