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

📄 main.c

📁 液晶方面的一些资料文件 希望有所帮助关于51语言
💻 C
字号:
/*===============================================================
硬件连接: DATA:P4  P5.5-LCD_COMMAND(0)/DATA(1)  P5.6-LCD_ENABLE 
           P5.7-LCD_READ(1,ENABLE=1)/WRITE(0,ENABLE=1->0)
=================================================================*/

#include "io430.h"
//#include "msp430x14x.h"

#define   LCD_DATA_IN		P4IN
#define   LCD_DATA_OUT		P4OUT
#define   LCD_COMMAND_OUT	P4OUT
#define   LCD_DIR		P4DIR


#define	  LCD_READ    		P5OUT |= BIT7
#define   LCD_WRITE		P5OUT &= ~BIT7
#define   LCD_ENABLE_H		P5OUT |= BIT6
#define   LCD_ENABLE_L		P5OUT &= ~BIT6
#define	  LCD_DATA              P5OUT |= BIT5
#define   LCD_COMMAND		P5OUT &= ~BIT5


unsigned char str1[]={0x40,0x04,0x3F,0xFE,0x10,0x08,0x00,0x08,
                      0x80,0x48,0x67,0xE8,0x24,0x48,0x0C,0x48,
                      0x14,0x48,0x24,0x48,0xE7,0xC8,0x24,0x48,
                      0x20,0x08,0x20,0x08,0x20,0x28,0x20,0x10};
unsigned char str2[]={0x04,0x80,0x04,0x80,0x04,0x88,0x04,0x98,
                      0x04,0xA0,0x7C,0xC0,0x04,0x80,0x04,0x80,
                      0x04,0x80,0x04,0x80,0x04,0x80,0x04,0x80,
                      0x1C,0x82,0xE4,0x82,0x44,0x7E,0x00,0x00};
unsigned char str3[]={0x04,0x10,0x0E,0x10,0xF8,0x90,0x08,0x50,
                      0x08,0x10,0xFE,0x90,0x08,0x50,0x1C,0x14,
                      0x1A,0x1E,0x29,0xF0,0x28,0x10,0x48,0x10,
                      0x88,0x10,0x08,0x10,0x08,0x10,0x08,0x10};
unsigned char str4[]={0x10,0x40,0x10,0x40,0x10,0x48,0x13,0xFC,
                      0xFC,0x40,0x10,0x40,0x10,0x40,0x13,0xF8,
                      0x1A,0x08,0x31,0x10,0xD1,0x10,0x10,0xA0,
                      0x10,0x40,0x10,0xB0,0x51,0x0E,0x26,0x04};
							

void initLCD();
void write_command(unsigned char COMMAND);
void write_data(unsigned char DATA);
void asc_tran(unsigned char *asc);
char LCD_busy();
void delay_us();
void delay_ms();




int main( void )
{ 
  P5DIR = 0XFF;
  P4DIR = 0XFF;
  WDTCTL = WDTPW + WDTHOLD;
  initLCD();
  while(1)
  {
        write_command(0x83);               //设置显示位址
        asc_tran(str1);                   //显示字符串
        write_command(0x97);               //设置显示位址
        asc_tran(str2);      //显示字符串
        delay_ms(1000);                  //延迟1秒
        write_command(0x01);               //清除显示器

        write_command(0x83);               //设置显示位址
        asc_tran(str3);      //显示字符串
        write_command(0x94);               //设置显示位址
        asc_tran(str4); //显示字符串
        delay_ms(1000);                  //延迟
        write_command(0x01);             //清除显示器
  
  
}return 0;
}

void initLCD()
{ 
  write_command(0x38); 
  write_command(0x38); 
  write_command(0x38); 
  write_command(0x38); 
  write_command(0x30);
  write_command(0x0c);
  write_command(0x01);
  write_command(0x06);
}

void write_command(unsigned char COMMAND)
{
  while(LCD_busy());
  LCD_ENABLE_L;
  LCD_COMMAND;
  LCD_WRITE;
  delay_us(2);
  LCD_ENABLE_H;
  LCD_COMMAND_OUT  = COMMAND;
  delay_us(2);
  LCD_ENABLE_L;
}

void write_data(unsigned char DATA)
{
  while(LCD_busy());
  LCD_ENABLE_L;
  LCD_DATA;
  LCD_WRITE;
  delay_us(2);
  LCD_ENABLE_H;
  LCD_COMMAND_OUT  = DATA;
  delay_us(2);
  LCD_ENABLE_L;
}

void delay_us(int time)
{
  do
  {
    time--;
  }
  while(time>1);
}

void delay_ms(unsigned int time)
{
  while(time != 0)
  {
    delay_us(2);
    time--;
  }
}

char LCD_busy()
{
  char status;
  P4DIR = 0;
  LCD_ENABLE_L;
  LCD_COMMAND;
  LCD_READ;
  delay_us(2);
  LCD_ENABLE_H;
  delay_us(2);

  status  = P4IN&BIT7;
  LCD_ENABLE_L;
  P4DIR = 0XFF;
  
  return status;
}


void asc_tran(unsigned char *asc)
{
    while((*asc) != 0)   //判断字是否结束
    {
        write_data(*asc); //向lcd写入字符串
        asc++;           //移下一个字符
    }
}

⌨️ 快捷键说明

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