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

📄 lcd.h

📁 基于pic系列单片机的
💻 H
字号:
#ifndef LCD_H
	#define LCD_H
/*-----------------------------------------------------------------------------
LCD                MCU
DB10~DB17   <--->  RE0~RE7      
CS          <----  RD11          chip select signal   low : ILI9320 is selected
RS          <----  RD10          a register select signal   low: index or status register is selected. high: select a control register
WR          <----  RD4           a write strobe signal and enables an opreation to write data when the signal is low
RD          <----  RD5           a read strobe singal and enables an operation to read data when the signal is low
RESET       <----  RD9 

周义        08.6.9
-------------------------------------------------------------------------------*/
#define NOP() asm("NOP");

#define DATA_DDR     TRISE 
#define DATA_PORT    PORTE
#define DATA_PIN     LATE

#define LCD_CS_DDR   TRISDbits.TRISD11
#define LCD_CS_PORT  PORTDbits.RD11
#define LCD_CS_PIN   LATDbits.LATD11

#define LCD_RS_DDR   TRISDbits.TRISD10
#define LCD_RS_PORT  PORTDbits.RD10
#define LCD_RS_PIN   LATDbits.LATD10

#define LCD_WR_DDR   TRISDbits.TRISD4
#define LCD_WR_PORT  PORTDbits.RD4
#define LCD_WR_PIN   LATDbits.LATD4

#define LCD_RD_DDR   TRISDbits.TRISD5
#define LCD_RD_PORT  PORTDbits.RD5
#define LCD_RD_PIN   LATDbits.LATD5

#define LCD_RST_DDR  TRISDbits.TRISD9
#define LCD_RST_PORT PORTDbits.RD9
#define LCD_RST_PIN  LATDbits.LATD9

#define DATA_INPUT()  DATA_DDR   = 0xff					
#define DATA_OUTPUT() DATA_DDR   = 0x00
										
#define LCD_CS_H()    LCD_CS_PIN  = 1  
#define LCD_CS_L()    LCD_CS_PIN  = 0

#define LCD_RS_H()    LCD_RS_PIN  = 1
#define LCD_RS_L()    LCD_RS_PIN  = 0

#define LCD_WR_H()    LCD_WR_PIN  = 1
#define LCD_WR_L()    LCD_WR_PIN  = 0

#define LCD_RD_H()    LCD_RD_PIN  = 1
#define LCD_RD_L()    LCD_RD_PIN  = 0

#define LCD_RST_H()   LCD_RST_PIN = 1
#define LCD_RST_L()   LCD_RD_PIN  = 0

//--------------LCD backlight define---------------------------------------------
#define LCD_BACKLIGHT_DDR()  TRISDbits.TRISD1 = 0
#define LCD_BACKLIGHT_H()    LATDbits.LATD1 = 1
#define LCD_BACKLIGHT_L()    LATDbits.LATD1 = 0

//-----------define color--------------------------------------------------------
#define White         		0xFFFF  //白
#define Black          	    0x0000  //黑
#define Grey           		0xF7DE  //灰
#define Blue                0x001F  //蓝
#define Blue2               0x051F
#define Red                 0xF800  //红
#define Magenta             0xF81F  //洋红
#define Green               0x07E0  //绿
#define Cyan          	    0x7FFF  //蓝绿
#define Yellow         	    0xFFE0  //黄

#define BLACK              (WORD)0b0000000000000000
#define BRIGHTBLUE         (WORD)0b0000000000011111
#define BRIGHTGREEN        (WORD)0b0000011111100000
#define BRIGHTCYAN         (WORD)0b0000011111111111
#define BRIGHTRED          (WORD)0b1111100000000000
#define BRIGHTMAGENTA      (WORD)0b1111100000011111
#define BRIGHTYELLOW       (WORD)0b1111111111100000
#define BLUE               (WORD)0b0000000000010000
#define GREEN              (WORD)0b0000010000000000
#define CYAN               (WORD)0b0000010000010000
#define RED                (WORD)0b1000000000000000
#define MAGENTA            (WORD)0b1000000000010000
#define BROWN              (WORD)0b1111110000000000
#define LIGHTGRAY          (WORD)0b1000010000010000
#define DARKGRAY           (WORD)0b0100001000001000
#define LIGHTBLUE          (WORD)0b1000010000011111
#define LIGHTGREEN         (WORD)0b1000011111110000
#define LIGHTCYAN          (WORD)0b1000011111111111
#define LIGHTRED           (WORD)0b1111110000010000
#define LIGHTMAGENTA       (WORD)0b1111110000011111
#define YELLOW             (WORD)0b1111111111110000
#define WHITE              (WORD)0b1111111111111111

#define GRAY0       	   (WORD)0b1110011100011100
#define GRAY1         	   (WORD)0b1100011000011000   
#define GRAY2              (WORD)0b1010010100010100   
#define GRAY3              (WORD)0b1000010000010000
#define GRAY4              (WORD)0b0110001100001100
#define GRAY5              (WORD)0b0100001000001000
#define GRAY6	           (WORD)0b0010000100000100
//-------------------------------------------------------------------------------

#define		ARROW_UP		0
#define		ARROW_DOWN		1
#define		ARROW_LEFT		2
#define		ARROW_RIGHT		3	
//--------------------------------------------------------------------------------

#define     RGB(x,y,z)  ((int)(x/8) << 11)| ((int)(y/4) << 5) | ((int)z/8)

typedef enum
{    
	Image24X24 = 2,
	Image9X26 ,
	Image22X10,
	Image20X26,
	Image32X26,
	Image33X44,
	Image40X26,
	Image18X26,
	Image56X36,
	Image41X45,
	Image45X36,
	Image43X45,
	Image44X44,
	Image88X44,
	Image146X44,
	Image320X26,
	Image269X26,
}IMAGESTYLE; 
//--------------------------------------------------------------------------------

#define		SCREEN_ORIGIN				15
#define		SCREEN_LEFT					0
#define		SCREEN_TOP					0
#define		SCREEN_RIGHT				239
#define		SCREEN_BOTTOM				319

//--------------------------------------------------------------------------------
void LCD_WR_REG(unsigned char index,unsigned int val);
unsigned int LCD_RD_REG(unsigned char index);
void LCD_Write_Start();
void LCD_Write_Data(unsigned int val);
void LCD_Write_End();
void LCD_Read_Start();
unsigned int LCD_RD_DATA();
void LCD_Read_End();
void delay_ms(unsigned int iMs);
void Display_ON();
void Display_OFF();
void LCD_Init();
void LCD_SetTextColor(unsigned int Color);
void LCD_BackColor(unsigned int Color);
void LCD_Set_XY(unsigned int x, unsigned int y);

void  putpixel(unsigned int x,unsigned int y,unsigned int color);
void fillrect(unsigned int startX,unsigned int startY,unsigned int endX,unsigned int endY,unsigned int color);
//void Clear(unsigned char x_start,unsigned char x_stop,unsigned char y_start,unsigned char y_stop,unsigned int color);
void Clear(unsigned int x_start,unsigned int x_stop,unsigned int y_start,unsigned int y_stop,unsigned int color);
void draw_v_line(int y_start, int y_end, int x,unsigned int color);
void draw_h_line(int x_start, int x_end, int y,unsigned int color);
void Octant0(unsigned int x_bgn, unsigned int y_bgn,unsigned int x_delta, unsigned int y_delta, int XDirection,unsigned int color);
void Octant1(unsigned int x_bgn, unsigned int y_bgn,unsigned int  x_delta,unsigned int y_delta, int XDirection,unsigned int color);	
void line(int x_bgn, int y_bgn, int x_end, int y_end,unsigned int color);
void rectangle(int left,int top,int right,int bottom,unsigned int color);
void roundrect(int left, int top, int right, int bottom, int a, int b,unsigned int color);
void fillroundrect(int left, int top, int right, int bottom, int a, int b,unsigned int color);
void arrow(int startx,int starty,int baseline,unsigned char direct,unsigned int color);
void bar( int x0, int y0, int width, int height,unsigned color);

void LCD_DrawChar(unsigned int Xpos, unsigned int Ypos, unsigned char *pic); 
void outtext(int x,int y,unsigned char *str,int fontsytle ,unsigned int color);
void FontDisplay(int x, int y, unsigned char * FontModule);
void Drawicon16X16(int x, int y, unsigned char * FontModule,unsigned color);
void Drawicon24X24(int x, int y, unsigned char * FontModule,unsigned int color);
void Drawicon32X32(int x, int y, unsigned char * FontModule,unsigned int color);
void Drawicon48X48(int x, int y, unsigned char * FontModule,unsigned int color);

unsigned char LCD_DrawICON(unsigned char startX, unsigned char startY, unsigned int index,const IMAGESTYLE mImage);
#endif

⌨️ 快捷键说明

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