新手求救。要做一个四则计算器,自己编的程序已有个雏形,但是无法完成要求。求大神帮我看看。
四则计算器要求:
1.设计一个两位正整数的四则计算器,可以完成2位正整数的加、减、乘、除。
2.在液晶上显示加数、运算符号、被加数和运算结果;
3.通过按键KEY0和KEY2(即WK_UP)可以选择准备调整的是加数、被加数、还是运算符号;再通过KEY1调整选择调整的加数、被加数、运算符号的具体值。
4.调整过程中,自动进行运算并在液晶上显示运算结果。
[mw_shl_code=c,true]#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "lcd.h"
#include "key.h"
u8 k;//键值
int i=0,j=0,q=0;//数组
int c;//输出的数
int a[2][10]={
{0,1,2,3,4,5,6,7,8,9},
{0,1,2,3,4,5,6,7,8,9}};
char *p[4]={"+","-","*","/"};
void jm()//显示界面
{
LCD_ShowNum(20,90,a[1][j],1,24);//被算数
LCD_ShowString(40,90,200,24,24,p[q]);//运算符
LCD_ShowNum(60,90,a[2][j],1,24);//算数
LCD_ShowString(80,90,200,24,24,"=");//结果
LCD_ShowNum(100,90,c,2,24);
}
void ys()//运算函数
{
switch (q)
{
case 1:
c=a[1][j]+a[2][j];break;//计算加法
case 2:
c=a[1][j]-a[2][j];break;
case 3:
c=a[1][j]*a[2][j];break;
case 4:
c=a[1][j]/a[2][j];break;
default:
delay_ms(10);break;
}
}
void choose()//选择函数
{
k= KEY_Scan(0);
switch (k)
{
case KEY0_PRES://选择算数或被算数
{
i++;
if(i>2)i=0;
}
break;
case KEY1_PRES://调整数值
{
j++;
if(j>10)j=0;
}
break;
case WKUP_PRES://选择符号
{
q++;
if(q>4)q=0;
}
break;
default:
delay_ms(10);
break;
}
ys();
jm();
}
int main(void)
{
delay_init();//初始化
uart_init(9600);
LCD_Init();
KEY_Init();
while (1)
{
choose();
}
}
[/mw_shl_code]
|