ainijd 发表于 2025-2-21 10:01:38

8H4K64TLCD段码屏程序

段码例程里面有这段程序,有点看不懂,有大神能解释一下吗
      switch( n )
      {
                case 1:
                case 2:
                case 3:
                        LCD_buff&= ~(1<<seg_pos);//0是0,向左移动一位0000 0010向左0000 0100求反1111 1011然后求与就是将里面全变0
                        LCD_buff&= ~(3<<seg_pos);
                        LCD_buff &= ~(3<<seg_pos);
                        LCD_buff &= ~(3<<seg_pos);
               
                        if(dat & 0x01)                LCD_buff |= (1<<seg_pos);      //T_SEG_ABC;                //A
                        if(dat & 0x02)                LCD_buff |= (2<<seg_pos);      //T_SEG_ABC;                //B
                        if(dat & 0x04)                LCD_buff|= (2<<seg_pos);      //T_SEG_ABC;                //C
                        if(dat & 0x08)                LCD_buff|= (1<<seg_pos);      //T_SEG_DEFG;      //D
                        if(dat & 0x10)                LCD_buff|= (1<<seg_pos);      //T_SEG_DEFG;      //E
                        if(dat & 0x20)                LCD_buff |= (1<<seg_pos);      //T_SEG_DEFG;      //F
                        if(dat & 0x40)                LCD_buff |= (2<<seg_pos);      //T_SEG_DEFG;      //G               
                        break;
               
                case 4:

梁工 发表于 2025-2-24 11:12:31

一个8字由7段,刷新显示前,先将这7段对应的显存点清0,就是程序的上半部分。之后就是将这7段显示的点填入1,就是程序下半部分。如果设计LCD屏是考虑好驱动连接,就不会这么麻烦。如果是买来的别人的成品屏,则显示点阵往往跟显存没法规律对应,就要如上面程序中逐点处理。
页: [1]
查看完整版本: 8H4K64TLCD段码屏程序