📄 main.c
字号:
//-----------------------------------------------------------------
// 名称: 用PIC与1601LCD设计的计算器
//-----------------------------------------------------------------
// 说明: 本例运行时,可完成整数的加、减、乘、除四种运算,支持浮点数运算,
// 但不支持带优先级的表达式运算. 运算结果超出有效范围时显示
// *OVERFLOW*,表达式出错时显示*ERR*.
//
//-----------------------------------------------------------------
#include <pic.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>
#include "calc.h"
//计算器操作数a,b,每次得到的运算结果重新存入a
static float a = 0, b = 0;
//-----------------------------------------------------------------
// 主程序
//-----------------------------------------------------------------
void main()
{
char number[MAX_DISPLAY_char + 1], KeyChar;
static INT8 havedot = 0; //是否已经输入了小数点
static char lastop = '='; //保存上次输入的操作符("+-*/="),初始时设为"="
INT8U i = 0; //初始时缓冲指针归0
float t;
LCD_Initialise(); //液晶初始化
Calc_Show_Result(0); //初始时显示0
while (1)
{ KeyChar = getKeyChar();//读取按键ASCII
//如果按下了数字0~9或小数点则准备存入缓冲---------------------
if (isdigit(KeyChar) || (KeyChar == '.'))
{
}
//如果按下的“+ - * / =”则进行相应运算处理-------------------
else
{
}
}
}
//-----------------------------------------------------------------
// 根据不同操作符进行运算处理
//-----------------------------------------------------------------
void Operator_Process(char op)
{
INT8 Error = 0;
switch (op) //根据操作符op进行四则运算
{
}
//正常时计算器显示结果,否则显示*ERR*
}
//-----------------------------------------------------------------
// 对运行结果进行转换并显示
//-----------------------------------------------------------------
void Calc_Show_Result(float f)
{
char buf[MAX_DISPLAY_char + 1];
if ( f < 100000000 )
{
}
else strcpy(buf,"*OVERFLOW*");
//显示结果
LCD_display(buf);
}
//-----------------------------------------------------------------
// 获取键按键ASCII字符
//-----------------------------------------------------------------
char getKeyChar()
{
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -