📄 lcd_display.c
字号:
#include "msp430x42x.h"
/*---宏定义,数码管各段对应的比特位,更换硬件只要更改以下数行---*/
#define d 0x01 // AAAA
#define g 0x02 // F B
#define b 0x04 // F B
#define a 0x08 // GGGG
#define DP 0x10 // E C
#define e 0x20 // E C
#define f 0x40 // DDDD DP
#define c 0x80
#define NEG 0x02 //负号
/*-----------有宏定义生成段码表-------------------------------*/
const char LCD_Tab[] = {
a + b + c + d + e + f, // Displays "0"
b + c, // Displays "1"
a + b + d + e + g, // Displays "2"
a + b + c + d + g, // Displays "3"
b + c + f + g, // Displays "4"
a + c + d + f +g, // Displays "5"
a + c + d + e + f + g, // Displays "6"
a + b + c, // Displays "7"
a + b + c + d + e + f + g, // Displays "8"
a + b + c + d + f + g // Displays "9"
};
#undef a
#undef b
#undef c
#undef d
#undef e
#undef f
#undef g
//名 称:LCD_DisplayDigit()
//功 能:在LCD上任意位置显示一个数字
//入口参数:Digit: 待显示数字(0~9)
// Location: 显示位置 从左至右对应76543210
//出口参数:无
//说 明:调用该函数不影响LCD其它位的显示
//范 例:LCD_DisplayDigit(3,0); 在第一位(右侧最低位)显示3
// LCD_DisplayDigit(2,1); 在第二位显示2
void LCD_DisplayDigit(char Digit,char Location)
{
char DigitSeg; //存放字形笔划的变量
char *pLCD; //存放LCD显存指针的变量
DigitSeg=LCD_Tab[Digit]; //得到待显示数字的字形笔划
pLCD=(char *)&LCDM1; //获得LCDM1的地址
pLCD[Location]=DigitSeg; //在LCDM1之后Location个单元显示出数字
}
//名 称:LCD_DisplayNumber()
//功 能:在LCD上显示一个正整数
//入口参数:Number(待显示数字0~65535)
//出口参数:无
void LCD_DisplayNumber(int Number)
{
char *pLCD=(char *)&LCDM1; //存放LCD显存指针的变量并初始化
char DispBuff[5]; //存放数字拆分结果的数组
char i; //循环变量
for(i=0;i<5;i++)
{
DispBuff[i]=Number%10; //拆分数字,取余
Number/=10; //拆分数字,除10
}
for(i=4;i>0;i--) //从最高位开始消隐无效0
{
if(DispBuff[i]==0) DispBuff[i]=255;//从最高位开始,遇到0替换成255
else break; //直到第一个有效数字为止
}
for(i=0;i<5;i++)
{
if(DispBuff[i]==255) pLCD[i]=0; //若被消隐,则清除该位
else LCD_DisplayDigit(DispBuff[i],i);//否则依次显示拆分后的各位数字
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -