微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 嵌入式设计讨论 > MCU和单片机设计讨论 > 关于段码液晶的扫描程序部分,求解答

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

时间:10-02 整理:3721RD 点击:
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]这几个数组并能分别控制各个段码的,有点想不明白

LCD_buff应该是有初始化的,每次从LCD_buff[j]取值赋予P1口,LCD_buff[j|4]取值赋予P2口(低四位清0)

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top