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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

LCD12864簡易計算器

[復制鏈接]
跳轉到指定樓層
樓主
ID:995364 發表于 2021-12-21 19:29 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
#include<reg52.h>
#define K P2

typedef unsigned int u16;         
typedef unsigned char u8;

sbit RS = P1^0;
sbit RW = P1^1;
sbit E =  P1^2;


void delay(int i)
{
while(i--);

}

int a;
void AJ()        //按鍵函數
{

int b=0;
K=0x0f;

  if(K!=0x0f)
    {
           delay(1000);
           if(K!=0x0f)
             {
                  switch(K)
                  {
                    case 0x07: a=0;break;
                        case 0x0b: a=1;break;
                        case 0x0d: a=2;break;
                        case 0x0e: a=3;break;
                  }
                 }
                    K=0xf0;
                   if(K!=0xf0)
            {
                   delay(1000);
                  if(K!=0xf0)
                    {
                          switch(K)
                              {
                            case 0x70: a=a;break;
                                 case 0xb0: a=a+4;break;
                                case 0xd0: a=a+8;break;
                                case 0xe0: a=a+12;break;
                                   }
                       }
                         }                           
               while(b<50&&K!=0xf0);
                     {
                         delay(100);
                         b++;
                     }
           }
        }




u8 code  SHU[]={0x31,0x32,0x33,0x2b,0x34,0x35,0x36,0x2d,0x37,0x38,0x39,0x2a,0x2f,0x30,0x3d};
/*
{  1  2  3    +
   4  5  6    -
   7  8  9    *
   /  0  =   
}
*/
//u8 code        FU[]={0x2b,0x2d,0x2a,0x2f};                // + - * /





/*LCD12864程序函數*/
void LCD12864_SetPos(unsigned char x,unsigned char y) ;
void LCD12864_WDAT(unsigned char dat);
void LCD12864_WCMD(unsigned char cmd);
void LCD12864_BusyCheck();
void LCD12846_DisHZ_Str(unsigned char *s);

void  YX()
  {
  char m[100];     //m為第一個數
char n[100];         //n為第二個數
      int i,j,b=0,c=0;
          int q,h;
          int d=-1;
          int s1=0,s2=0;
   for(i=2;i>1;i++)
     {
          LCD12864_SetPos(0,b);
          b++;
          if(a)
           AJ();
           d=a;
           if(d!=-1)
           {
           LCD12864_WDAT(SHU[a]);
           if(a==15)
           {
                     for(;s1>0;s1--)
                  {
                    q=q*10+m[s1-1];
                  }
                  for(;s2>0;s2--)
                  {
                  h=h*10+n[s2-1];
                  }
                  if(j==3)
                  {
                  LCD12864_WDAT(SHU[14]);
                   LCD12864_WDAT(q+h);
                  }
                   else if(j==7)
                   {
                   LCD12864_WDAT(SHU[14]);
                   LCD12864_WDAT(q-h);
                   }
                              else if(j==11)
                   {
                   LCD12864_WDAT(SHU[14]);
                   LCD12864_WDAT(q*h);
                   }
                              else if(j==12)
                   {
                   LCD12864_WDAT(SHU[14]);
                   LCD12864_WDAT(q/h);
                   }
           }
           if(a!=3&&a!=7&&a!=11&&a!=12)
           {
                   m[i-2]=a;
                s1++;
           }
           else
           {
           c=1;
           i=2;
           j=a;
           }
            if(c==1)
                        {
                        n[i-2]=a;
                        s2++;
                        }
                       
                        }


           a=16;
           if(a==15)
           {
           LCD12864_WCMD(0x0c);
               LCD12864_WCMD(0x30);
           }
        delay(10000);
        d=-1;
        }
         }
void main()
{


           LCD12864_WCMD(0x0c);
        LCD12864_WCMD(0x30);

//    LCD12846_DisHZ_Str("歡迎使用科學計算器");
//   LCD12864_SetPos(0,0);

          YX();
}
//        LCD12864_WCMD(0x0c);
//        LCD12864_WCMD(0x30);
//  LCD12864_SetPos(0,b);
//        b++;
/*            AJ();
           m[j]=a;
           j++;
          //for(i=1;i>1;i++)
           LCD12864_WDAT(SHU[a]);
           delay(1000);
*/

//                   AJ();
//                   LCD12864_SetPos(0,0+b);
//                b++;
//                LCD12864_WDAT(SHU[a]);
//                if(a==14)
//                {
//                LCD12864_SetPos(1,0);
         





        /*LCD12864_WDAT(SHU[0]);
        LCD12864_WDAT(0x04);
        LCD12864_WDAT(0x05 + '0'); //'0' = 48 = 0x30
        LCD12864_WDAT(0x06);
        LCD12864_SetPos(1,0);
        LCD12846_DisHZ_Str("李朝賀");
        */
/*        while(1)
        {
        if(a==15)
        break;       
        }
  */





void LCD12864_BusyCheck()
{
        unsigned char temp;
        P0 = 0xff;
        RS = 0;
        RW = 1;
        while(1)
        {
                E = 1;
                temp = P0;
                E = 0;
                if((temp & 0x80) == 0)
                        break;
        }        
}

void LCD12864_WCMD(unsigned char cmd)
{
        LCD12864_BusyCheck();
        RS = 0;
        RW = 0;
        P0 = cmd;
        E = 1;
        E = 0;
}

void LCD12864_WDAT(unsigned char dat)
{
        LCD12864_BusyCheck();
        RS = 1;
        RW = 0;
        P0 = dat;
        E = 1;
        E = 0;
}

void LCD12864_SetPos(unsigned char x,unsigned char y)
{
        unsigned char pos;
        switch(x)
        {
                case 0 : x = 0x80;break;
                case 1 : x = 0x90;break;
                case 2 : x = 0x88;break;
                case 3 : x = 0x98;break;
                default:break;
        }
        pos = x + y; //x范圍0-3  y范圍0-7
        LCD12864_WCMD(pos);
}

void LCD12846_DisHZ_Str(unsigned char *s)
{
        while(*s)
                LCD12864_WDAT(*s++);
}

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

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线视频a| 国产精品欧美一区二区 | 国产成人免费网站 | 中文字幕人成乱码在线观看 | 日韩av在线中文字幕 | 日本一区二区三区免费观看 | 91麻豆精品一区二区三区 | 亚洲毛片网站 | 日韩中文字幕 | 黄色毛片大全 | 蜜臀网| 亚洲精品在线视频 | 不卡视频一区二区三区 | 久久综合一区二区三区 | xnxx 日本免费 | 日韩欧美视频在线 | 精品美女在线观看视频在线观看 | 久久这里有精品 | 欧美9999| 在线观看免费黄色片 | 欧美日一区二区 | 国产成人免费视频网站高清观看视频 | 精一区二区 | 亚洲精品av在线 | 久久久久久亚洲精品 | 亚洲天堂av在线 | 欧美三级免费观看 | 精品二区视频 | 日韩中文字幕高清 | 日韩精品一区二区三区 | 超碰导航| 午夜视频在线免费观看 | 亚洲日韩中文字幕 | 久草色播| 亚洲国产高清高潮精品美女 | 极品的亚洲 | 在线观看www视频 | 国产小视频自拍 | 一级二级三级在线观看 | av一区二区三区四区 | 91高清视频 |