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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3670|回復(fù): 1
打印 上一主題 下一主題
收起左側(cè)

簡單計算器c語言源程序

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:70976 發(fā)表于 2014-12-25 13:13 | 只看該作者 回帖獎勵 |倒序?yàn)g覽 |閱讀模式
  1. #include<reg51.h>
  2. #include<math.h>
  3. #define uint unsigned int
  4. #define uchar unsigned char
  5. uchar code tab[]={0xee,0xed,0xeb,0xe7,
  6.       0xde,0xdd,0xdb,0xd7,
  7.       0xbe,0xbd,0xbb,0xb7,
  8.       0x7e,0x7d,0x7b,0x77,};   //0~f鍵位碼表


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

  11. void delay(uchar x)          //毫秒級延時函數(shù)
  12. {
  13. uchar y;            
  14. for(;x>0;x--)
  15.   for(y=110;y>0;y--);
  16. }


  17. scanf()    //按鍵處理函數(shù)   
  18. {
  19. uchar temp,temp1,i;   
  20. P0=0xf0;        //給P0口賦值為oxf0,用于列掃描
  21. if(P0!=0xf0)   //判別是否有鍵按下
  22. {
  23.   delay(2);  
  24.   if(P0!=0xf0)    //再次判別是否有鍵按下
  25.   {
  26.    temp1=P0;   //P0值賦給temp1
  27.    P0=0x0f;   //P0值賦為0x0f,用于行掃描
  28.    temp=temp1|P0; //將行列掃描值合并,賦給temp
  29.   }

  30. switch(temp)
  31. {
  32.   case 0xee:i=1; break;
  33.   case 0xed:i=2; break;
  34.   case 0xeb:i=3; break;
  35.   case 0xe7:i=4; break;
  36.   case 0xde:i=5; break;
  37.   case 0xdd:i=6; break;
  38.   case 0xdb:i=7; break;
  39.   case 0xd7:i=8; break;
  40.   case 0xbe:i=9; break;
  41.   case 0xbd:i=0; break;
  42.   case 0xbb:i=10; break;
  43.   case 0xb7:i=11; break;
  44.   case 0x7e:i=12; break;
  45.   case 0x7d:i=13; break;
  46.   case 0x7b:i=14; break;
  47.   case 0x77:i=15; break;  
  48. }
  49. }
  50.   else return 16;
  51.   return i;
  52. }  



  53. void display(uint temp)     //顯示函數(shù)
  54. {
  55. uchar i;
  56. uchar z[6];
  57. z[0]=16;
  58. z[1]=temp/10000;
  59. z[2]=temp%10000/1000;
  60. z[3]=temp%1000/100;
  61. z[4]=temp%100/10;
  62. z[5]=temp%10;


  63. for(i=0;i<6;i++)
  64. {   
  65.   SBUF=tab1[z[ i]];   // 根據(jù)鍵位值找到鍵碼值,將鍵碼值賦給串行口發(fā)送寄存器
  66.   while(!TI);   //判斷串口數(shù)據(jù)發(fā)送是否完畢
  67.   TI=0;         //串口數(shù)據(jù)發(fā)送完畢標(biāo)志清0
  68. }


  69. }



  70. E(uchar n)
  71. {
  72. uint  t=1;
  73. for(;n>0;n--)
  74. t=t*10;
  75. return t;
  76. }





  77. void main(void)     //主函數(shù)
  78. {




  79. uint tem,tem1;

  80. uchar x,y,fh,j,k=0;
  81. uchar zhi[6];
  82. uchar zhi1[6];

  83. while(1)
  84. {


  85.   if(x<5&&!k)
  86.   { if(scanf()<10)
  87.   {
  88.    delay(5);
  89.    if(scanf()<10)
  90.    {
  91.      if(x==0){zhi[0]=scanf();while(scanf()!=16);}
  92.    
  93.      if(x==1){zhi[1]=scanf();while(scanf()!=16);}

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

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

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


  97.      x++;            
  98.      tem=0;

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

  103.      display(tem);
  104.      
  105.      
  106.     }

  107.    }
  108.    
  109.   }
  110.   


  111.   
  112. if(scanf()>11&&scanf()<16)
  113. {
  114.   delay(2);
  115.   if(scanf()>9&&scanf()<16)
  116.   {
  117.    
  118.    fh=scanf();
  119.    while(scanf()!=16);
  120.    k=1;
  121.   }
  122. }


  123.   

  124. if(j<5&&k)
  125.   { if(scanf()<10)
  126.   {
  127.    delay(2);
  128.    if(scanf()<10)
  129.    {
  130.      if(j==0){zhi1[0]=scanf();while(scanf()!=16);}
  131.    
  132.      if(j==1){zhi1[1]=scanf();while(scanf()!=16);}

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

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

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

  136.      j++;            
  137.      tem1=0;

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

  142.      display(tem1);
  143.      
  144.      
  145.     }

  146.    }
  147.    
  148.   }


  149. if(scanf()==11)
  150. {
  151. delay(2);
  152. if(scanf()==11)
  153. { while(scanf()==11);
  154.   if(fh==12)tem=tem+tem1;
  155.   if(fh==13)tem=tem-tem1;
  156.   if(fh==14)tem=tem*tem1;
  157.   if(fh==15)tem=tem/tem1;
  158.   display(tem);
  159.   j=0;
  160.   
  161. }
  162. }
  163.   
  164.   

  165. }
  166. }
復(fù)制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:76106 發(fā)表于 2015-4-4 12:08 | 只看該作者
非常好 謝謝啦
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機(jī)版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 欧美.com| a级在线 | 日韩中文字幕免费在线 | 亚洲网站在线观看 | 欧美伊人| 国产高清av免费观看 | 日韩精品视频一区二区三区 | 99国产精品久久久久老师 | 欧美日韩精品久久久免费观看 | 亚洲日日夜夜 | 偷拍亚洲色图 | 嫩草视频网 | 日本h片在线观看 | 中文字幕精品一区二区三区精品 | 在线 丝袜 欧美 日韩 制服 | 欧美成人精品激情在线观看 | 91精品国产综合久久久动漫日韩 | 久久精品亚洲一区 | 欧美一区二区三区,视频 | 亚洲精品电影网在线观看 | 欧美在线 | 中文在线一区二区 | 国产91在线播放 | 国产一区二区三区免费 | 亚洲精品成人在线 | 日韩欧美在线免费 | 国产一区二区在线免费观看 | 玖玖在线精品 | 国产精品久久国产精品 | 天堂精品视频 | 人成在线 | 欧美一区二区久久 | 91黄色片免费看 | 久久国产欧美一区二区三区精品 | 精品一区二区电影 | 日韩国产欧美在线观看 | 特一级毛片 | 日韩美女一区二区三区在线观看 | 蜜桃精品在线 | 精品久久久久久久久久久久久久久久久 | 国产精品视频久久久 |