• 大小: 91KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2021-05-23
  • 语言: 其他
  • 标签: 单片机  计算器  

资源简介

本实验设计的计算器可完成加减乘除四则运算,压缩包中含有纤细资料,包括protuse仿真,PCB板图设计和源代码。程序简单易懂。

资源截图

代码片段和文件信息

#include 
#include 
#define uchar unsigned char
#define uint unsigned int
sbit beep=P3^0;
uchar aaflag=0opflag1flag2;
long diyidierjieguo;
uchar code KeyCodeTable[]=
{
   0x280x140x240x440x120x220x420x110x210x410x880x840x820x810x480x18

};
uchar code dula[]={0xdf0xef0xf70xfb0xfd0xfe};

uchar code table[]={0x3f0x060x5b0x4f0x660x6d0x7d0x070x7f0x6f0x00};
uchar  buffer[6]={01010101010};

void delay(uint z)
{
uint xy;
for(x=z;x>0;x--)
for(y=110;y>0;y--);
}

uchar Keys_Scan()
{
  uchar sCodekCodeiktmp;
P1 = 0xf0;
if((P1&0xf0)!=0xf0)
{   delay(1);
if((P1&0xf0)!=0xf0)
{  sCode = 0xfe;
for(k=0;k<4;k++)
{   P1 = sCode;
if((P1&0xf0)!=0xf0)
{  kCode = ~P1;
for(i=0;i<16;i++)
{   if(kCode == KeyCodeTable[i])
                    {   P1=0xf0;
                         while(1)
                         { tmp=P1;
                          if(tmp==0xf0) {break;}
                         }
                          flag2++;
                          return i;
                       
                    }
}
}

sCode = _crol_(sCode1);
}
}
}
return 16;
}
void doo(uchar key)
{  uchar  inka[6]b[6]c[6];
   long m;
   if((key>=0)&&(key<=9))
    {  if(flag==1)
      {  flag=0;
         for(i=0;i<6;i++)
         buffer[i]=10;
      }
       if(flag2==1) buffer[0]=10;
       for(i=0;i<5;i++)
        buffer[5-i]=buffer[4-i];
        buffer[0]=key;
    }
   if((key>=10)&&(key<=13))
    { op=key;
       for(i=0;i<6;i++)
       { a[i]=buffer[i];
         if(a[i]==10)
          a[i]=0;
       } 
      diyi=a[5]*100000+a[4]*10000+a[3]*1000+a[2]*100+a[1]*10+a[0];
      flag=1;
    } 
    if(key==14)
   { for(i=0;i<6;i++)
       { b[i]=buffer[i];
         if(b[i]==10)
          b[i]=0;
       } 
       dier=b[5]*100000+b[4]*10000+b[3]*1000+b[2]*100+b[1]*10+b[0];
        switch(op)
         { case 10:   jieguo=diyi+dier; break;
           case 11:   jieguo=diyi-dier; break;
           case 12:   jieguo=diyi*dier; break;
           case 13:   m=diyi/dier; n=diyi%dier*10/dier;k=diyi%dier*10%dier*10/dier; break;
           default:   break;
         }
        if(op==13)
          { flag1=1;
            buffer[0]=k;
            buffer[1]=n;
            for(i=2;i<6;i++)
            { c[i]=m%10;
              m=m/10;
            }
             i=5;
            while((c[i]==0)&&(i>2))
            { c[i]=10;
              i--;
            }
         for(i=2;i<6;i++)
           buffer[i]=c[i];
         
          }  
  else {  for(i=0;i<6;i++)
          { c[i]=jieguo%10;
            jieguo=jieguo/10;
          }
           i=5;
          while(c[i]==0)
            { c[i]=10;
              i--;
             if(i==255) break;
            }
         for(i=0;i<6;i++)
           buffer[i]=c[i];
        }
     }
     if(key==15)
        {  

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        742  2011-07-01 20:17  计算器\4×4键盘矩阵控制条形LED显示.PWI

     文件      98460  2009-03-03 11:30  计算器\Last Loaded 复件 4×4键盘矩阵控制条形LED显示.DBK

     文件       1155  2009-03-10 21:28  计算器\Keil C\4×4键盘矩阵控制条形LED显示

     文件        573  2009-03-10 21:28  计算器\Keil C\4×4键盘矩阵控制条形LED显示.hex

     文件       3934  2011-07-01 12:20  计算器\code\key-led.c

     文件       5429  2011-07-01 12:18  计算器\code\key-led.hex

     文件       7543  2011-07-01 12:18  计算器\code\key-led.LST

     文件      13864  2011-07-01 12:18  计算器\code\key-led.M51

     文件       9917  2011-07-01 12:18  计算器\code\key-led

     文件          0  2011-07-01 19:27  计算器\code\key-led.plg

    .......      1658  2011-06-28 22:11  计算器\code\key-led_Uv2.Bak

     文件       1658  2011-06-29 16:30  计算器\code\key-led.Uv2

    .......      1205  2011-07-01 19:08  计算器\code\key-led_Opt.Bak

     文件       1202  2011-07-01 19:28  计算器\code\key-led.Opt

     文件      12089  2011-07-01 12:18  计算器\code\key-led.OBJ

     文件         69  2011-07-01 12:18  计算器\code\key-led.lnp

     文件      16129  2011-07-01 17:01  计算器\4×4键盘矩阵控制条形LED显示.EDF

     文件       2194  2011-07-01 17:31  计算器\4×4键盘矩阵控制条形LED显示.SDF

     文件     116434  2011-07-01 17:25  计算器\Last Loaded 4×4键盘矩阵控制条形LED显示.DBK

     文件     116434  2011-07-01 17:44  计算器\4×4键盘矩阵控制条形LED显示.DSN

     文件      22803  2011-07-01 17:31  计算器\Last Loaded 4×4键盘矩阵控制条形LED显示.LBK

     文件      25182  2011-07-01 17:44  计算器\4×4键盘矩阵控制条形LED显示.LYT

     目录          0  2011-06-28 11:42  计算器\Keil C

     目录          0  2011-06-28 11:42  计算器\code

     目录          0  2011-06-28 11:42  计算器

----------- ---------  ---------- -----  ----

               458674                    25


评论

共有 条评论