📄 gui.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 + -