LCD12864怎样随意让一个汉字处于闪烁状态或是反白状态

2019-07-21 04:00发布


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
12条回答
2449164582
2019-07-21 06:54
LCD12864 反白显示代码
[mw_shl_code=c,true]/***********************************************************
*函数名:        void LCD12864_Set_White(unsigned char x, unsigned char y, unsigned char end_x, unsigned char clear)
*功能:        任意位置反白显示
*参数:        输入 x,y,end_x,clear
*说明:        //设定哪一行,从那一个位置开始到那一个位置结束使用反白
*                //x=液晶屏上汉字的位置(1~8);end_x=汉字结束的地址(1~8);y=1~4行
*            //clear=1:清除反白;clear=0:设置反白
**********************************************************/
void LCD12864_Set_White(unsigned char x, unsigned char y, unsigned char end_x, unsigned char clear)
{
        unsigned char i, j;
        unsigned char white_x, white_y , white_end_x;
        unsigned char clr_x, clr_y;
        white_end_x = end_x-x+1;
        white_end_x <<= 1;
        LCD12864_Set_Draw(ON);
        switch (y)
        {
                case 1:        //第一行
                        white_x = 0x80+x-1;
                        white_y = 0x80;
                        clr_x = 0x80;
                        clr_y = 0x80;
                        break;
                case 2:        //第二行
                        white_x = 0x80+x-1;
                        white_y = 0x90;
                        clr_x = 0x80;
                        clr_y = 0x90;
                        break;
                case 3:        //第三行
                        white_x = 0x88+x-1;
                        white_y = 0x80;
                        clr_x = 0x88;
                        clr_y = 0x80;
                        break;
                case 4:        //第四行
                        white_x = 0x88+x-1;
                        white_y = 0x90;
                        clr_x = 0x88;
                        clr_y = 0x90;
                        break;
                default:
                        break;
        }
       
        for (i=0 ; i<16; i++)
        {
                WriteCom(white_y++);        //设置绘图区的Y地址坐标0
                WriteCom(white_x);            //设置绘图区的X地址坐标0
                for (j=0; j<white_end_x; j++)
                {
                        //clear = 1取消这一行的8个点的反白,液晶地址自动加1(此处行指一个一个液晶点所组成的行)
                        //clear = 0反白这一行的8个点,液晶地址自动加1(此处行指一个一个液晶点所组成的行)       
                        clear ? WriteData(Clr) : WriteData(0xff);//clear=1,write_data(0x00);clear=0,write_data(0xff)                       
                }
        }
        LCD12864_Set_Draw(OFF);
}[/mw_shl_code]

一周热门 更多>