求助:各位高手请进.关于LCD的初始化程序~

tedy7752 2006-08-16 04:26:59
本人正在编写;单片机连接LCD的程序.想请问各位高手如何编写初始化方面的内容呢?小弟在此请教~

:void Init_port(void)
{



}


static void InitOsc(void)
...全文
574 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
rocllllll 2006-08-29
  • 打赏
  • 举报
回复
以下是YM12864P-1COG-28的初始化程序,调试通过的(你应该仔细查看说明书)
ORG 000H ;在000H放置一条转移指令,直接转去执行指定的程序
LJMP BEGIN
ORG 0100H ;设定BEGIN程序的起始地址为0100H
BEGIN:
CLR RES ;Reset C51仿真器
NOP
NOP ;空两个机器周期
SETB RES ;恢复RES值接着开始初始化液晶
MOV A,#0E2H ;RESET CODE
LCALL OUTI
MOV A,#0A2H ;SET LCD BIAS(1/9)
LCALL OUTI
MOV A,#02FH ;SET POWER CONTROL (VB VR VF)
LCALL OUTI
MOV A,#020H ;REGULATOR RESISTOR SELECT (R2 R1 R0)
LCALL OUTI
MOV A,#081H ;SET REFERENCE VOLTAGE MODE
LCALL OUTI
MOV A,#30H ;SET REFENENCE VOLTAGE REGISTER 2ch
LCALL OUTI
MOV A,#0A0H ;ADC SELECT S1-S128
LCALL OUTI
MOV A,#0C8H ;SHL SELECT COM1-COM64
LCALL OUTI
MOV A,#0AFH ;DISPLAY ON
LCALL OUTI
MOV A,#040H ;设置Specify DDRAM line for COM1
LCALL OUTI
RyanHuang007 2006-08-25
  • 打赏
  • 举报
回复
MSC-G12232DYSY-2N
DWH 2006-08-23
  • 打赏
  • 举报
回复
LCD不一样,写法肯定不一样了!~
caucc 2006-08-20
  • 打赏
  • 举报
回复
是啊,没有型号,哪儿来那么通用的程序阿。
ldqmoon 2006-08-20
  • 打赏
  • 举报
回复
你用的是什么屏?不同ic不同的初始化程序,不能一概而论的
RyanHuang007 2006-08-16
  • 打赏
  • 举报
回复
想要代码把你的邮箱告诉我
RyanHuang007 2006-08-16
  • 打赏
  • 举报
回复
0
sbit FLASHCS= P1^1;
sbit CS138 = P1^3;
sbit RAMCS = P1^4;
sbit CtrlEA = P3^4;

#define LCD_CS {FLASHCS=1;RAMCS=0;}
#define FLASH_CS {FLASHCS=0;RAMCS=1;}
#define SRAM_CS {FLASHCS=0;RAMCS=0;}
#define KEYBOARD_CS {FLASHCS=1;RAMCS=1;}

BYTE xdata LCD_DATA_ADDR _at_ 0x0001;
BYTE xdata LCD_CMD_ADDR _at_ 0x0000;

void LcdCmd(unsigned char cmd)
{
EA = 0; // 关中断
LCD_CS; // 片选LCD
LCD_CMD_ADDR = cmd;
while(LCD_CMD_ADDR & 0x80);
SRAM_CS;
EA = 1; // 开中断
}


/****************************************************************************
函数名 : void LcdInit(void)
描述 : 液晶初始化函数
输入参数 : 无
输出参数 : 无
返回值 : 无
修改历史 :
修改人 修改时间 修改版本号 修改原因
1、 XXXXXX 2006-04-10 V1.0 创建
****************************************************************************/
void LcdInit(void)
{
BYTE data abyTemp[3];

// 从flash中读取液晶灰度设置的值
EA = 0;
FLASH_CS;
memcpy(abyTemp,CBYTE+0x8000,3);
SRAM_CS;
EA = 1;

if ((0xe7==abyTemp[0])&&(0x5d==abyTemp[1])&&(abyTemp[2]<=63))
{
g_byBright = abyTemp[2]; // 配置的值有效
}
else
{
g_byBright = LCD_BRIGHT_DEFULT_VALUE;
}

LcdCmd(0xe2); // Reset LCD
LcdCmd(0xc8); // COM口扫描方向32---0 0xc8 倒着显示; 0xc0 顺着显示
LcdCmd(0xa0); // ADC(segment方向)设定为正常 A1 reverse
LcdCmd(0xa2); // LCD偏压设定 0xa3:1/7 bias , 0xa2:1/9 bias
LcdCmd(LCD_DEFAULT_CONTRAST); // V5电压内部电阻调整设置,默认设置为3,等效于调用LcdSetContrast(3);
LcdCmd(0x81); // 、
LcdCmd(g_byBright); //
LcdCmd(0xd2); // 驱动模式
LcdCmd(0x00); // 模式2
LcdCmd(0x2c); // 上电控制设置 REGULATOR on
LcdCmd(0x2e); // 上电控制设置
LcdCmd(0x2f); // 上电控制设置
LcdCmd(0xaf); // 0xaf开显示,0xae关显示
LcdCmd(0x2f); // 上电控制设置
LcdSetStartPage(0);
g_by573Status = HC573_INIT_VALUE; // buzzer线初始化为高电平

LcdClsAll();

}
我写的一个AT89LS52下的液晶驱动,液晶点阵122*64
icesnows 2006-08-16
  • 打赏
  • 举报
回复
这个要你看LCD的资料咯,需要些什么东西需要设置,初始化一般来说还是很简单的哈

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧