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

📄 main.c

📁 12864显示
💻 C
字号:
/***********************************************
程序功能:扫描4X4键盘并将键值在1602液晶上显示
------------------------------------------------
跳线设置:将跳线座J3上的短路帽拔下
------------------------------------------------
测试说明:按动K1~K16按键,观察液晶显示
************************************************/
#include <msp430x24x.h>
#include "Keypad.c"
#include "FM12864.c"


unsigned char txt[]={"我们"};
//引用外部变量的声明    
extern unsigned char key_val;         
extern unsigned char key_Flag; 

uchar disbuf[]={0,0,0,0};

//存放健值
void  savekey()
            {disbuf[3]=disbuf[2];
            disbuf[2]=disbuf[1];
            disbuf[1]=disbuf[0];}
//显示函数
void display()
           {
             Disp_HZ(0x90,disbuf,2);
           }

//    清除键程序
void  clearbuf()
      { uint i;
       for(i=0;i<4;i++)
       disbuf[i]=0;
       display();
       }


//步进值为加1的调整程序
void  add1mA()
      {
        disbuf[0]++;
        if(disbuf[0]==10)
           {
           disbuf[0]=0;disbuf[1]++;
           if(disbuf[1]==10)
              {
               disbuf[1]=0;disbuf[2]++;
               if(disbuf[2]==10)
                  {disbuf[2]=0;disbuf[3]++;
                  if(disbuf[3]==10)
                    {disbuf[3]=0;}
                   }
               }
            }

      }


//步进值为减1mA的调整程序
void sub1mA()
    {
        disbuf[0]--;
        if(disbuf[0]==-1)
           {
           disbuf[0]=9;disbuf[1]--;
           if(disbuf[1]==-1)
              {
               disbuf[1]=9;disbuf[2]--;
               if(disbuf[2]==-1)
                  {disbuf[2]=9;disbuf[3]--;
                  if(disbuf[3]==0)
                    {disbuf[3]=0;}
                   }
               }
            }
       display();
      }


//步进值为加10mA的调整程序
void  add10mA()
      {
        disbuf[1]++;
        if(disbuf[1]==10)
           {
           disbuf[1]=0;disbuf[2]++;
           if(disbuf[2]==10)
              {
               disbuf[2]=0;disbuf[3]++;
               if(disbuf[3]==10)
                  {disbuf[3]=0;}

               }
            }
        display();
      }


//步进值为减10mA的调整程序
void  sub10mA()
      {
        disbuf[1]--;
        if(disbuf[1]==-1)
           {
           disbuf[1]=9;disbuf[2]--;
           if(disbuf[2]==-1)
              {
               disbuf[2]=9;disbuf[3]--;
               if(disbuf[3]==0)
                  {disbuf[3]=0;}

               }
            }
       display();
      }



/********************主函数********************/
void main(void)
{
    
    
    WDTCTL = WDTPW + WDTHOLD;       //关闭看门狗
    Init_Keypad();                  //初始化键盘端口
    LCDInit();
  LCDWriteAddr(0x30);      
  Disp_HZ(0x80,txt,2);
  display();

    while(1)
    {
        Key_Event();
    
        if(key_Flag == 1)
        {
            key_Flag = 0;
            if(key_val<10){savekey();disbuf[0]=key_val;display();}
               else switch (key_val)
                     {case 10:  clearbuf();display();break;
                      //case 11:  comfirm(); display();break;
                      case 12:  add1mA(); display();break;
                      case 13:  sub1mA(); display();break;
                      case 14:  add10mA();display();break;
                      case 15:  sub10mA();display();break;
                      default: break;}
      
            
            
            
            
            //显示十位
            //temp = key_val / 10;
            //if(temp)
              //  Disp1Char(6,1,0x30+temp);  //数字的ASCII码值等于其本身数值加上0x30
           // else
               // Disp1Char(6,1,0x20);       //0x20是空格对应的ASCII码
            //显示个位
           // temp = key_val % 10;
            //Disp1Char(7,1,0x30+temp);  
            
           
            
        }
    }
}

⌨️ 快捷键说明

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