zhuoyemp4 发表于 2016-10-17 15:05:54


以下是用STM8L052R8T6驱动段式液晶,LCD控制器的初始化,我用的LCD是1/3bais,1/4duty,你要根据自己的LCD来配置是什么duty,什么bais,用的是哪些com口,哪些SEG引脚。希望能帮到你。
voidlcd_init(void)
{
        CLK_PCKENR2|=0x08;                //Enable LCD clock;
        LCD_CR1=0x06;                     //1/3bais,1/4duty,all pixel blink disable,blink Fre=fLCD/8
        LCD_CR2=0xf1;                      //LCD voltage source: external source
        LCD_CR4=0x00;
        LCD_FRQ=0x21;                     //PS=2, DIV=1, Flcd=38KHz, Fframe=69.8Hz
        LCD_PM0=0x7F;                     //Enable LCD_SEG0~LCD_SEG6, Disable LCD_SEG7
        LCD_PM1=0xC6;                     //Enable LCD_SEG9,10,14,15, Disable LCD_SEG8,11,12,13
        LCD_PM2=0x3B;                     //Enable LCD_SEG16,17,19~21,Disable LCD_SEG18,22,23
        LCD_PM4=0xF0;                     //Enable LCD_SEG36,37,38,39
        LCD_CR3=0x40;                  //LCD Enable
}
LCD清屏,其实就是把用到的LCD_RAM清零。
void lcd_clearscreen(void)
{
        LCD_RAM0=0;
        LCD_RAM1=0;
        LCD_RAM2=0;
        LCD_RAM3=0;
        LCD_RAM4=0;
        LCD_RAM5=0;
        LCD_RAM6=0;
        LCD_RAM7=0;
        LCD_RAM8=0;
        LCD_RAM9=0;
        LCD_RAM10=0;
        LCD_RAM11=0;
        LCD_RAM12=0;
        LCD_RAM13=0;
        LCD_RAM15=0;
        LCD_RAM17=0;
        LCD_RAM19=0;
        LCD_RAM21=0;
}


全显,就是把LCD_RAM中的每位写入1
void lcd_fullscreen(void)
{
        LCD_RAM0=0xFF;
        LCD_RAM1=0xFF;
        LCD_RAM2=0xFF;
        LCD_RAM3=0xFF;
        LCD_RAM4=0xFF;
        LCD_RAM5=0xFF;
        LCD_RAM6=0xFF;
        LCD_RAM7=0xFF;
        LCD_RAM8=0xFF;
        LCD_RAM9=0xFF;
        LCD_RAM10=0xFF;
        LCD_RAM11=0xFF;
        LCD_RAM12=0xFF;
        LCD_RAM13=0xFF;
        LCD_RAM15=0xFF;
        LCD_RAM17=0xFF;
        LCD_RAM19=0xFF;
        LCD_RAM21=0xFF;
}

显示或关闭某一个像素(某一个笔段)
下面是8段数字的其中一个笔段A,这个笔段由COM0和LCD_SEG5这两个引脚控制。COM0的笔段由LCD_RAM0控制,这个A像素是SEG5。
所以显示这个像素就是把LCD_RAM0的第5位置1,不显示这个像素就是把LCD_RAM0的第5位清0。

#define   LED1A_OFF()                    LCD_RAM0&=0xDF
#define   LED1A_ON()                   LCD_RAM0|=0x20

samhong 发表于 2016-10-17 15:33:07

从库里提取下寄存器,也是很方便的,不用看PDF查找,谢谢上面的楼主了。

samhong 发表于 2016-10-17 15:35:01

把库里提取一下寄存器,谢谢!

zbber 发表于 2016-10-18 11:23:56

官网我找到类似的段式液晶操作的例子,好
页: 1 [2]
查看完整版本: STM8L152 段式液晶操作