stm32f103的240*128液晶显示
0赞
发表于 7/4/2013 4:45:57 PM
阅读(4462)
240*128点阵液晶采用的是华凌光电的WG240128T5,采用的是RA8806控制器。引
脚定义如图:
和其他的192*64的液晶接口没有多大的区别。
在和stm32f103的连接上面可以采取GPIO和总线的连接方式,总线的连接方式比GPIO访问速度快。我选择了总线。接口电路如下:
八位数据线和STM32的D0..D7连接,片选LCD_CS连接FMSC_NE1地址为0x60000000,控制字和数据字C/D和地址A22连接,因此写控制字的地址为0x68000000,写数据位0x60000000。驱动程序初始化如下:
void STM3210E_LCD_Init(void)
{
//初始化设置
LCD_WriteReg(RA8806REG_WLCR,0x0c);//0x00//设置电源为正常模式,所有功能都有效,写入字符模式,正常显示;DISP_OFF高有效
delayms(2000);
LCD_WriteReg(RA8806REG_MISC,0x04);//0x01//设置BUSY信号高有效;
//LCD_WriteReg(RA8806REG_ADSR,0x80);//0x03
LCD_WriteReg(RA8806REG_ITCR,107);//0x90//设置数据移位时钟参数
LCD_WriteReg(RA8806REG_WCCR,0x40);//0x10//设置文本处理方式 光标开,闪烁,跟随字符变化
LCD_WriteReg(RA8806REG_CHWI,0xf0);//0x11//设置文本处理方式行间距=1像素;光标为块状形式
LCD_WriteReg(RA8806REG_MAMR,0x11);//0x12//设置RAM(显示)工作模式,两个显示区域逻辑或合成显示
LCD_WriteReg(RA8806REG_FNCR,0x80);//0xf0//设置字库,选择GB汉字库和ASCII块0字符库
LCD_WriteReg(RA8806REG_FVHT,0x00);//0xf1//设置字符原大尺寸
LCD_WriteReg(RA8806REG_BTMR,0x33);//0x80//设置闪烁时间(默认)
LCD_WriteReg(RA8806REG_INTR,0x30);//0x0f
//模块显示窗口设置
LCD_WriteReg(RA8806REG_DWWR,0x1d);//0x21//显示窗口右边界位置(水平最大字符数,取值为240)
LCD_WriteReg(RA8806REG_DWHR,0x7f);//0x31//显示窗口下边界位置(垂直最大行,取值为128)
//模块工作显示窗口设置
LCD_WriteReg(RA8806REG_AWLR,0x00);//0x40//工作窗口左边界位置(第一字符,取值为1)
LCD_WriteReg(RA8806REG_AWRR,0x1d);//0x20//工作窗口右边界位置(水平最大字符数,取值为240)
LCD_WriteReg(RA8806REG_AWTR,0x00);//0x50//工作窗口上边界位置(第一行,取值为1)
LCD_WriteReg(RA8806REG_AWBR,0x7f);//0x30//工作窗口下边界位置(垂直最大行,取值为128)
//光标设置
LCD_WriteReg(RA8806REG_CURX,0x00);//0x60//设置光标位置X坐标,使用初始值
//LCD_WriteReg(RA8806REG_BGSG,0x00);//0x61
//LCD_WriteReg(RA8806REG_EDSG,0x1d);//0x62
LCD_WriteReg(RA8806REG_CURY,0x00);//0x70//设置光标位置Y坐标,使用初始值
LCD_WriteReg(RA8806REG_BGCM,0x00);//0x71
LCD_WriteReg(RA8806REG_EDCM,0x7f);//0x72
//LCD_WriteReg(RA8806REG_KSCR1,0x07);//0xa0
//LCD_WriteReg(RA8806REG_KSCR2,0x00);//0xa1
//LCD_WriteReg(RA8806REG_KSDR0,0x00);//0xa2
//LCD_WriteReg(RA8806REG_KSDR1,0x00);//0xa3
//LCD_WriteReg(RA8806REG_KSDR2,0x00);//0xa4
//LCD_WriteReg(RA8806REG_MWCR,0x00);//0xb0
//LCD_WriteReg(RA8806REG_MRCR,0x00);//0xb1
//LCD_WriteReg(RA8806REG_TPCR1,0x00);//0xc0
//LCD_WriteReg(RA8806REG_TPXR,0x00);//0xc1
//LCD_WriteReg(RA8806REG_TPYR,0x00);//0xc2
//LCD_WriteReg(RA8806REG_TPZR,0x00);//0xc3
//LCD_WriteReg(RA8806REG_TPCR2,0x00);//0xc4
//LCD_WriteReg(RA8806REG_PCR,0x80);//0xd0
//LCD_WriteReg(RA8806REG_PDCR,0x10);//0xd1
//LCD_WriteReg(RA8806REG_PNTR,0x00);//0xe0
LCD_WriteReg(0x00,0x34); // 设置写入数据模式为图形模式
}
