单片机——简单计算器
最近喜欢看单片机,用C写了个简单的计算器,LCD作为 显示 。在proteus上仿真和开发板上都可以运行。
/*
一个简单的整数计算器。
从4*4矩阵键盘接收 0~9 组成的数字,做加减乘除运算,
并将输入的键值和运算结果显示在LCD上。运算有效位好像只有6位。
*/
#include <reg51.h> // 51系列单片机头文件
#include <math.h>
#include "LCD.h" // 引入 自己编写的 LCD 文件
#define uchar unsigned char
#define uint unsigned int
#define KEY P1 // 键盘 接口
#define LED P0 // 7段数码管用于显示 按下键盘的键值
sbit BEEP = P3^7; // 蜂鸣
uchar code DSY_CODE[] = {0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0x00}; // 0~f
uchar fuhao = '=', k = 0, KeyNO; // fuhao 用于 记录 最近 使用的 运算符
unsigned long num, a[12], temp1 = 0, temp2 = 0; // temp1 记录 当前输入的数值 temp2 记录 上次输入的数值
//===================================================================//
void delay_ms(uint x); // 微秒级延时函数
void Keys_Scan(); // 接收 从键盘输入的 键值
void Beep(); // 响铃函数
void fenjie (unsigned long n); // LCD数字显示函数
void LCD_Show();// LCD键值显示函数
//================== 调试主函数 ================================//
void main()
{
KEY = 0xf0;
LED = 0xff; // 数码管 灭
IE=0X81;