⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 use_12864_driver.c

📁 MSP430z_f247.rar
💻 C
📖 第 1 页 / 共 2 页
字号:
    WRITE_12864_RESET_HIGH;                 
    //启动LCD
    WRITE_12864_CS1_HIGH;          
    WRITE_12864_CS2_HIGH;                   
    //全屏设置
    Write_CMD_12864(_12864_PAGE+0);         
    //设置页面
    Write_CMD_12864( _12864_START_ROW+0);   
    //设置画图起始行
    Write_CMD_12864(_12864_COL+0);           
    //设置画图起始列(自动递增换列)
    Write_CMD_12864(_12864_ON);              
    //启动显示
}

/****************************************
*  函数说明: 清屏函数                  *
*  输入    :无                         *
*  输出    :无                         *
*  调用函数: Write_CMD_12864()          *
*            Write_Data_12864()         *
****************************************/
void Clear_LCD_12864(void)
{
    UINT8 chx = 0,chy = 0;      
    WRITE_12864_CS1_HIGH;
    WRITE_12864_CS2_HIGH;                    
    //全屏设置
    Write_CMD_12864(_12864_START_ROW+0);      
    //设置画图起始行
    for (chx = 0;chx < 8;chx++)   
    {
        Write_CMD_12864(_12864_PAGE+chx);     
        //设置页面  
        Write_CMD_12864(_12864_COL);          
        //设置画图起始列(自动递增换列)
        for (chy = 0;chy < 64;chy++)
        {   
            Write_Data_12864(_12864_CLEAR);   
            //清屏
        }
    }
    for (chy = 0;chy < 8;chy++)
	{
	   for (chx = 0;chx < 128;chx++)
	   {
		 	LCD_Buffer[chy][chx] = 0;
	   }
	}
    Write_CMD_12864(_12864_ON);               
}

/****************************************
*  函数说明: 画点函数                   *
*  输入    :点坐标(x,y)              *
*  输出    :无                         *
*  调用函数: Write_CMD_12864()          *
*            Write_Data_12864()         *
****************************************/



void Draw_Dot_12864(UINT8 chx,UINT8 chy)
{
    UINT8 chPage_index = 0;             //页面偏移
    UINT8 chValue = 0;                  //数据值 
	
	////////////////
	UINT8 chx_Temp = chx;
	///////////////
	
    /////////////////
    if (chx > 127 || chy > 63)
	{
		return ;
	}
    /////////////////
    
            
    if (chx >= 64)                      //点在右屏设置
    {
       
        chx = chx-64;
        WRITE_12864_CS1_HIGH;
        WRITE_12864_CS2_LOW;
    }
    else                                //点在左屏设置
    {   
        WRITE_12864_CS2_HIGH; 
        WRITE_12864_CS1_LOW;
    }
    
    chValue |= BIT(7-(chy&(BIT(3)-1))); //计算数据,添加点            
    chPage_index = 7-(chy>>3);          //计算数据所在页面            
    
	LCD_Buffer[chPage_index][chx_Temp] |= chValue;
	chValue = LCD_Buffer[chPage_index][chx_Temp];
	
    Write_CMD_12864(_12864_PAGE+chPage_index);//设置页面
    
    Write_CMD_12864(_12864_COL+chx);
   
    Write_Data_12864(chValue);                //写数据
    
    Write_CMD_12864(_12864_ON);               //显示  
}

/*
void Draw_Dot_12864(UINT8 chx,UINT8 chy)
{      
    UINT8 chPage_index = 0;             
    //页面偏移
    UINT8 chValue = 0;                  
    //数据值     
    if ( chx > 127 ||  chy > 63)
    {
        return ;
    }
    if (chx >= 64)                     
    //点在右屏设置
    {
       
        chx = chx-64;
        WRITE_12864_CS1_HIGH;
        WRITE_12864_CS2_LOW;
    }
    else                                
    //点在左屏设置
    {   
        WRITE_12864_CS2_HIGH; 
        WRITE_12864_CS1_LOW;
    }
    chValue |= BIT(7-(chy&(BIT(3)-1))); 
    //计算数据,添加点            
    chPage_index = 7-(chy>>3);          
    //计算数据所在页面                     
    LCD_Buffer[chPage_index][chx] |= chValue;
	chValue = LCD_Buffer[chPage_index][chx];
	
    //添加已有点
    Write_CMD_12864(_12864_PAGE+chPage_index);
    //设置页面
    Write_CMD_12864(_12864_COL+chx);
    Write_Data_12864(chValue);                
    //写数据
    Write_CMD_12864(_12864_ON);               
    //显示  
}
*/
/****************************************
*  函数说明: 清点函数                   *
*  输入    :点坐标(x,y)              *
*  输出    :无                         *
*  调用函数: Write_CMD_12864()          *
*            Write_Data_12864()         *
****************************************/

void Clear_Dot_12864(UINT8 chx,UINT8 chy)
{   
    UINT8 chPage_index = 0;             
    //页面偏移
    UINT8 chValue = 0;                  
    //数据值  
    UINT8 chValue_Clear = 0;
	////////////////
	UINT8 chx_Temp = chx;
	///////////////
    if (chx > 127 || chy > 63)
    {
        return ;
    }        
    if (chx >= 64)                      
    //点在右屏设置
    {
       
        chx = chx-64;
        WRITE_12864_CS1_HIGH;
        WRITE_12864_CS2_LOW;
    }
    else                                
    //点在左屏设置
    {   
        WRITE_12864_CS2_HIGH; 
        WRITE_12864_CS1_LOW;
    }
    
    chValue_Clear = BIT(7-(chy&(BIT(3)-1)));
    //计算数据,需要清除的目标点位置   
    chPage_index = 7-(chy>>3);              
    //计算数据所在页面            
	LCD_Buffer[chPage_index][chx_Temp] &= ~chValue_Clear;
	chValue = LCD_Buffer[chPage_index][chx_Temp];
    //清除目标点
    Write_CMD_12864(_12864_PAGE+chPage_index);
    //设置页面   
    Write_CMD_12864(_12864_COL+chx);
    Write_Data_12864(chValue);                
    //写数据
    Write_CMD_12864(_12864_ON);             
    //显示  
}

/****************************************
*  函数说明: 清点函数                   *
*  输入    :点坐标(x,y)              *
*  输出    :无                         *
*  调用函数: Write_CMD_12864()          *
*            Write_Data_12864()         *
****************************************/

/*
void Clear_Dot_12864(UINT8 chx,UINT8 chy)
{  
  	UINT8 chx_Temp = (7-(chy/8));
	UINT8 chy_Temp = chx;
    UINT8 chPage_index = 0;             //页面偏移
    UINT8 chValue = 0;                  //数据值  
    UINT8 chValue_Clear = 0;
    if (chx > 127 || chy > 63)
	{
		return ;
	}
    if (chx >= 64)                      //点在右屏设置
    {
       
        chx = chx-64;
        WRITE_12864_CS1_HIGH;
        WRITE_12864_CS2_LOW;
    }
    else                                //点在左屏设置
    {   
        WRITE_12864_CS2_HIGH; 
        WRITE_12864_CS1_LOW;
    }
    
    chValue_Clear = BIT(7-(chy&(BIT(3)-1)));//计算数据,需要清除的目标点位置   
    chPage_index = 7-(chy>>3);              //计算数据所在页面            

    LCD_Buffer[chPage_index][chy_Temp] &= ~chValue_Clear;
    
	chValue = LCD_Buffer[chPage_index][chy_Temp]; 
	
    Write_CMD_12864(_12864_PAGE+chPage_index);//设置页面
    
    Write_CMD_12864(_12864_COL+chx);
   
    Write_CMD_12864(chValue);                //写数据
    
    Write_CMD_12864(_12864_ON);               //显示  
}

*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -