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

📄 lcdm.c

📁 msp430液晶显示
💻 C
字号:
#include "chip.h"
#include "st7565.h"
#include "lcdm.h"
#include "asc16dot.h"

void InitLCDM(void)
{
 InitLCMDPhy();            //port for A0,CS initialized
 LCDMdelay(1000);
 RST_RELEASE;              //release reset control signal
 LCDMdelay(2000);
 DisplayOff();             //close display
 /******** Optinal **********/
 WrLCMComd(SCRN_NORMAL);   //Normal display mode
 WrLCMComd(BIAS_SET1);     //LCD bias setting
 WrLCMComd(ADC_NORMAL);    //LCD ADC setting
 WrLCMComd(COM_REVERS);    //LCD Com setting
// WrLCMComd(COM_NORMAL);
 WrLCMComd(BOOST_REG | BOOST_ON | VREG_ON | VFOL_ON);
 LCDMdelay(5000);          //Waiting for power up

 WrLCMComd(BOOST_SEL);             //Boost ratio 2x,3x,4x
 WrLCMComd(BOOST_234X);
 
 WrLCMComd(EVOL_MODE | 0x00); //LCD Electronic Volumn
 WrLCMComd(BRIGHTNESS);    //defalut contrast
 ClrScr();                 //clear LCM DDRAM
 DisplayOn();              //screen on
}

void SetPage(unsigned char nPage)
{  
   WrLCMComd(SET_PAGE|nPage);
}

void SetColumn(unsigned char y)
{
  WrLCMComd(SET_COLL | (y & 0x0f));       //column high 4-bit
  WrLCMComd(SET_COLH | ((y & 0xf0)>>4));  //column low  4-bit
}

void DisplayOn(void)      //turn LCM screen off
{
  WrLCMComd(SCRN_ON);     //command 0xAF,enable to display DDRAM         
}

void DisplayOff(void)     //turn LCM screen on
{
  WrLCMComd(SCRN_OFF);   //command 0xAF,disable to display DDRAM         
}

void SetBeginLine(unsigned char line) //setting beging line at the page appointed
{
  WrLCMComd(SET_LINE+line);   //command 0xC0+the unmber of beging line 
}

void ClrScr(void)        //clear ST7565 DDRAM
{
unsigned char row,column;
  for(row=0;row<8;row++)
  {
    SetPage(row);       //setting page
    SetColumn(0);       //setting to 1th line
    for(column=0;column<128;column++)
    {
     WrLCMData(0x00);   //clear one column
     LCDMdelay(10);     //waiting for completion 
    } 
  } 
}

//writting one column
void WriteRAMOneColumn(unsigned char column,unsigned char ramdata)  
{
  SetColumn(column);       //setting the number of column
  WrLCMData(ramdata);      //writting DDRAM to location appointed
}

//wirting 8x8 dot martix into DDRAM
void WriteRAM8Column(unsigned char nPage,unsigned char column,unsigned char *pramdata) 
{
unsigned char cnt;
  SetPage(nPage);          //setting page
  for(cnt=0;cnt<8;cnt++) WriteRAMOneColumn(column+cnt,*(pramdata+cnt));   //writting one column
}

//display 8x8 ASCII character
void LcdmDisplayChar(unsigned char nPage,unsigned char column,unsigned char c)
{
unsigned int index;
  index=c;
  index<<=4;              //font index multiple 16
  WriteRAM8Column(nPage,column,(unsigned char *)&asc16dot[index]); //writting one column
}

//display 8x8 ASCII string from the location appointed
void LcdmDisplayString(unsigned char nPage,unsigned char column,unsigned char *pstr)
{
unsigned char *ptrs;
  ptrs=pstr;
  while(*ptrs)    //return if null character
  {  
    LcdmDisplayChar(nPage,column,*ptrs); //display 8x8 ASCII character
    ptrs++;                              //point to next character to be displayed
    column+=8;                           //locating to next display position
  } 
}

⌨️ 快捷键说明

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