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

📄 lcd12232._h

📁 液晶屏源代码
💻 _H
字号:
//定义LCD口线
#define lcd_cs   PA4
#define lcd_std  PA3
#define lcd_sclk PA2
#define lcd_port PORTA
#define lcd_ddr  DDRA

//LCD显示坐标定义
#define x1    0x80    //lcd初始坐标1
#define x2    0x90    //lcd初始坐标2

//LCD数据/命令格式定义
#define command  0       //lcd命令
#define data     1       //lcd数据

//传送单个字节到LCD
void lcd_write(unsigned char dat_comm,unsigned char content) 
{
  unsigned char a,i,j;
  delay_ms();//延时时间要根据实际使用的芯片采用不同的延时时间
  a=content;   //数据记录
  //delay_ms();//这个延时要根据实际需要看是否需要增加//如8515就要加
  lcd_port|=BIT(lcd_cs);//cs=1
  lcd_port&=~BIT(lcd_sclk);//sclk=0;
  lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//std=1;
  for(i=0;i<5;i++)   //启动命令
  {
    lcd_port|=BIT(lcd_sclk);//sclk=1;
	lcd_port&=~BIT(lcd_sclk);//sclk=0;
  }
  lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
  lcd_port|=BIT(lcd_sclk);//sclk=1;
  lcd_port&=~BIT(lcd_sclk);//sclk=0;
  if(dat_comm)
    lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//std=1;   //数据
  else
    lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;   //命令
  lcd_port|=BIT(lcd_sclk);//sclk=1;
  lcd_port&=~BIT(lcd_sclk);//sclk=0;
  lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
  lcd_port|=BIT(lcd_sclk);//sclk=1;
  lcd_port&=~BIT(lcd_sclk);//sclk=0;
  for(j=0;j<2;j++)       //循环发送8个位数据
  {
    for(i=0;i<4;i++)
    {
      if ((a&0x80)==0x80) 
	    lcd_port|=(1<<lcd_std);//PORTC|=BIT(lcd_std);//单字节传送
	  else                
	    lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);
	  a=a<<1;
      lcd_port|=BIT(lcd_sclk);//sclk=1;
	  lcd_port&=~BIT(lcd_sclk);//sclk=0;
    }
    lcd_port&=~(1<<lcd_std);//PORTC&=~BIT(lcd_std);//std=0;
    for(i=0;i<4;i++)      //发送4个空数据
    {
      lcd_port|=BIT(lcd_sclk);//sclk=1;
	  lcd_port&=~BIT(lcd_sclk);//sclk=0;
    }
  }
  lcd_port|=BIT(lcd_cs);
}

//LCD初始化
void LCD_init(void)
{
  /**********LCD12232串口口线设置************/
  lcd_port|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
  lcd_ddr|=BIT(lcd_cs)|BIT(lcd_sclk)|BIT(lcd_std);
  
  lcd_write(command,0x30);  //30---基本指令动作
  //lcd_write(command,0x04);  //点设定:显示字符/光标从左到右移位,DDRAM地址加1 
  lcd_write(command,0x01);  //清屏,地址指针指向00H
  lcd_write(command,0x06);  //光标的移动方向
  lcd_write(command,0x0c);  //开显示,关游标
  delay_1ms(); //液晶初始化后延时
}

//LCD全屏显示字符
void lcd_display(unsigned char chn[30])
{
  unsigned char i;
  lcd_write(command,0x30);
  lcd_write(command,x1);
  for (i=0;i<15;i++)
  lcd_write(data,chn[i]);
  lcd_write(command,x2);
  for (i=0;i<15;i++)
  lcd_write(data,chn[15+i]);
}

//LCD第一行显示字符
void line1_display(unsigned char chn[15])
{
  unsigned char i;
  lcd_write(command,0x30);
  lcd_write(command,x1);
  for (i=0;i<15;i++)
  lcd_write(data,chn[i]);
}

//LCD第二行显示字符
void line2_display(unsigned char chn[15])
{
  unsigned char i;
  lcd_write(command,0x30);
  lcd_write(command,x2);
  for (i=0;i<15;i++)
  lcd_write(data,chn[i]);
}

⌨️ 快捷键说明

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