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