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

📄 gui.c

📁 用s3c44b0实现320240LCD(比一般小)点亮,并有键盘功能
💻 C
字号:
#include <string.h>
#include "inc\44b.h"
#include "inc\option.h"
#include "inc\lcd.h"
#include "inc\gui.h"
#include "inc\config.h"

#define uint8  unsigned char
#define  int8    signed char

#define uint16 unsigned int
#define  int16   signed int
#define uint32 unsigned long int
#define  int32   signed long  int

#define INT8U   unsigned char
#define INT16U  unsigned int  
#define INT32U  unsigned long int

#define uchar unsigned char
#define uint unsigned int
void  GUI_ClearSCR(void);
void  GUI_Point(uint8 x,uint16 y,uint16 color);
void  GUI_HLine(uint8 x, uint16 y, uint8 length, uint16 color);
void  GUI_RLine(uint8 x, uint16 y, uint16 high, uint16 color);
void  GUI_DisPicture(uint8 x, uint16 y, uint8 length, uint16 high,const uint8 *pic);

/************************************
//清屏函数
//改变color数值可以改变清屏的背景颜色
*************************************/
void  GUI_ClearSCR(void)
{  
    uint16 x,y,color;
	color=0xffff;
 	LCD_WriteCommand(0,0x02,0x00);	  //X
	LCD_WriteCommand(1,0x03,0x0000);  //Y
	LCD_WriteCommand(0,0x04,0xEF);	  //结束列数(0~239)	
	LCD_WriteCommand(1,0x05,0x013F);  //结束行数(0~319)
	
   	LCD_WriteRegister(0x0E);          //写显示数据区
	
	for(y=0;y<320;y++)
	{
	  for(x=0;x<240;x++)
	    {
	     LCD_WriteData(color);
		}
	}
	
}

/*********************************************
//画点函数
//(x,y)点的坐标量,color 点的颜色
**********************************************/
void  GUI_Point(uint8 x, uint16 y, uint16 color)
{  
	LCD_WriteCommand(0,0x02,x);	      //X
	LCD_WriteCommand(1,0x03,y);       //Y
	LCD_WriteCommand(0,0x04,x);	      //结束列数(0~239)	
	LCD_WriteCommand(1,0x05,y);       //结束行数(0~319)
	
	LCD_WriteRegister(0x0E);          //写显示数据区
	LCD_WriteData(color);
}


/**********************************************************
//画横线函数
//(x,y)开始点的坐标量,color 线的颜色, length 横线长度
************************************************************/
void  GUI_HLine(uint8 x, uint16 y, uint8 length, uint16 color) 
{  

   LCD_WriteCommand(0,0x02,x);	        //X
   LCD_WriteCommand(1,0x03,y);          //Y
   LCD_WriteCommand(0,0x04,x+length-1);	//结束列数(0~239)	
   LCD_WriteCommand(1,0x05,y);          //结束行数(0~319)
	
   LCD_WriteRegister(0x0E);             //写显示数据区
	
	do{  
       LCD_WriteData(color);	       // 逐点显示,描出水平线
       length--;
      }while(length);
}

/**********************************************************
//画竖线函数
//(x,y)开始点的坐标量,color 线的颜色, high 竖线高度
************************************************************/
void  GUI_RLine(uint8 x, uint16 y, uint16 high, uint16 color) 
{  
   
    LCD_WriteCommand(0,0x02,x);	        //X
	LCD_WriteCommand(1,0x03,y);         //Y
	LCD_WriteCommand(0,0x04,x);	        //结束列数(0~239)	
	LCD_WriteCommand(1,0x05,y+high-1);  //结束行数(0~319)
	
	LCD_WriteRegister(0x0E);          //写显示数据区
	
   do{  
      LCD_WriteData(color);	          // 逐点显示,描出垂直线
      high--;
     }while(high);	
}




/**********************************************************
//显示图片函数
//(x,y)开始点的坐标量
//length 图片长度, high 图片高度
//pic 图片数组的指针
************************************************************/
void  GUI_DisPicture(uint8 x, uint16 y, uint8 length, uint16 high ,const uint8 *pic)
{
    uint16 temp,tmp=0,num=0;
    LCD_WriteCommand(0,0x02,x);	            //X
	LCD_WriteCommand(1,0x03,y);             //Y
	LCD_WriteCommand(0,0x04,x+length-1);	//结束列数(0~239)	
	LCD_WriteCommand(1,0x05,y+high-1);      //结束行数(0~319)
	num=length*high*2;
	
	LCD_WriteRegister(0x0E);                //写显示数据区
	
	do{  
	   temp=pic[tmp]| pic[tmp+1]<<8;
       LCD_WriteData(temp);	            // 逐点显示
	   tmp+=2;
	   
      } while(tmp<num);
}





⌨️ 快捷键说明

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