📄 lcd240128.h
字号:
/******************************************************************************
* (c) Copyright xxing's studio
* All Rights Reserved
*
* name : lcd.H
* desc : LCD Driver for TG/OCM240128-07.
* TG/OCM240128-07 驱动程序与API接口函数头文件
* 接口 : 并行
*
* 完成日期: 2007.10
* 最后修改: xxing :)/2008.10
* Email: cuiss83@163.com
******************************************************************************/
#include "../include/define.h"
#include "HZK.h"
#define FS_8X8
//#define FS_6X8
#ifdef FS_8X8
#define FS_8 PORTG&=~BIT(5)
#else
#define FS_6 PORTG|=BIT(5)
#endif
//FS 字体大小,硬件生成,FS选择
#ifdef FS_8X8
#define width 30 //显示区宽度
#else
#define width 40
#endif
#ifdef FS_8X8
#define W 8
#else
#define W 6
#endif
#define ADDR_T 0x0000 //文本显示区首地址
#define ADDR_G 0x01E0 //图形显示区首地址 , 除开一屏文本显示区40*16或30*16
#define LINE(x) (x*width)
#ifndef BIT
#define BIT(x) (1 << (x))
#endif
//硬件接口
#define BLON //(PORTD|=0x10)
#define BLOFF //( PORTD&=~0x10)
//CE/CS - L Enabel
#define CS_LL PORTG&=~BIT(2)
#define CS_L // PORTG&=~BIT(2)
#define CS_H //PORTG|=BIT(2)
//CD - H Command & L Data
#define CD_L PORTG&=~BIT(3)
#define CD_H PORTG|=BIT(3)
//RST - L Rest
#define RST_L PORTG&=~BIT(4)
#define RST_H PORTG|=BIT(4)
//WR - L Write enable
#define WR_L PORTG&=~BIT(1)
#define WR_H PORTG|=BIT(1)
//RD - L Read enable
#define RD_L PORTG&=~BIT(0)
#define RD_H PORTG|=BIT(0)
#define LCD_SetWriteToBuff {}
#define LCD_SetWriteToLcd {}
#define LCD_SetWriteToAll {}
//Data port - portc
#define DDRPORT DDRL
#define LCDDATAPORT PORTL
#define PINPORT PINL
//LCD命令
//stat bit
#define STAT_COMMAND_EN (1<<0)
#define STAT_DATARW_EN (1<<1)
#define STAT_AUTOR_EN (1<<2)
#define STAT_AUTOW_EN (1<<3)
#define STAT_CONTROLER_EN (1<<5)
#define STAT_SCREENC_ERR (1<<6)
#define STAT_BLINK_NORMAL (1<<7)
//registers setting
#define COM_SET_CRUSORPOINTER 0X21
#define COM_SET_OFFSETREGISTER 0X22
#define COM_SET_ADDRESSPOINTER 0X24
//set control word
#define COM_SET_TEXTHOMEADDR 0X40
#define COM_SET_TEXTAREA 0X41
#define COM_SET_GRAPHICHOMEADDR 0X42
#define COM_SET_GRAPHICAREA 0X43
//set mode
#define COM_SET_MODE_OR 0X80
#define COM_SET_MODE_EXOR 0X81
#define COM_SET_MODE_AND 0X83
#define COM_SET_MODE_TEXTATTRIBUTE 0X84
#define COM_SET_MODE_INTERNALCGROM 0X80
#define COM_SET_MODE_EXTERNALCGRAM 0X88
//display mode
#define COM_SET_DISPM_OFF 0X90
#define COM_SET_DISPMOME(x) (0X90|x)
#define DISP_OFF 0X00
#define DISP_CURSORON 0X02
#define DISP_CURSORBLINK 0X01
#define DISP_TEXTON 0X04
#define DISP_GRAPHICON 0X08
#define COM_SET_CRUSORLENGTH(x) (0xa0|x)
#define COM_SET_CURSORPATTERN1 0XA0
#define COM_SET_CURSORPATTERN2 0XA1
#define COM_SET_CURSORPATTERN3 0XA2
#define COM_SET_CURSORPATTERN4 0XA3
#define COM_SET_CURSORPATTERN5 0XA4
#define COM_SET_CURSORPATTERN6 0XA5
#define COM_SET_CURSORPATTERN7 0XA6
#define COM_SET_CURSORPATTERN8 0XA7
//Data auto read/write
#define COM_SET_AUTOWRITE 0XB0
#define COM_SET_AUTOREAD 0XB1
#define COM_SET_AUTORESET 0XB2
//data read/write
#define COM_SET_WINCADP 0XC0
#define COM_SET_RINCADP 0XC1
#define COM_SET_WDECADP 0XC2
#define COM_SET_RDECADP 0XC3
#define COM_SET_WNONADP 0XC4
#define COM_SET_RNONADP 0XC5
//screen peek
#define COM_SCREENPEEK 0XD0
#define COM_SCREENCOPY 0XD8
#define COM_SET_BITRESET 0XF0
#define COM_SET_BITSET(x) (0xF0|(1<<x))
#define COM_SET_BITRESET 0XF0
#define COM_SET_BITRESET 0XF0
#define G 0
#define T 1
#define GT 3
#define TG GT
// void LCD_Clr(void);
#define LCD_Clr() LCD_ClrRam()
void LCD_Init(void);
void GMoveTo(U8 yline, U8 xcolumn);
void TMoveTo(U8 y, U8 x,U8 len);
void DispStartLine(U8 gt, U8 line);
void LCD_ClrRam (void);
void LCD_ON(unsigned char on);
void Draw_Pixel(U8 x, U8 y);
void LineTo(U8 x0, U8 y0, U8 x1, U8 y1);
void Draw_LineH (unsigned char x0, unsigned char y0, unsigned char xl);
void Draw_VLineH(unsigned char x0, unsigned char y0, unsigned char xl) ;
void Draw_LineV(unsigned char x0, unsigned char y0, unsigned char yl) ;
void Draw_VLineV(unsigned char x0, unsigned char y0, unsigned char yl);
void disp_img(unsigned int x0, unsigned int y0, unsigned int xl, unsigned int yl, const U8 *img);
void DispString_I(U8 x, U8 y, char *string); //use the LCD font
void DispString(unsigned char x, unsigned char y, char* string);
void DispString6X12(unsigned char x, unsigned char y, char* string);
//前缀为P的函数是可精确定位到点像素的函数
void PDispString(unsigned char x, unsigned char y, char* string);
void PDispString6X12(unsigned char x, unsigned char y, char* string);
void Printf(U8 x, U8 y, char *fmt, ...);
void Printf6X12(U8 x, U8 y, char *fmt, ...);
void PPrintP(U8 x, U8 y, char *fmt, ...);
void PPrintf6X12(U8 x, U8 y, char *fmt, ...);
void PDispHz12(unsigned char x, unsigned char y,unsigned char hz);
void DispHz12(unsigned char x, unsigned char y,unsigned char hz);
void DispHz(unsigned char x,unsigned char y,unsigned char hz);
void ReDisp(U8 x0, U8 y0, U8 x, U8 y);
void DispZuobiao(unsigned char x, unsigned char y,unsigned char dz);
void Clear_Pixel(U8 x);
void LCD_ClrRect(U8 x0, U8 y0, U8 x, U8 y);
//================================ The end ===================================//
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -