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

📄 xs.txt

📁 液晶JM12864的显示程序,可以显示汉字,希望这个程序对大家有帮助
💻 TXT
字号:
#include "MSP430X14X.h"


#define  LCD_DIR P5DIR
#define  LCD_OUT P5OUT

#define  LCD_SID BIT1
#define  LCD_CLK BIT0

#define  LCD_SID_1   LCD_OUT|=LCD_SID  
#define  LCD_SID_0   LCD_OUT&=~LCD_SID  
#define  LCD_CLK_1   LCD_OUT|=LCD_CLK  
#define  LCD_CLK_0   LCD_OUT&=~LCD_CLK  

void LCD_Init(void);
void LCD_Writ_Byte(unsigned char data);
void Write_command(unsigned char data);
void Write_data(unsigned char data);
void Write_string(unsigned char *string);
void LCD_Delay(unsigned char data);



//================================================================
//函数:void LCD_Init(void)
//功能:液晶初始化
//出口参数:无
//入口参数:无
//================================================================
void LCD_Init(void)
{
  LCD_DIR|=LCD_SID+LCD_CLK;                           //定义为输出口
  Write_command(0x30);                                //设置为基本指令集
  Write_command(0x04);                                // 
  Write_command(0x0c);                                //打开显示  
  Write_command(0x01);                                //清屏   
}

//================================================================
//函数:void LCD_Writ_Byte(unsigned char data)
//功能:向液晶写一个字节
//出口参数:无
//入口参数:无
//================================================================
void LCD_Writ_Byte(unsigned char data)
{
  unsigned char i;
  for(i=0;i<8;i++)
    {
      LCD_CLK_0;                                  //clk置0
      LCD_Delay(1); 
      if(data&0x80)
        LCD_SID_1;
      else
        LCD_SID_0;
      LCD_Delay(1);                              //延时
      LCD_CLK_1;                                  //clk置1
      data<<=1;                                   //数据位左移
      LCD_Delay(1);                               //延时    
    }
}

//================================================================
//函数:void LCD_Command(unsigned char data)
//功能:写指令
//出口参数:无
//入口参数:无
//================================================================
void Write_command(unsigned char data)
{
    LCD_Writ_Byte(0xf8);
    LCD_Writ_Byte(data&0xf0);
    LCD_Writ_Byte((data<<4)&0xf0);
    LCD_Delay(15);                               //延时       
}

//================================================================
//函数:void LCD_Command(unsigned char data)
//功能:写数据
//出口参数:无
//入口参数:无
//================================================================
void Write_data(unsigned char data)
{
    LCD_Writ_Byte(0xfa);
    LCD_Writ_Byte(data&0xf0);
    LCD_Writ_Byte((data<<4)&0xf0);
    LCD_Delay(10);                               //延时   
}


//================================================================
//函数:void LCD_String(unsigned char *p)
//功能:写字符串
//出口参数:无
//入口参数:无
//================================================================
void Write_string(unsigned char *string)
{
   while(*string!='\0')
    {
      Write_data(*string);
      string++;
    }
}

//================================================================
//函数:void LCD_Delay(unsigned char data)
//功能:延时程序
//出口参数:无
//入口参数:无
//================================================================
void LCD_Delay(unsigned char data)
{
  unsigned char i,j;
  j=data;
  while(j--)
    for(i=0;i<0x1f;i++);
}




void sys_Init(void)
  {
   unsigned int i;
    BCSCTL1&=~XT2OFF;                   //启动高速晶振XT2
  do
    {
      IFG1&=~OFIFG;                     //清除振荡器失效标志
      for(i=0x20;i>0;i--);              //延时等待XT2起振
    }
  while((IFG1&OFIFG)!=0);               //判断XT2是否起振
  BCSCTL2|=SELM_2+SELS;                 //MCLK、SMCLK选择XT2,分频为1 
}

void   main( void )
{ 
   WDTCTL = WDTPW + WDTHOLD;                                                   // 关闭看门狗
   sys_Init();
   LCD_Init();
   
   P5DIR=0x07;
   P5OUT|=BIT0;
   Write_command(0x80);
   Write_string("粮食水分检测:");
} 

⌨️ 快捷键说明

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