最佳答案
#include
#include
#include /* isdigit()函数 */
#include /* atoi()函数 */
#define uchar unsigned char
#define uint unsigned int
uchar operand1[9], operand2[9]; /* 操作数 */
uchar operator; /* 操作符 */
void delay(uint);
uchar keyscan();
void disp(void);
void buf(uint value);
uint compute(uint va1,uint va2,uchar optor);
uchar code table[] = {0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90,0xff}; /* 字符码表 */
uchar dbuf[8] = {10,10,10,10,10,10,10,10}; /* 显示缓存 */
/* 延时函数 */
void delay(uint z)
{
uint x,y;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}
/*******************************************
键盘扫描程序
将按键转化为字符并作为输出
'$','#'分别表示清零键和没有键按下
*******************************************/
uchar keyscan()
{
uchar skey; /* 按键值标记变量 */
/***********************
扫描键盘第1行
************************/
P1 = 0xfe;
while((P1 & 0xf0) != 0xf0) /* 有按键按下 */
{
delay(3); /* 去抖动延时 */
while((P1 & 0xf0) != 0xf0) /* 仍有键按下 */
{
switch(P1) /* 识别按键并赋值 */
{
case 0xee: skey = '7'; break;
case 0xde: skey = '8'; bre