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

📄 12864.c.120724154204

📁 atmega128串行操作lcd12864
💻 120724154204
字号:
/*****************************************
 *文件名:lcd12864.c
 *功能:LCD12864串行方式AVR驱动程序
 *日期:2010年7月10日
 ****************************************/
 
#include "12864.h"		//包含头文件

/*****************************************
 *函数名:delay_12864
 *功能:利用寄存器操作实现延时效果
 *参数:延时变量x
 *返回值:无
 ****************************************/

void delay_ms(uint x) 
{ 
	uint i,j; 
	for(j=0;j<x;j++)  
		for(i=0;i<1141;i++); 
}

void delay_us(uint x) 
{ 
	uint i,j; 
	for(j=0;j<x;j++)  
		for(i=0;i<40;i++); 
}

//清屏
void CLE_Screen(void)
{
Write_Command(CLR_SCREEN);
delay_ms(7);
}
 
/*****************************************
 *函数名:send_command
 *功能:向LCD控制器的寄存器写指令
 *参数:指令command_data
 *返回值:无
 ****************************************/
void LCD_init(void)
{
delay_ms(100);
DDRE|=(1<<5);
DDRE|=(1<<3);
DDRE|=(1<<1);
delay_ms(1);
CLE_Screen();
Write_Command(RE_ADDR);//显示地址归位0x02
Write_Command(BASIC);//选择基本指令集0x30
Write_Command(CURSOR_OFF);//光标关
Write_Command(0x08);
Write_Command(0x10);
Write_Command(0x38);
Write_Command(0x80);
Write_Command(DISPLYAY_ON);//开显示0x0c
}
//向12864发送一个字节的数据
void Write_One_Date(unsigned char date)
{
unsigned char i;
SCLK_CLE;//时钟总线拉低
delay_us(1);
for(i=0;i<8;i++)//把数据送到线上去
{
  if(date&0x80)
    {SID_SET;}
  else
      {SID_CLE;}

delay_us(1);
 SCLK_SET;//时钟总线拉高,数据传送给显示屏
 delay_us(1);
 SCLK_CLE;
 delay_us(1);
 date=date<<1;//高位先发
}
}

//发送命令
void Write_Command(unsigned char CMD)
{
CS_SET;
Write_One_Date(0xf8);//命令控制字
Write_One_Date(CMD&0xf0);
Write_One_Date(CMD

⌨️ 快捷键说明

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