久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

專注電子技術學習與研究
當前位置:單片機教程網 >> MCU設計實例 >> 瀏覽文章

簡單計算器源程序

作者:佚名   來源:本站原創   點擊數:  更新時間:2011年09月11日   【字體:
#include<reg51.h>
#include<math.h>
#define uint unsigned int
#define uchar unsigned char
uchar code tab[]={0xee,0xed,0xeb,0xe7,
      0xde,0xdd,0xdb,0xd7,
      0xbe,0xbd,0xbb,0xb7,
      0x7e,0x7d,0x7b,0x77,};   //0~f鍵位碼表


uchar code tab1[]={0x88,0Xbe,0Xc4,0X94,0Xb2,0X91,0X81,0Xbc,
       0X80,0X90,0xa0,0x83,0xc9,0x86,0xc1,0xe1,0xff};  //0~f字型碼表

void delay(uchar x)          //毫秒級延時函數
{
 uchar y;           
 for(;x>0;x--)
  for(y=110;y>0;y--);
}


scanf()    //按鍵處理函數   
{
 uchar temp,temp1,i;  
 P0=0xf0;        //給P0口賦值為oxf0,用于列掃描
 if(P0!=0xf0)   //判別是否有鍵按下
 {
  delay(2); 
  if(P0!=0xf0)    //再次判別是否有鍵按下
  {
   temp1=P0;   //P0值賦給temp1
   P0=0x0f;   //P0值賦為0x0f,用于行掃描
   temp=temp1|P0; //將行列掃描值合并,賦給temp
  }
 
 switch(temp)
 {
  case 0xee:i=1; break;
  case 0xed:i=2; break;
  case 0xeb:i=3; break;
  case 0xe7:i=4; break;
  case 0xde:i=5; break;
  case 0xdd:i=6; break;
  case 0xdb:i=7; break;
  case 0xd7:i=8; break;
  case 0xbe:i=9; break;
  case 0xbd:i=0; break;
  case 0xbb:i=10; break;
  case 0xb7:i=11; break;
  case 0x7e:i=12; break;
  case 0x7d:i=13; break;
  case 0x7b:i=14; break;
  case 0x77:i=15; break; 
 }
 }
  else return 16;
  return i;
}  

 

void display(uint temp)     //顯示函數
{
 uchar i;
 uchar z[6];
 z[0]=16;
 z[1]=temp/10000;
 z[2]=temp%10000/1000;
 z[3]=temp%1000/100;
 z[4]=temp%100/10;
 z[5]=temp%10;


 for(i=0;i<6;i++)
 {  
  SBUF=tab1[z[i]];   // 根據鍵位值找到鍵碼值,將鍵碼值賦給串行口發送寄存器
  while(!TI);   //判斷串口數據發送是否完畢
  TI=0;         //串口數據發送完畢標志清0
 }


}

 

E(uchar n)
{
 uint  t=1;
 for(;n>0;n--)
 t=t*10;
 return t; 
}

 

 

void main(void)     //主函數
{ 

 


 uint tem,tem1;

 uchar x,y,fh,j,k=0;
 uchar zhi[6];
 uchar zhi1[6];

while(1)
 {


  if(x<5&&!k)
  { if(scanf()<10)
  {
   delay(5);
   if(scanf()<10)
   {
     if(x==0){zhi[0]=scanf();while(scanf()!=16);}
    
     if(x==1){zhi[1]=scanf();while(scanf()!=16);}

     if(x==2){zhi[2]=scanf();while(scanf()!=16);}

     if(x==3){zhi[3]=scanf();while(scanf()!=16);}

     if(x==4){zhi[4]=scanf();while(scanf()!=16);}   


     x++;           
     tem=0;

    for(y=0;y<x;y++)
    { 
     tem=tem+zhi[y]*E(x-1-y);
    }

     display(tem);
     
     
    }

   }
   
  }
  


  
if(scanf()>11&&scanf()<16)
 {
  delay(2);
  if(scanf()>9&&scanf()<16)
  {
   
   fh=scanf();
   while(scanf()!=16);
   k=1;
  }
 }


  

if(j<5&&k)
  { if(scanf()<10)
  {
   delay(2);
   if(scanf()<10)
   {
     if(j==0){zhi1[0]=scanf();while(scanf()!=16);}
    
     if(j==1){zhi1[1]=scanf();while(scanf()!=16);}

     if(j==2){zhi1[2]=scanf();while(scanf()!=16);}

     if(j==3){zhi1[3]=scanf();while(scanf()!=16);}

     if(j==4){zhi1[4]=scanf();while(scanf()!=16);}

     j++;           
     tem1=0;

    for(y=0;y<j;y++)
    { 
     tem1=tem1+zhi1[y]*E(j-1-y);
    }

     display(tem1);
     
     
    }

   }
   
  }


if(scanf()==11)
{
 delay(2);
 if(scanf()==11)
 { while(scanf()==11);
  if(fh==12)tem=tem+tem1;
  if(fh==13)tem=tem-tem1;
  if(fh==14)tem=tem*tem1;
  if(fh==15)tem=tem/tem1;
  display(tem);
  j=0;
  
 }
}
  
  

 }
}
關閉窗口

相關文章

主站蜘蛛池模板: 日韩精品一区二区三区中文在线 | 91精品久久久久久久久久 | 亚洲在线一区二区 | 九九热这里只有精品在线观看 | 亚洲欧美视频一区 | 亚洲成人精品久久久 | 久久天堂 | 亚洲欧美日韩电影 | 人人种亚洲| 99久久精品国产毛片 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 亚洲精品一区二区三区蜜桃久 | 亚洲精品av在线 | 性网站免费 | 69亚洲精品 | 欧美一级免费看 | 中文字幕在线视频免费观看 | 97超碰人人| 欧美高清性xxxxhdvideosex | 免费在线观看成年人视频 | 黄色免费网址大全 | 日本a级大片| 亚洲成人综合社区 | 欧美激情视频一区二区三区免费 | 日韩成人中文字幕 | 超碰在线人| 久久免费精品 | 免费人成激情视频在线观看冫 | 国产成人精品一区二区三区在线 | 精品一区二区在线观看 | 亚洲精品一区中文字幕 | 久久精品中文字幕 | 欧美三区在线观看 | av无遮挡| 日本视频在线 | 青久草视频 | 国产精品美女久久久 | 国产日韩视频 | 日本高清精品 | 天天躁日日躁性色aⅴ电影 免费在线观看成年人视频 国产欧美精品 | 黄色片视频网站 |