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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2876|回復: 0
打印 上一主題 下一主題
收起左側

51計算器程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:212824 發表于 2017-6-20 09:13 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include <reg51.H>
#define uchar unsigned char
#define uint unsigned int
#define duan P2//數碼管顯示段選定義
#define wei P2//數碼管顯示位選定義
#define key P1//鍵盤接口定義



sbit xwei=P3^5;
sbit xduan=P3^4;
unsigned              long
shu,shz,shuz,shuz1,shu1,i,shu2,shz3,shuz3,shz5,shuz5,shz4,shuz4,shz6,shuz6,xshu,shz7,shuz7;//進行運算的兩個變量數
uchar num;////鍵盤掃描返回值
uchar flag1,fuhao,fhao ,flag2,flagf,flagl,flagLJ1,flagLJ2;//fuhao運符

unsigned char code Wela[]={0x20,0x10,0x08,0x04,0x02,0x01};//六位數碼管的位選
unsigned char code Duan[]={0x3f,0x06,0x5b,// 0 1 2
    0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x00};// 3 4 5 6 7 8 9 無顯示共陰極數碼管

uchar keyscan();//鍵盤掃描函數

void weixz();
void duanxz();
void displayshu(unsigned long);
void delay(uint i)//延時函數
{
while(i--);
}
/***********************************************主函數************************************************/

void main()
{
     shu=100;
      xshu=0;
      shu1=0;
      shu2=0;
    flag1=0;
    flag2=0;
      flagf=0;
      flagl=0;
    while(1)
   {
////////////////////////////////////////////////
     shu=keyscan();


     if((shu<10)&&flag1==0&&flag2==0&&flagf==0&&flagLJ1==0)
     {
        shu1=shu;
        flag1=1;
        displayshu(shu1);
           flagLJ1=1;
           for (i=1;i<200;i++)
           {
            delay(500);
                }
           }
           else if((shu<10)&&flag1==1&&flag2==0&&flagf==0&&flagLJ1==1)
          {
             shu1=shu1*10;
             shu1=shu+shu1;
               flag1=1;
             displayshu(shu1);
              flagLJ1=1;
               }
//////////////////////////////////////////////////
if(shu==13&&flag1==1&&flagf==0)
           {
           fuhao=shu;
             wei=0xef;
           weixz();
           duan=Duan[0];
                duanxz();
             flagf=1;
            }
         if(shu==12&&flag1==1&&flagf==0)
           {
           fuhao=shu;
             wei=0xdf;
           weixz();
             duan=Duan[0];
           duanxz();
             flagf=1;
             }
////////////////////
if(shu==15&&flag1==1&&flagf==0)
      {
      fuhao=shu;
      wei=0xdf;
      weixz();
      duan=Duan[0];
        duanxz();
        flagf=1;
         }
/////////chu///////////////
if(shu==11&&flag1==1&&flagf==0)
{
fuhao=shu;
   wei=0xdf;
weixz();
duan=Duan[0];
duanxz();
flagf=1;
}
/////////////////////////////////////////////////


if((shu<10)&&flag1==1&&flagf==1&&flagLJ2==0)
    {
     shu2=shu;
     flag2=1;
       flagLJ2=1;
       displayshu(shu2);
      }
  else             if
((shu<10)&&flag1==1&&flag2==1&&flagf==1&&flagLJ2==1)
         {
         shu2=shu2*10;
           shu2=shu+shu2;
           flag2=1;
         displayshu(shu2);
         }
/////////////////////////////////////////////
          if(shu==10&&flag1==1&&flag2==1&&flagf==1)
   {
      switch(fuhao)
    {
      case13:shu1=shu2+shu1; break;
      case12:shu1=shu1-shu2; break;
      case15:shu1=shu1*shu2; break;
      case11:shu1=shu1/shu2; break;
   }

        shu2=0;
        flag1=1;
      flag2=0;
      flagf=0;
      flagLJ1=0;
      flagLJ2=0;

        displayshu(shu1);
      }

         if(shu==14)
       {
       shu1=0;
       shu2=0;
       flag1=0;
       flag2=0;
         flagf=0;
       flagLJ1=0;
     flagLJ2=0;
       displayshu(0);
             }
   }

         }

///////////////鍵盤掃描/////////////////

          uchar keyscan()

           {
           //////1
          key=0xfe;
            if(key!=0xfe)
         {
           delay(500);
            if(key!=0xfe)
            {
            switch(key)
                {
                case 0xee:num=7 break;
                case 0xde:num=8 break;
                case 0xbe:num=9 break;
                case 0x7e:num=13;break; //"/"
               }


                 return num;

                }
                  }                  

           ////// 1
        ////// 2
           key=0xfd;
        if(key!=0xfd)
         {
           delay(500);
           if(key!=0xfd)
           {
            switch(key)
               {
                 case 0xed:num=4 break;
                 case 0xdd:num=5 break;
                 case 0xbd:num=6 break;
                 case 0x7d:num=12;break; //*
                }


               return num

                       }
                  }

               //////2
            //////3
                  key=0xfb;
             if(key!=0xfb)
                {
              delay(500);
              if(key!=0xfb)
                  {
                 switch(key)
                 {
                  case 0xeb:num=1 break;
                  case 0xdb:num=2;break;
                  case 0xbb:num=3;break;
                  case 0x7b:num=11;break;
                  }

                     return num
                       }
                   }
              //////3
             //////4
              key=0xf7;
                 if(key!=0xf7)
               {
                 delay(500);
                   if(key!=0xf7)
                 {
                     switch(key)
                    {
                       case 0xe7:num=0;break;
                       case 0xd7:num=15;break;
                       case 0xb7:num=14;break;
                       case 0x77:num=10;break;
                      }
                        return num
                        }

                      }

                      for(i=1;i<30;i++)
                    {
                       delay(1600);        
                        }
                       }
    /////////////////////////////////////////////////////////////////
                    void weixz()
                    {
                       xwei=1;
                         delay(1);
                         xwei=0;
                     }
                    void duanxz()
                    {
                      xduan=1;
                        delay(1);
                      xduan=0;
                     }
                   void displayshu(shu)
                     { if(shu<10)
                           {
                               wei=0xfe;
                             weixz()
                             duan=Duan[shu];
                               duanxz();
                             delay(5000);
                              }
                         else if(shu>9&&shu<100)
                             {         
                                 for (i=1;i<100;i++ )        
                               {      
                                  wei=0xfe;      
                                  shuz=shu%10;      
                                  weixz();      
                                  duan=Duan[shuz];         
                                  duanxz();      
                                  delay(200);     

                                  shz=shu/10;     
                                  wei=0xfd;     
                                  shuz1=shz%10;     
                                  weixz()      
                                  duan=Duan[shuz1];        
                                  duanxz();        
                                  delay(200);      

                                  wei=0xff;        
                                    weixz();     
                                        }      
                                  }        
                         //////////////3wei/////         
                          else if(shu>99&&shu<1000)      
                               {         
                                  for (i=1;i<100;i++ )        
                                {      
                                   wei=0xfe;      
                                   shuz=shu%10;      
                                   weixz();      
                                   duan=Duan[shuz];         
                                   duanxz();      
                                   delay(100);     
                                   shz=shu/10;     
                                   wei=0xfd;     
                                   shuz1=shz%10;     
                                   weixz()      
                                   duan=Duan[shuz1];        
                                   duanxz();        
                                   delay(100);


                                   shz3=shu/100;     
                                   wei=0xfb;

                                   shuz3=shz3%10;  

                                   weixz();
                                 duan=Duan[shuz3];
                                 duanxz();
                                   delay(100);

                                    wei=0xff;
                                   weixz();
                                  }

                                  }
                         //////////////4////////////
                         else if(shu>999&&shu<10000)
                            {
                                  for(i=1;i<100;i++)
                             {
                                 wei=0xfe;
                                 shuz=shu%10;
                                 weixz();
                                 duan=Duan[shuz];
                                   duanxz();
                                 delay(120);

                                   shz=shu/10;
                                   wei=0xfd;
                                   shuz1=shz%10;
                                 weixz()
                                 duan=Duan[shuz1];
                                   duanxz();
                                 delay(120);

                                   shz3=shu/100;
                                   wei=0xfb;
                                 shuz3=shz3%10;
                                 weixz();
                                   duan=Duan[shuz3];
                                   duanxz();
                                 delay(120);

                                 shz4=shu/1000;
                                 wei=0xf7;
                                 shuz4=shz4%10;
                                   weixz();
                                 duan=Duan[shuz4];
                                 duanxz();
                                 delay(120);


                                    wei=0xff;
                                   weixz();

                                  }

                                }

                     ////////////5///////////////////////
                   else if(shu>9999&&shu<100000)
                         {
                          for(i=1;i<100;i++)
                         {
                                  wei=0xfe;
                                shuz=shu%10;
                                weixz();
                                duan=Duan[shuz];
                                duanxz();
                                delay(180);
                                  shz=shu/10;
                                  wei=0xfd;
                                  shuz1=shz%10;
                                  weixz()
                                duan=Duan[shuz1];
                               duanxz();
                                delay(180);

                                  shz3=shu/100;
                                  wei=0xfb;
                                shuz3=shz3%10;
                                weixz();
                                duan=Duan[shuz3];
                                  duanxz();
                                delay(180);

                                  shz4=shu/1000;
                                  wei=0xf7;
                                shuz4=shz4%10;
                                weixz();
                                  duan=Duan[shuz4];
                                  duanxz();
                                delay(180);

                                  shz5=shu/10000;
                                  wei=0xef;
                                  shuz5=shz5%10;
                                weixz();
                                  duan=Duan[shuz5];
                                  duanxz();
                                delay(180);

                                wei=0xff;
                                 weixz();

                                }

                              }

                     ////////////6///////////////////////
                     else if(shu>99999&&shu<1000000)
                       {
                             for(i=1;i<100;i++)
                           {
                               wei=0xfe;
                             shuz=shu%10;
                               weixz();
                             duan=Duan[shuz];
                             duanxz();
                             delay(180);

                             shz=shu/10;
                               wei=0xfd;
                             shuz1=shz%10;
                               weixz();
                               duan=Duan[shuz1];
                               duanxz();
                             delay(180);

                               shz3=shu/100;
                               wei=0xfb;
                             shuz3=shz3%10;
                             weixz();
                               duan=Duan[shuz3];
                             duanxz();
                             delay(180);

                               shz4=shu/1000;
                             wei=0xf7;
                             shuz4=shz4%10;
                             weixz();
                               duan=Duan[shuz4];
                               duanxz();
                             delay(180);
                               shz5=shu/10000;
                             wei=0xef;
                             shuz5=shz5%10;
                               weixz();
                             duan=Duan[shuz5];
                             duanxz();
                             delay(180);

                               shz6=shz5/10;
                             wei=0xdf;
                             shuz6=shz6%10;
                             weixz();
                             duan=Duan[shuz6];
                               duanxz();
                             delay(180);

                               wei=0xff;
                               weixz();


                                     }
                                  }
                                }

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品一区二区三区四区五区 | 亚洲色欲色欲www | 精品在线观看一区二区 | 亚洲国产aⅴ成人精品无吗 欧美激情欧美激情在线五月 | a在线免费观看 | 中文字幕在线三区 | 亚洲精品国产成人 | 免费av观看 | 国产女人叫床高潮大片免费 | 欧美一级欧美一级在线播放 | 国产精品久久久久久久久免费相片 | 久久久久国产一区二区三区四区 | 国产精品一区二区三 | 罗宾被扒开腿做同人网站 | 久久精品色视频 | 欧美精三区欧美精三区 | 天天宗合网 | 久久9热| 一级毛片观看 | 四虎永久免费黄色影片 | 国产区高清 | 日韩欧美在线免费观看 | 成人免费视频网站在线观看 | 欧美一级在线视频 | av毛片| 天天操夜夜爽 | 国产精品一区二区久久精品爱微奶 | 久久久123 | 黄色免费在线网址 | 麻豆a级片| 日韩专区中文字幕 | 成人亚洲精品久久久久软件 | 美女视频.| 精品一区精品二区 | 国产在线视频一区二区董小宛性色 | 亚洲久在线 | 日日av| 国产精品久久久久久高潮 | av黄色免费在线观看 | 久久久久久久久一区 | 欧美激情久久久 |