//-----------------------------------------------------------------------------
//
// 目标器件: C8051F320x
//
// 编译工具: Silicon Laboratories IDE
//
//-----------------------------------------------------------------------------
//程序描述:
// 16 Key + LCD Display
// 可以进行正整数的加、减、乘、整除运算,计算结果显示范围:-9999999~99999999
//-----------------------------------------------------------------------------
// 头文件包含
//-----------------------------------------------------------------------------
#include <c8051F320.h>
//;************************************************************************
//;* p1.0 : 1st column (k0,k4,k8,kc)
//;* p1.1 : 2nd column (k1,k5,k9,kd)
//;* p1.2 : 3rd column (k2,k6,ka,ke)
//;* p1.3 : 4th column (k3,k7,kb,kf)
//;* p1.4 : 1st row (k0,k1,k2,k3) p1.7-p1.4 connect to 74LS21
//;* p1.5 : 2nd row (k4,k5,k6,k7)
//;* p1.6 : 3rd row (k8,k9,ka,kb)
//;* p1.7 : 4th row (kc,kd,ke,kf)
//:* p2.6 : =0 a key is pressed
//;**********************************
//-----------------------------------------------------------------------------
//全局变量定义
//-----------------------------------------------------------------------------
unsigned char DispData0[8]={'0',' ',' ',' ',' ',' ',' ',' '};//
unsigned int x;
unsigned char *lcdpoint0; //指向 lcddata数组的指针
unsigned char *lcdpoint1; //指向 lcddata数组的指针
sbit rs = P2^3;
sbit e = P2^5;
sbit aKey = P2^6;
//-----------------------------------------------------------------------------
// 函数定义
//-----------------------------------------------------------------------------
void PORT_Init (void); //通用I/O口及交叉开关初始化
void SYSCLK_Init (void); //系统时钟初始化
void LCD_Init(void); //液晶初始化
void LCD_Instruction(unsigned char comnd);
void LCD_Data(unsigned char data0);
void LCD_Display (void);
void Delay8_33us(unsigned int iM);
void ClearLCD(void); //清除显示内容
void GetKey(unsigned char chkey);//获得显示字符
void GetResult(void); // 计算结果
int ii,i=0;
un