zoukankan      html  css  js  c++  java
  • 简易计算器

    • 连接图
    • 仿真电路图
    • 加法运算
    • #include<reg51.h>
      sbit col0=P1^0;
      sbit col1=P1^1;
      sbit col2=P1^2;
      sbit col3=P1^3;
      sbit row0=P1^4;
      sbit row1=P1^5;
      sbit row2=P1^6;
      sbit row3=P1^7;
      int m,n;
      int seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
      void key1();
      void key2();
      void display1();
      void display2();
      void delay(int i)
      {
      int k,j;
      for(k=0;k<i;k++)
      for(j=0;j<100;j++);
      }
      void key1()    //检测是否有按键按下
      {
      while(1){
      P1=0x0f;
      if(P1!=0x0f)
      delay(10);
      if(P1!=0x0f)
      break;
      }
      }
      void key2()     //检测哪个按键按下
      {
      P1=0xff;
      col0=0;
      if(row0==0) n=1;
      if(row1==0) n=2;
      if(row2==0) n=3;
      if(row3==0) n=4;
      P1=0xff;
      col1=0;
      if(row0==0) n=5;
      if(row1==0) n=6;
      if(row2==0) n=7;
      if(row3==0) n=8;
      P1=0xff;
      col2=0;
      if(row0==0) n=9;
      if(row1==0) n=0;
      if(row2==0) m=n;
      if(row3==0) display2();
      
      }
      void display1()
      {
      P2=0xfe;
      P0=seg[n];
      }
      void display2(){
      while(1)
      {
      P2=0xfd;
      if((m+n)<10)
      P0=0xff;
      else
      P0=seg[(m+n)/10];
      delay(10);
      
      P2=0xfe;
      P0=seg[(m+n)%10];
      delay(10);
      }
      }
      void main()
      {
      while(1)
      {
      key1();
      key2();
      display1();
      }
      }
    • 四则运算
    • #include<reg51.h>
      #include<math.h>
      sbit col0=P1^0;
      sbit col1=P1^1;
      sbit col2=P1^2;
      sbit col3=P1^3;
      sbit row0=P1^4;
      sbit row1=P1^5;
      sbit row2=P1^6;
      sbit row3=P1^7;
      int m,n,q;
      dis[2];
      int seg[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff,0xbf};//0--9;
      void key1();
      void key2();
      void display1();
      void display2();
      void delay(int i)
      {
          int k,j;
          for(k=0;k<i;k++)
              for(j=0;j<100;j++);
      }
      void key1()    //检测是否有按键按下
      {
          while(1){
              P1=0x0f;
              if(P1!=0x0f)
                  delay(10);
                  if(P1!=0x0f)
                      break;
              }
      }
      void key2()     //检测哪个按键按下
      {
          P1=0xff;col0=0;
          if(row0==0) n=1;
          if(row1==0) n=2;
          if(row2==0) n=3;
          if(row3==0) n=4;
          P1=0xff;col1=0;
          if(row0==0) n=5;
          if(row1==0) n=6;
          if(row2==0) n=7;
          if(row3==0) n=8;
          P1=0xff;col2=0;
          if(row0==0) n=9;
          if(row1==0) n=0;
      
          if(row2==0) {m=n;q=1;}//+
          if(row3==0) {m=n;q=2;} //-
          P1=0XFF;col3=0;
          if(row0==0) {m=n;q=3;} //*
          if(row1==0) {m=n;q=4;} // /
          if(row2==0) 
          {
              switch(q)
              {
                  case 1:    if((m+n)>=10) dis[0]=(m+n)/10;else dis[0]=10 ;dis[1]=(m+n)%10;break;//加:求和并拆字求显示值给dis[0]和dis[1]
                  case 2:    if(m>n){dis[0]=10;dis[1]=m-n;}else {dis[0]=11;dis[1]=n-m;} break;//减:求差并拆字求显示值给dis[0]和dis[1]
                  case 3:    if((m*n)>=10) dis[0]=(m*n)/10;else dis[0]=10;dis[1]=(m*n)%10;break;//
                  case 4:    dis[0]=m/n;dis[1]=m%n*10/n;break;
              }
              display2();
          }
      }
      void display1()
      {
          P2=0xfe;
          P0=seg[n];
      }
      void display2()
      {
      while(1)
      {
      P2=0xfd; //11111101
      if(q==4)
          P0=seg[dis[0]]&0x7f; //加小数点
      else
          P0=seg[dis[0]];
      delay(1);
      P2=0xfe;  //11111110
      P0=seg[dis[1]];
      delay(1);
      
      }
          
      }
      void main()
      {
      while(1)
      {
      key1();
      key2();
      display1();
      }
      }
  • 相关阅读:
    ArcGIS API for JavaScript 学习笔记 (一) --第一个WebGIS应用程序
    C#学习之数据类型-(一:简介)
    用vs发布网站,IIS部署浏览网站的具体步骤。
    载入内存,让程序运转起来。
    placeholder的使用
    京东商城注册页使用的正则表达式(转)
    网站列表页竖直栏目图片灰色背景导航菜单代码
    CSS定义鼠标悬浮,图片出现边框
    生成虚线代码(小白自留)
    划过或点击下面带框的文本
  • 原文地址:https://www.cnblogs.com/ssxblog/p/10883891.html
Copyright © 2011-2022 走看看