📄 main.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 + -