⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main-last.c

📁 这是单片机驱动液晶显示器12864和键盘的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
//              hour--;
              dis_add_two_num(0x90,hour);
              wrc(0x90);
            }
            else if(acdata==18)
            {
              wrc(you_on);
              if(min==0)
              {
                min=59;
              }
              else
              {
                min--;
              }
//              min--;
              dis_add_two_num(0x92,min);
              wrc(0x92);
            
            }
            else if(acdata==20)
            {
              wrc(you_on);
              if(sed==0)
              {
                sed=59;
              }
              else
              {
                sed--;
              }
//              sed--;
              dis_add_two_num(0x94,sed);
              wrc(0x94);
            }
            break;
          }  
          case 3://第三页
          {
            wrc(0x90);
            wrc(you_on);
            if(motor_time>1)
            {
              motor_time--;
              dis_add_two_num(0x90,motor_time);
              wrc(0x90);
            }
            
            break;
          }
      }
      break;
    }
    case 11:   //第11个键按下 #define up    11
    {
//      xiu=0;    //不能修改 要set一下才能修改
    
      switch(page)
      {
        case 1://在第一页
        {
          if(acdata<=7)      //在第一行
          {
            add(4,(acdata+1));
    //        wrc(acdata);
          }
          else if(acdata<=15)   //在第三行
          {
    //        wrc(acdata+0x08);
            add(2,(acdata-7));
          }
          else if(acdata<=23)   //在第二行
          {
    //        wrc(acdata-0x10);
            add(1,(acdata-15));
          }
          else if(acdata<=31)   //在第四行
          {
    //        wrc(acdata-0x10);
            add(3,(acdata-23));
          }
          break;
        }
        case 2://第二页
        {
            acdata=read_ac();
            if(acdata==16)
            {
              wrc(you_on);
              if(hour==24)
              {
                hour=0;
              }
              else
              {
                hour++;
              }
//              hour--;
              dis_add_two_num(0x90,hour);
              wrc(0x90);
            }
            else if(acdata==18)
            {
              wrc(you_on);
              if(min==59)
              {
                min=0;
              }
              else
              {
                min++;
              }
//              min--;
              dis_add_two_num(0x92,min);
              wrc(0x92);
            
            }
            else if(acdata==20)
            {
              wrc(you_on);
              if(sed==59)
              {
                sed=0;
              }
              else
              {
                sed++;
              }
//              sed--;
              dis_add_two_num(0x94,sed);
              wrc(0x94);
            }
            break;
          } 
        /*
        {
            acdata=read_ac();
            if(acdata==16)
            {
              wrc(you_on);
              hour++;
              dis_add_two_num(0x90,hour);
              wrc(0x90);
            }
            else if(acdata==18)
            {
              wrc(you_on);
              min++;
              dis_add_two_num(0x92,min);
              wrc(0x92);
            
            }
            else if(acdata==20)
            {
              wrc(you_on);
//              hour=hour-1;
              sed++;
              dis_add_two_num(0x94,sed);
              wrc(0x94);
            }
            break;
        }  */
        case 3://第三页
        {
          wrc(you_on);
          wrc(0x90);
          motor_time++;
          dis_add_two_num(0x90,motor_time);
          wrc(0x90);
          break;
        }
      }
    
    break;
    
    
    }
    case 12:   //第12个键按下 #define right 12
    {
//      xiu=0;    //不能修改 要set一下才能修改
      switch(page)
      {
        case 1://在第一页
        {
          /*
          if(acdata==0)
          {
            add(1,2);
          }*/
          //不判断行,循环移动,但该液晶地址不连续
          //不推荐
          
          
          //要判断行,且在行内移动
          if(acdata<=6)   //在第一行
          {
            add(1,(acdata+2));
    //        wrc(acdata+0x90);
          }
          else if(acdata==7)//第一行最后一列
          {
            add(1,8);
          }
              else if(acdata<=14)    //在第三行
              {
                add(3,(acdata-6));
        //        wrc(acdata+0x10);
              }
              else if(acdata==15)
              {
                add(3,8);
              }
              else if(acdata<=22)    //在第二行
              {
                add(2,(acdata-14));
        //        wrc(acdata-0x08);
              }
              else if(acdata==23)
              {
                add(2,8);
              }
              else if(acdata<=30)   //在第四行
              {
                add(4,(acdata-22));
        //        wrc(acdata-23+0x80);
              }
              break;
        
        /*
          acdata =read_ac();
          hang=acdata/8;
          acdata=acdata%16;
          lie=acdata%8;
          if(lie==0)
          {
            add(hang+1,2);
          }
          else if(lie==7)
          {
            add(hang+1,8);
          }
          else
          {
            add(hang+1,lie+2);
          }
          break;
          */
        }
        case 2://第二页
        {
          acdata=read_ac();
          if(acdata==16)
          {
            wrc(0x92);
            wrc(you_on);
          }
          else if(acdata==18)
          {
            wrc(0x94);
            wrc(you_on);
          }
          else
          {
            wrc(0x94);
            wrc(you_on);
          }
          break;
        }  
        case 3://第三页
        {
          break;
        }
      }
    
    
    
    
    
    

    /*
      if(acdata<7)      //在第一行最后一个之前
      {
//        add(4,(acdata+1));
        wrc(0x80+acdata+1);
      }
      else if(acdata<15)   //在第三行最后一个之前
      {
        wrc(0x80+acdata+1);
//        add(2,(acdata-7));
      }
      else if(acdata<23)   //在第二行最后一个之前
      {
        wrc(0x80+acdata+1);
//        add(1,(acdata-15));
      }
      else if(acdata<31)   //在第四行最后一个之前
      {
        wrc(0x80+acdata+1);
//        add(3,(acdata-23));
      }
      else
      {
        add(4,4);
      }
      */
      break;
    }
    case 13:   //第13个键按下 #define left  13
    {
//      xiu=0;    //不能修改 要set一下才能修改
      
      switch(page)
        {
          case 1://在第一页
          {
            if(acdata==0)//每行第一个特殊处理
            {
              add(1,1);
            }
            else if(acdata<=7)   //在第一行
              {
                add(1,(acdata));
        //        wrc(acdata+0x90);
              }
              else if(acdata==8)//在第三行
              {
                add(3,1);
              }
              else if(acdata<=15)    //在第三行
              {
                add(3,(acdata-8));
        //        wrc(acdata+0x10);
              }
              else if(acdata==16)
              {
                add(2,1);
              }
              else if(acdata<=23)    //在第二行
              {
                add(2,(acdata-16));
        //        wrc(acdata-0x08);
              }
              else if(acdata==24)
              {
                add(4,1);
              }
              else if(acdata<=31)   //在第四行
              {
                add(4,(acdata-24));
        //        wrc(acdata-23+0x80);
              }
              break;
          /*
              hang=acdata/8;
              acdata=acdata%16;
              lie=acdata%8;
              if(lie==0)
              {
                add(hang+1,1);
              }
              else if(lie==7)
              {
                add(hang+1,7);
              }
              else
              {
                add(hang+1,lie);
              }
              break;
              */
          }
          case 2://第二页
          {
            acdata=read_ac();
            if(acdata==20)
            {
              wrc(0x92);
              wrc(you_on);
            }
            else if(acdata==18)
            {
              wrc(0x90);
              wrc(you_on);
            }
            else
            {
              wrc(0x90);
              wrc(you_on);
            }
            break;
          }  
          case 3://第三页
          {
            break;
          }
        }
        break;
    }    
    case set://14//第14个键按下 #define into set  14
    {
      switch(page)
        {
          case 1://在第一页
          {
            IE2 &=(~BTIE);
            wrc(0x80);
             wrc(0x0f);
             break;
          }
          case 2://第二页
          {
//            wrc(dis_on);
//            page2();
            break;
          }  
          case 3://第三页
          {
            break;
          }
        }
        break;
    }
    case ok://15//第15个键按下 #define ok    15
    {
      switch(page)
      {
        case 1:
        {
          acdata=read_ac();//读当前游标地址
          if(acdata<=1)
          {
            page2();
            wrc(0x90);
            wrc(you_on);
          }
          else if(acdata>15)
            {
              if(acdata<18)
              page3();
              wrc(0x90);
              wrc(you_on);
            }
          break;
        }
        case 2:
        {
          IE2 |=BTIE;
          wrc(dis_on);
          page1();
          break;
        }
        case 3:
        {
          IE2 |=BTIE;
          wrc(dis_on);
          page1();
          break;
        }
      }
    
    
    
    /*
      if(page==1)
      {
        acdata=read_ac();//读当前游标地址
        if(acdata<=1)
        {
          page2();
        }
//        else if(acdata)
      }
      else if(page==2)
      {
        page1();
        
      }
      else if(page==3)
      {
        page1();
      }
    }*/
    break;
    }
}
}



void led_front_left()          //前左灯亮        p26
{
  P2DIR |=BIT6;
  P2OUT |=BIT6;
  P2OUT &=(~BIT6);
  delay(100);
  P2OUT |=BIT6;
}
void led_front_right()         //前右灯亮        p25
{
  P2DIR |=BIT5;
  P2OUT |=BIT5;
  P2OUT &=(~BIT5);
  delay(100);
  P2OUT |=BIT5;
  
}
void led_back_left()           //后左灯亮        p24
{
  P2DIR |=BIT4;
  P2OUT |=BIT4;
  P2OUT &=(~BIT4);
  delay(100);
  P2OUT |=(BIT4);
}
void led_back_right()          //后右灯亮        p23
{
  P2DIR |=BIT3;
  P2OUT |=BIT3;
  P2OUT &=(~BIT3);
  delay(100);
  P2OUT |=(BIT3);
}
void speaker()                 //蜂鸣器叫一声    p22
{
  P2DIR |=BIT2;
  P2OUT &=(~BIT2);
  P2OUT |=BIT2;
  delay(100);
  P2OUT &=(~BIT2);
//  P2DIR |=(BIT2);
}




⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -