快上网专注成都网站设计 成都网站制作 成都网站建设
成都网站建设公司服务热线:028-86922220

网站建设知识

十年网站开发经验 + 多家企业客户 + 靠谱的建站团队

量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决

STM8L段码屏驱动原理及例程是怎样的

本篇文章为大家展示了STM8L段码屏驱动原理及例程是怎样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

创新互联公司是一家朝气蓬勃的网站建设公司。公司专注于为企业提供信息化建设解决方案。从事网站开发,网站制作,网站设计,网站模板,微信公众号开发,软件开发,微信小程序,10多年建站对人造雾等多个方面,拥有丰富的网站制作经验。

STM8L段码屏驱动过程如下:

一,根据硬件连接查看DATASHEET设定相关寄存器,即确定了COMx。

二,DATASHEET里COMx对应的RAM地址制作出下表:

STM8L段码屏驱动原理及例程是怎样的

STM8L段码屏驱动原理及例程是怎样的

LCD段码屏厂家提供的资料填到表格中,操作LCD RAM即可。

三,以下两个例子供参考:

1.

void LCD_showLevel(u8 Chan, u8 Level)
{
u8 i, adr, mask;

    barCH1 = Level2Bar[(Level-1)/8+LcdFlashCh2];    
    barCH2 = Level2Bar[(Level-1)/8+LcdFlashCh3];
  if (Chan == 0)
    {
  
        

        for (i=0;i        {

            LCD->RAM[LCD_Level1[i*2]] |= LCD_Level1[i*2+1];
            
        }    
        
        for (;i<10;i++)
        {

            LCD->RAM[LCD_Level1[i*2]] &= ~(LCD_Level1[i*2+1]);
        }
    
    } else 
    {

            
        
          for (i=0;i          {
        
            LCD->RAM[LCD_Level2[i*2]] |= (LCD_Level2[i*2+1]);
          }
            
        for (;i<10;i++)
            
            LCD->RAM[LCD_Level2[i*2]] &= ~(LCD_Level2[i*2+1]);
        
    }    
}

2.

void LCD_showNum(u8 Minute)
{
    if (Minute == 0)
    {
        DrawDigit(1,10);                //Draw white space in digit 4
        DrawDigit(2,11);                //Draw "C" in digit 5)
    }
    else if (Minute < 10)
    {                                                    //for minute smaller than 10
        DrawDigit(1,10);                //Draw white space in digit 4
        DrawDigit(2,Minute);        //Draw Minute in digit 5
    }
    else 
    {                                                    //for minute larger than 10
        DrawDigit(1,Minute/10);    //Draw minute in digit 4,5
        DrawDigit(2,Minute%10);    
    }
    OFF_TIME;
    OFF_MIN;
}

void DrawDigit(u8 loc, u8 value)
{
u8 v, i;

    v = DigitSeg[value];

    for (i=0;i<7;i++)
    {
        if (v & 1)
            LCD->RAM[Digits[loc][i*2]] |= Digits[loc][i*2+1];
        else
            LCD->RAM[Digits[loc][i*2]] &= ~Digits[loc][i*2+1];
            
        v = (v >> 1);    
    }
}

const u8 Digits[][] = 
{
  {11,64,  8,4,    4,64,   1,4,   1,8,   8,8,   4,128 },
    {10,32,     7,2,       3,32,   0,2,   0,1,   7,1,   3,16     }, 
  {10,128, 7,8,    3,128,     0,8,   0,4,     7,4,   3,64  }, 
};

//                                0     1     2     3     4     5     6     7     8     9     " "   "C"
u8 DigitSeg[] = { 0x3F, 0x06, 0x5B, 0x4F, 0x66, 0x6D, 0x7D, 0x07, 0x7F, 0x6F, 0x00, 0x39 };
数组元素奇数为地址,偶数为值,即要显示的那一位。

上述内容就是STM8L段码屏驱动原理及例程是怎样的,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注创新互联行业资讯频道。


本文名称:STM8L段码屏驱动原理及例程是怎样的
本文地址:http://6mz.cn/article/ipppgs.html

其他资讯