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

📄 lcd_display.c

📁 液晶是常用的显示器
💻 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 + -