你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

STM8L152 段式液晶操作

[复制链接]
wanyisq 提问时间:2016-9-24 09:52 /
哪位大神使用寄存器操作过段式液晶,可以指导一下吗。我初始化之后还是不能用。
收藏 1 评论13 发布时间:2016-9-24 09:52

举报

13个回答
zhangdaijin 回答时间:2016-9-25 09:10:04
wanyisq 回答时间:2016-9-25 09:19:55

大神 有用过寄存器操作STM8L152 的段码液晶吗 求指导
rick1234 回答时间:2016-10-14 15:44:29
把你的程序,贴上来看,或加我QQ 58551597
ynwscfsfi 回答时间:2016-10-15 11:06:01
这个也不难,看下官方的例程
samhong 回答时间:2016-10-15 13:40:11
官网我找到类似的段式液晶操作的例子,好。
wanyisq 回答时间:2016-10-17 08:56:18
ynwscfsfi 发表于 2016-10-15 11:06
这个也不难,看下官方的例程

官方是库函数  我用的寄存器
wanyisq 回答时间:2016-10-17 08:56:55
samhong 发表于 2016-10-15 13:40
官网我找到类似的段式液晶操作的例子,好。

我看了 官网是库函数   我用的寄存器  操作起来不方便
wanyisq 回答时间:2016-10-17 08:57:13
samhong 发表于 2016-10-15 13:40
官网我找到类似的段式液晶操作的例子,好。

我看了 官网是库函数   我用的寄存器  操作起来不方便
ynwscfsfi 回答时间:2016-10-17 11:55:00
wanyisq 发表于 2016-10-17 08:56
官方是库函数  我用的寄存器

额.看下库提取下寄存器也一样的
zhuoyemp4 回答时间:2016-10-17 15:05:54

以下是用STM8L052R8T6驱动段式液晶,LCD控制器的初始化,我用的LCD是1/3bais,1/4duty,你要根据自己的LCD来配置是什么duty,什么bais,用的是哪些com口,哪些SEG引脚。希望能帮到你。
void  lcd_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
官网我找到类似的段式液晶操作的例子,好
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版