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

📄 main.c

📁 基于MSP430的长度测量 包括16*2液晶程序
💻 C
字号:
#include "KEY.h"
#include "EEPROM.h"
#include "LCD.h"
#include "AD.h"
#include "stdio.h"

unsigned int Data_Ram[46]={767,1074,1459,1812,2047,2367,2591,2767,2923,3055,3163,3258,3327,3402,3455,3502,3545,3579,3610,3630,3661,3690,3706,3722,3738,3743,3755,3770,3775,3786,3791,3802,3805,3812,3818,3820,3823,3827,3834,3836,3839,3843,3845,3847,3849,3851};
unsigned int Data_Rom[46]={767,1074,1459,1812,2047,2367,2591,2767,2923,3055,3163,3258,3327,3402,3455,3502,3545,3579,3610,3630,3661,3690,3706,3722,3738,3743,3755,3770,3775,3786,3791,3802,3805,3812,3818,3820,3823,3827,3834,3836,3839,3843,3845,3847,3849,3851};
char buf[Len*2];//buf1[Len*2]
char Flag=0;
void start ()
{
  int Ave,Start_Position=0;
  char bufle[20];
  WDTCTL=WDTPW+WDTHOLD; 
  P1DIR|=0X00;
  P3DIR|=0x07;
  P5DIR|=BIT1+BIT2;
  lcd_init();
  //IntToChar(Data_Ram,buf,Len);  
  //send_pages(buf);
  //read_pages(buf1);
  //CharToInt(buf1,Data_Ram1,Len*2);
  //while(1){}
  while(1)
  {
    lcd_clr();
    lcd_moveto(0);
    lcd_string("*Test");
    lcd_moveto(20);
    lcd_string("*Adjustment");
    Delay_Key();
    Delay_Key();
    Delay_Key();
    Delay_Key();
    Delay_Key();
    if((P1IN&BIT0)==0){
      Delay_Key();
      if((P1IN&BIT0)==0){
        while(!(P1IN&BIT0));
        lcd_clr();
        read_pages(buf);
        CharToInt(buf,Data_Ram,Len*2);
        while(1){
          measure();
          if((P1IN&BIT0)==0){
            Delay_Key();
            if((P1IN&BIT0)==0){
               while(!(P1IN&BIT0));
               break;
            }
          }
          if((P1IN&BIT1)==0){
            Delay_Key();
            if((P1IN&BIT1)==0){
               while(!(P1IN&BIT1));
               copy(Data_Ram,Data_Rom,Len);
               IntToChar(Data_Rom,buf,Len);
               send_pages(buf);
            }
          } 
        }
      }
    }
    if((P1IN&BIT1)==0){
      Delay_Key();
      if((P1IN&BIT1)==0){
        while(!(P1IN&BIT1));
        lcd_clr();
        Flag=0;Start_Position=0;
        while(1){
          Ave=averg();
          sprintf(bufle,"%s%d","Adjust:",Ave);
          lcd_moveto(0);
          lcd_string(bufle);
          sprintf(bufle,"%s%d%s","Start:",Start_Position,".00MM");
          lcd_moveto(20);
          lcd_string(bufle);          
          if((P1IN&BIT0)==0){
            Delay_Key();
            if((P1IN&BIT0)==0){
               while(!(P1IN&BIT0));
               if(Flag==0){Start_Position+=10;}
               else {Start_Position+=2;}
               if(Start_Position>90){Start_Position=0;Flag=0;}
               sprintf(bufle,"%s","  ");
               lcd_moveto(34);
               lcd_string(bufle);
            }
          }
          if((P1IN&BIT1)==0){
            Delay_Key();
            if((P1IN&BIT1)==0){
               while(!(P1IN&BIT1));
               if(Start_Position==90){
                 Data_Ram[45]=Ave;
                 IntToChar(Data_Ram,buf,Len);
                 send_pages(buf);
                 break;
               }
               else
               {
                  Flag=1;
                  Data_Ram[Start_Position>>1]=Ave;
                  sprintf(bufle,"%s","OK");
                  lcd_moveto(34);
                  lcd_string(bufle);
               }
            }
          }

        }
      }
    } 
  }
}
void Delay_Key(void)
{
  unsigned char i,j=10;
  while(j--)
  {
  i=230;
  while(i--);
  }
}
void IntToChar (unsigned int *DATA,char *buf,unsigned int int_len)//int 的个数
{ 
  unsigned int j=0;
  for(unsigned int i=0;i<int_len;i++)
  {
    buf[j]=(unsigned char)(DATA[i]>>8);
    buf[++j]=(unsigned char)(DATA[i]&0x00ff);
    j++;
  }
}
void CharToInt (char *buf,unsigned int *DATA,unsigned int char_len)//char 的个数
{
  unsigned int j=0;
  for(unsigned int i=0;i<char_len;i++)
  {
    DATA[j]=((unsigned int)buf[i])<<8;
    DATA[j]|=(unsigned int)buf[++i];
    j++;
  }
}
void copy (unsigned int *to,unsigned int *from,unsigned int len)
{
  for(unsigned int i=0;i<len;i++)
  {
   to[i]=from[i];
  }
}
void main (void)
{
    start ();
}

⌨️ 快捷键说明

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