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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

簡易計算器設計

[復制鏈接]
跳轉到指定樓層
樓主

#include<reg51.h>   //í·???t
#define uint unsigned int
#define uchar unsigned char
sbit lcden=P1^1; //LCD1602????òy??
sbit rs=P1^0;
sbit rw=P1^2;
sbit busy=P0^7;//LCD?|
char i,j,temp,num,num_1;
long a,b,c;     //a,μúò???êy b,μú?t??êy c,μ?êy
float a_c,b_c;
uchar flag,fuhao;//flag±íê?ê?·?óD????·??ü°′??£?fuhao±í?÷°′??μ?ê?????????·?
//flag=1±íê?????·??ü°′??£?flag=0±íê?????·??ü??óD°′??£?
//fuhao=1?a?󷨣?fuhao=2?a??·¨£?fuhao=3?a3?·¨£?fuhao=4?a3y·¨?£
uchar code table[]={//????êy×?ê?è?êy×é
7,8,9,0,
4,5,6,0,
1,2,3,0,
0,0,0,0};
uchar code table1[]={ //?-′|àíoó??DD?üê?è???ê?×?±?μ?êy×é
7,8,9,0x2f-0x30, //7£?8£?9£???
4,5,6,0x2a-0x30, //4, 5, 6£??á
1,2,3,0x2d-0x30, //1, 2, 3£?£-
0x01-0x30,0,0x3d-0x30,0x2b-0x30//C£?0£?=£?£?
};
void delay(uchar z) // ?ó3ùoˉêy
{
uchar y;
for(z;z>0;z--)
   for(y=0;y<110;y++);
}
void write_com(uchar com) // D′??á?oˉêy
{
rs=0;
P0=com;    //com??á?????P0?ú
delay(5);lcden=1;delay(5); lcden=0;
}
void write_date(uchar date) // D′êy?Yoˉêy
{
rs=1; P0=date; delay(5);
lcden=1; delay(5); lcden=0;
}
void init() //3?ê??ˉ
{
    num=-1;
lcden=1; //ê1?üD?o??a??μ???
rw=0;
write_com(0x38); //8??£?2DD
delay(5); write_com(0x38); //8??£?2DD
delay(5); write_com(0x0c); //??ê??a£?1a±ê1?£?2?éá??*/
delay(1); write_com(0x06); //??á?·?ê?2?ò??? ???1a±êò?? è??
delay(1); write_com(0x80); //?ì2a?|D?o?
delay(1); write_com(0x01); //??ê??a£?1a±ê1?£?2?éá??
num_1=0;
i=0; j=0;
a=0;     //μúò???2?ó?????μ?êy
b=0;     //μú?t??2?ó?????μ?êy
c=0;
flag=0; //flag±íê?ê?·?óD·?o??ü°′??£?
fuhao=0; // fuhao±í?÷°′??μ?ê?????·?o?
}
void keyscan() // ?ü?ìé¨?è3ìDò
{
P3=0xfe;
if(P3!=0xfe)
{
    delay(20);// ?ó3ù20ms
    if(P3!=0xfe) {  temp=P3&0xf0;
     switch(temp)
     {
      case 0xe0:num=0;   break; //7
      case 0xd0:num=1;   break;  //8
      case 0xb0:num=2;   break; //9
      case 0x70:num=3;   break; //??
     }
    }   while(P3!=0xfe);
    if(num==0||num==1||num==2)//è?1?°′??μ?ê?'7','8'?ò'9
    {
        if(j!=0){write_com(0x01); j=0;  }
        if(flag==0)//??óD°′1y????·??ü
      { a=a*10+table[num];    } //°′??êy×?′?′¢μ?a
      else//è?1?°′1y????·??ü
      {    b=b*10+table[num];   }//°′??êy×?′?′¢μ?b
    }
    else//è?1?°′??μ?ê?'/'     3y·¨
    {
     flag=1;  //°′??????·?
     fuhao=4;//4±íê?3yo?ò?°′
    }
    i=table1[num];     //êy?Y??ê?×?×?±?
    write_date(0x30+i);//??ê?êy?Y?ò2ù×÷·?o?
}
P3=0xfd;
if(P3!=0xfd)
{
    delay(20);
    if(P3!=0xfd){  temp=P3&0xf0;
     switch(temp)
     {
      case 0xe0:num=4; break; //4
      case 0xd0:num=5; break; //5
      case 0xb0:num=6; break; //6
      case 0x70:num=7; break; //?á
     }
    }   while(P3!=0xfd);//μè′y°′?üêí·?
    if(num==4||num==5||num==6&&num!=7)//è?1?°′??μ?ê?'4','5'?ò'6'
    {
     if(j!=0){ write_com(0x01);  j=0;   }
        if(flag==0)//??óD°′1y????·??ü
     { a=a*10+table[num];     }
     else//è?1?°′1y????·??ü
     { b=b*10+table[num];   }
    }
    else//è?1?°′??μ?ê?'?á'
    {  flag=1;
       fuhao=3;//3±íê?3?o?ò?°′
    }
    i=table1[num];      //êy?Y??ê?×?×?±?
    write_date(0x30+i);//??ê?êy?Y?ò2ù×÷·?o?
}
P3=0xfb;
if(P3!=0xfb){  delay(20);
    if(P3!=0xfb) { temp=P3&0xf0;
     switch(temp)
     {
      case 0xe0:num=8;    break;  //1
      case 0xd0:num=9;    break;  //2
      case 0xb0:num=10;   break;  //3
      case 0x70:num=11;   break;  //-
     }
    }   while(P3!=0xfb);
    if(num==8||num==9||num==10)//è?1?°′??μ?ê?'1','2'?ò'3'
    {
     if(j!=0){ write_com(0x01);  j=0;  }
       if(flag==0)//??óD°′1y????·??ü
     { a=a*10+table[num];   }
     else//è?1?°′1y????·??ü
     { b=b*10+table[num]; }
    }
    else if(num==11)//è?1?°′??μ?ê?'-'
    {
     flag=1;
     fuhao=2;//2±íê???o?ò?°′
    }
    i=table1[num];  //êy?Y??ê?×?×?±?
    write_date(0x30+i);//??ê?êy?Y?ò2ù×÷·?o?
}
P3=0xf7;
if(P3!=0xf7){   delay(20);
    if(P3!=0xf7){ temp=P3&0xf0;
     switch(temp)
     {
      case 0xe0:num=12; break;  //??0?ü   
      case 0xd0:num=13; break;  //êy×?0   
      case 0xb0:num=14; break;  //μèóú?ü   
      case 0x70:num=15; break;  //?ó
     }           
  } while(P3!=0xf7);
    switch(num)
    {
     case 12:{write_com(0x01);a=0;b=0;flag=0;fuhao=0;}//°′??μ?ê?"??á?"
       break;
     case 13:{                //°′??μ?ê?"0"
        if(flag==0)//??óD°′1y????·??ü
        { a=a*10;  write_date(0x30);     P2=0;       }
        else if(flag>=1)//è?1?°′1y????·??ü
        {  b=b*10;   write_date(0x30);       }
       }     break;
     case 14:{j=1; //°′??μèóú?ü£??ù?Y????·?o???DD2?í?μ???ê?′|àí
            if(fuhao==1)    //?ó·¨????
      {
        write_com(0x80+0x4f);//°′??μèóú?ü£?1a±ê?°???áμú?tDD×?oóò?????ê?′|
              write_com(0x04);     //éè??′óoó×??°D′êy?Y£???D′íêò???êy?Y£?1a±êoóí?ò???
              c=a+b;
              while(c!=0){write_date(0x30+c%10); c=c/10;  }
              write_date(0x3d);     //?ùD′"="
              a=0;b=0;flag=0;fuhao=0;
            }
        else if(fuhao==2)  //??·¨????
        {
     write_com(0x80+0x4f);//1a±ê?°???áμú?tDD×?oóò?????ê?′|
              write_com(0x04);     //éè??′óoó×??°D′êy?Y£???D′íêò???êy?Y£?1a±êoóí?ò???(?a????àí?μ?3Dò2???£??é??ê?oíé???ò??ù)
              if(a-b>0)          c=a-b;
              else               c=b-a;
              while(c!=0) { write_date(0x30+c%10);c=c/10;  }
              if(a-b<0)   write_date(0x2d);
              write_date(0x3d);     //?ùD′"="           
              a=0;b=0;flag=0;fuhao=0;
            }
         else if(fuhao==3) //3?·¨????
     {write_com(0x80+0x4f);     write_com(0x04);
               c=a*b;
               while(c!=0) {write_date(0x30+c%10); c=c/10;       }
               write_date(0x3d);    a=0;b=0;flag=0;fuhao=0;
              }
          else if(fuhao==4)//3y·¨????
       {write_com(0x80+0x4f);
               write_com(0x04);
               i=0;
      if(b!=0)
      {
                c=(long)(((float)a/b)*1000);
                while(c!=0)
                 {
                    write_date(0x30+c%10);
                     c=c/10;
                 i++; if(i==3) write_date(0x2e);
                    }
                 if(a/b<=0)
        {
         if(i<=2)
         {
         
         if(i==1) write_date(0x30);
         write_date(0x2e);    //  .
         write_date(0x30);
         }
         
                   write_date(0x30);    //
       }
                write_date(0x3d);                              
                 a=0;b=0;flag=0;fuhao=0;
      }
      else
      {
       write_date('!');write_date('R');write_date('O');
       write_date('R');write_date('R');write_date('E');
      }
                  }
       }  break;
      case 15:{write_date(0x30+table1[num]);flag=1;fuhao=1;}     break; //?ó?ü  éè???ó±ê??fuhao=1;
    }
}//P2!=0xf7
}
main()
{
init();  //?μí33?ê??ˉ
while(1)
{
    keyscan();//?üé¨?è
}
}


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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 男女污污网站 | 国产剧情久久 | 欧美一区二区久久 | 一级毛片免费完整视频 | 亚洲精品一区国语对白 | 日韩欧美精品一区 | 狠狠做六月爱婷婷综合aⅴ 国产精品视频网 | 亚洲色图在线观看 | 欧美日产国产成人免费图片 | 欧美精品一 | 午夜免费观看 | 国产亚洲精品精品国产亚洲综合 | 欧美一区二区在线 | 久久9精品 | 亚洲精品一区二区 | 久久精品国产99国产精品 | 午夜欧美a级理论片915影院 | 91污在线 | 国产一区欧美一区 | av一二三区| 久久专区| 亚洲精品高清视频在线观看 | 中文字幕日韩欧美 | 97精品国产一区二区三区 | 日韩在线观看视频一区 | 精品久久久久久久久久久久久 | 欧美色综合网 | 国产精品自产拍 | 国产精品一区二区三区在线 | 天天草夜夜骑 | 日韩欧美一区在线 | 欧美精品国产精品 | 不卡av在线 | 欧美11一13sex性hd | 成人免费观看男女羞羞视频 | 亚洲综合色自拍一区 | 亚洲视频一区 | 国产99久久| 成人av免费在线观看 | 久久久久久综合 | 色在线免费 |