关于段码液晶的扫描程序部分,求解答

2019-07-15 13:20发布

u8        LCD_buff[8];
u8        scan_index;

/****************** LCD段码扫描函数 ***************************/
u8        code T_COM[4]={0x08,0x04,0x02,0x01};

void        LCD_scan(void)        //5us @22.1184MHZ
{
        u8        j;

        j = scan_index >> 1;
        P2n_pure_input(0x0f);                //全部COM输出高阻, COM为中点电压
        if(scan_index & 1)                                //反相扫描
        {
                P1 = ~LCD_buff[j];                        //
                P2 = ~(LCD_buff[j|4] & 0xf0);
        }
        else                                                        //正相扫描
        {
                P1 = LCD_buff[j];
                P2 = LCD_buff[j|4] & 0xf0;
        }
        P2n_push_pull(T_COM[j]);                //某个COM设置为推挽输出
        if(++scan_index >= 8)        scan_index = 0;

}
/*
MCU PIN        P17   P16   P15  P14 P13  P12  P11  P10  P27  P26  P25  P24   P23  P22  P21  P20
LCD PIN            1      2       3       4     5       6      7     8      9     10    11    12     13    14     15   16
                         --    1D     2:     2D    2.     3D    4:    4D     4.    5D    5.    6D   COM3
                         1E   1C    2E     2C    3E     3C    4E   4C    5E    5C    6E    6C                 COM2
                         1G   1B    2G    2B    3G    3B    4G   4B    5G    5B    6G   6B                       COM1
                         1F   1A    2F     2A    3F     3A    4F   4A    5F    5A    6F    6A                                  COM0

                B7        B6        B5        B4        B3        B2        B1        B0

buff[0]:        --        1D        2:        2D        2.        3D        4:        4D
buff[1]:        1E        1C        2E        2C        3E        3C        4E        4C
buff[2]:        1G        1B        2G        2B        3G        3B        4G        4B
buff[3]:        1F        1A        2F        2A        3F        3A        4F        4A
buff[4]:        4.        5D        5.        6D        --        --        --        --
buff[5]:        5E        5C        6E        6C        --        --        --        --
buff[6]:        5G        5B        6G        6B        --        --        --        --
buff[7]:        5F        5A        6F        6A        --        --        --        --

*/
以上是段码液晶的段码扫描函数部分,我想问的是LCD_buff这个数组如何在扫描后变成buff[0~7]这几个数组并能分别控制各个段码的,有点想不明白

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。