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

📄 main.c

📁 基于MSP430F447的LCD控制程序
💻 C
字号:
#include <math.h>
#include  <msp430x44x.h>
void number_show(float val,char digit);
char* LCD = LCDMEM;
const char show_Num[10] =
{
  0xD7,  // "0"    LCD segments a+b+c+d+e+f
  0x06,  // "1"    LCD segments b+c
  0xE3,  // "2"    LCD segments a+b+d+e+g
  0xA7,  // "3"    LCD segments a+b+c+d+g
  0x36,  // "4"    LCD segments b+c+f+g
  0xB5,  // "5"    LCD segments a+c+d+f+g
  0xF5,  // "6"    LCD segments a+c+d+e+f+g
  0x07,  // "7"    LCD segments a+b+c
  0xF7,  // "8"    LCD segments a+b+c+d+e+f+g
  0x37   // "9"    LCD segments a+b+c+f+g
};
void main( void )
{
  float main_val=23.55;
  char main_digit=3;
  number_show(23.55,3);
  while(1);
}
//在五个数字显示处显示digit位有效数字的val
void number_show(float val,char digit){
  char *s,*mid_s,i,mid_Num,mid_length,length=1;
  float val2;
  long number;
  s=(char *)0x0300;
  mid_s=s;
  val2=val;                
  while(val2>=10){                               //计算小数点前的数字位数
    val2=val2/10;
    length++;
  }
  mid_length=length;                             //中间变量存取长度
  if(length==1){                                 //放置小数点前面数字
    *s++=val;
  }
  else{
    number=val;
    do{
      length--;
      mid_Num=number/(pow(10,length));
      number=number-mid_Num*(pow(10,length));
      *s++=mid_Num;
    }while(length!=0);
  }
  val=val-(long)val;                             //把小数点后面数字放入数组中
  length=mid_length;
  for(i=0;i<digit-length;i++){
    mid_Num=val*10;
    *s++=mid_Num;
    val=val*10-mid_Num;
  }
  if(val>=0.5){                                  //四舍五入方法
    s--;
    (*s)++;
  }
  for(i=1;i<=digit;i++){                          //通过指针把浮点型数字显示出来
    if(i==length){                               //小数点放置处     
      LCD[i+1]=show_Num[(*mid_s++)]|0x08;
    }
    else
      LCD[i+1]=show_Num[(*mid_s++)];
  }
}

⌨️ 快捷键说明

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