📄 lcd.c
字号:
#include <msp430x42x.h>
#include "lcd.h"
// LCD 定义
//h为小数点控制
#define h 0x80
#define e 0x40 // AAAA
#define g 0x20 // F B
#define f 0x10 // F B
#define d 0x08 // GGGG
#define c 0x04 // E C
#define b 0x02 // E C
#define a 0x01 // DDDD h
const char LCD_Tab[] = {
a + b + c + d + e + f, // 显示 "0"
b + c, // 显示 "1"
a + b + d + e + g, // 显示 "2"
a + b + c + d + g, // 显示 "3"
b + c + f + g, // 显示 "4"
a + c + d + f +g, // 显示 "5"
a + c + d + e + f + g, // 显示 "6"
a + b + c, // 显示 "7"
a + b + c + d + e + f + g, // 显示 "8"
a + b + c + d + f + g, // 显示 "9"
0x00 // 显示 黑
};
#undef a
#undef b
#undef c
#undef d
#undef e
#undef f
#undef g
int procData(char *pBuf,int value,int *neg)
{
int len = 0;
int temp;
//数据是否为负
if(value < 0)
{
value = -value;
*neg = 1;
}
//取出小数部分
temp = (value & 0x011);
//小数处理
switch(temp)
{
case 0x00:
{
//小数部分为0
pBuf[0] = 0;
pBuf[1] = 0;
break;
}
case 0x01:
{
//小数部分为0.25
pBuf[0] = 5;
pBuf[1] = 2;
break;
}
case 0x10:
{
//小数部分为0.5
pBuf[0] = 0;
pBuf[1] = 5;
break;
}
case 0x11:
{
//小数部分为0.75
pBuf[0] = 5;
pBuf[1] = 7;
break;
}
}
//小数的长度为2位
len += 2;
//整数部分处理
value >>= 2;
temp = value;
//最大的处理范围为白位数
if(temp >= 100)
{
//整数有3位数
len += 3;
temp = value / 100;
//百位
pBuf[4] =temp;
//十位处理
temp = (value - (value / 100) * 100) / 10;
pBuf[3] =temp;
//个位处理
temp = value - pBuf[4] * 100 - pBuf[3] * 10;
pBuf[2] = temp;
}
else if((temp >= 10) && (temp < 100))
{
//整数有2位数
len += 2;
//十位处理
temp = value / 10;
pBuf[3] =temp;
//个位处理
temp = value - pBuf[3] * 10;
pBuf[2] = temp;
}
else if(temp < 10)
{
//整数有1位数
len += 1;
pBuf[2] = value;
}
//返回长度信息
return len;
}
void dispData(char *pBuf,int len,int neg)
{
int i;
int temp;
//指向LCD显示存储器
char *pLCD = (char *)&LCDM6;
//显示小数
temp = pBuf[0];
*pLCD = LCD_Tab[temp];
//指针移动
pLCD += 1;
temp = pBuf[1];
//显示数据并显示小数点
*pLCD = LCD_Tab[temp] | h;
//指针移动
pLCD += 1;
//小数占2位
len -= 2;
//显示整数
for(i = 0;i < len;i++)
{
*pLCD = pBuf[2 + i];
pLCD += 1;
}
//负号处理
if(neg == 1)
{
//显示"-"
LCDM4 |= 0x40;
}
else
{
//不显示"-"
LCDM4 &= ~0x40;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -