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

📄 240128.h

📁 用ATmega88驱动LCD240128
💻 H
字号:
/*******************************************************************************
/**                      T6963C液晶驱动 RT240128                            **/
/**                         MAGE88 16M                                   **/          
/******************************************************************************/
//#include "storeroom.h"
// ASCII 字符控制代码解释定义
#define STX 0x02
#define ETX 0x03
#define EOT 0x04
#define END 0x05
#define BS 0x08
#define CR 0x0D
#define LF 0x0A
#define DLE 0x10
#define ETB 0x17
#define SPACE 0x20
#define COMMA 0x2C
//#define TRUE            1
//#define FALSE           0
//#define HIGH            1
//#define LOW             0
/* 与单片机接口定义 */
#define LCD_CD          PB0
#define LCD_WR          PB1
#define LCD_RD          PB2
#define LCD_CE          PB3
#define LCD_RES         PB4
#define LCD_CODE_P      PORTB
#define LCD_DATA        PIND
#define LCD_DDR         DDRD
#define LCD_PORT        PORTD
#define LCD_WR_H        LCD_CODE_P |=  BIT(LCD_WR)
#define LCD_WR_L        LCD_CODE_P &= ~BIT(LCD_WR)
#define LCD_RD_H        LCD_CODE_P |=  BIT(LCD_RD)
#define LCD_RD_L        LCD_CODE_P &= ~BIT(LCD_RD)
#define LCD_CE_H        LCD_CODE_P |=  BIT(LCD_CE)
#define LCD_CE_L        LCD_CODE_P &= ~BIT(LCD_CE)
#define LCD_CD_H        LCD_CODE_P |=  BIT(LCD_CD)
#define LCD_CD_L        LCD_CODE_P &= ~BIT(LCD_CD)
#define LCD_RES_H       LCD_CODE_P |=  BIT(LCD_RES)
#define LCD_RES_L       LCD_CODE_P &= ~BIT(LCD_RES)
/* 汇编命令定义 */
#define NOP() asm("nop")
/* T6963C 命令定义 */
#define LCD_CUR_POS    0x21        // 光标位置设置
#define LCD_CGR_POS    0x22        // CGRAM 偏置地址设置
#define LCD_ADD_POS    0x24        // 地址指针位置
#define LCD_TXT_STP    0x40        // 文本区首址
#define LCD_TXT_WID    0x41        // 文本区宽度
#define LCD_GRH_STP    0x42        // 图形区首址
#define LCD_GRH_WID    0x43        // 图形区宽度
#define LCD_MOD_OR     0x80        // 显示方式逻辑或
#define LCD_MOD_XOR    0x81        // 显示方式逻辑异或
#define LCD_MOD_AND    0x82        // 显示方式逻辑与
#define LCD_MOD_TCH    0x83        // 显示方式文本特征
#define LCD_DIS_SW     0x90        // 显示开关:D0-D4配合使用,详见说明书。
                                   // D0=1/0:光标闪烁启用/禁用
                                   // D1=1/0:光标显示启用/禁用
                                   // D2=1/0:文本显示启用/禁用
                                   // D3=1/0:图形显示启用/禁用
#define LCD_CUR_SHP    0xA0        // 光标形状选择0xA0-0xA7表示光标占的行数
#define LCD_AUT_WR     0xB0        // 自动写设置
#define LCD_AUT_RD     0xB1        // 自动读设置
#define LCD_AUT_OVR    0xB2        // 自动读/写结束
#define LCD_INC_WR     0xC0        // 数据一次写地址加1
#define LCD_INC_RD     0xC1        // 数据一次读地址加1
#define LCD_DEC_WR     0xC2        // 数据一次写地址减1
#define LCD_DEC_RD     0xC3        // 数据一次读地址减1
#define LCD_NOC_WR     0xC4        // 数据一次写地址不变
#define LCD_NOC_RD     0xC5        // 数据一次读地址不变
#define LCD_SCN_RD     0xE0        // 屏读
#define LCD_SCN_CP     0xE8        // 屏拷贝
#define LCD_BIT_OP     0xF0        // 位操作
/* 定义D0-D7 */
//const  unsigned char uPowArr[] = {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
/* ASCII 字模显示为8x16 */
//const unsigned char  turnf[8] = {7,6,5,4,3,2,1,0};
/* 当前行列存储行高16 点列宽8点 */
//unsigned char gCurRow,gCurCol; 
// ASCII 字模显示为8*16

/*******************************************************************************
 状态位STA1,STA0判断读写指令和读写数据,在读写数据或者写入命令前必须保证均为1。
*******************************************************************************/
unsigned char fnSTA01(void);
/*******************************************************************************
 检查STA2,如果STA2=1 为自动读状态
*******************************************************************************/
unsigned char fnSTA2(void);
/*******************************************************************************
 状态位STA3 判断STA3 = 1 数据自动写状态
*******************************************************************************/
unsigned char fnSTA3(void);
/*******************************************************************************
 状态位STA6 判断STA6 =1 屏读/屏拷贝状态
*******************************************************************************/
unsigned char fnSTA6(void);
/*******************************************************************************
 读状态
*******************************************************************************/
unsigned char LCD_RD_STATUS(void);
/*******************************************************************************
 读数据
*******************************************************************************/
unsigned char LCD_RD_DATA(void);
/*******************************************************************************
 写数据 
*******************************************************************************/
void LCD_WR_DATA(unsigned char data);
/*******************************************************************************
 写无参数命令 
*******************************************************************************/
void LCD_WR_CODE(unsigned char code);
/*******************************************************************************
 写单参数命令 
*******************************************************************************/
void LCD_WR_CODE1(unsigned char data, unsigned char data1);
/*******************************************************************************
 写双参数的指令 
*******************************************************************************/
void LCD_WR_CODE2(unsigned char code, unsigned char data1, unsigned char data2);
/*******************************************************************************
 初始化LCD 
*******************************************************************************/
void LCD_INIT(void);
/*******************************************************************************
 清整屏 
*******************************************************************************/
void LCD_CLEAR(unsigned char data);
/*******************************************************************************
 显示一个240*128的图片 图片的大小为3840 
*******************************************************************************/
extern void PRINT_240128(const unsigned char *str);
/*******************************************************************************
 设置当前地址
*******************************************************************************/
void LCD_SET_ADD(unsigned char urow, unsigned char ucol);
/*******************************************************************************
 ASCII(8*16) 及 汉字(16*16) 显示函数,ASCII与汉字区别在于128做分界。
*******************************************************************************/
void PRINT_words(unsigned char x,unsigned char y, char *ptr);
/*******************************************************************************
 画点
*******************************************************************************/
void PRINT_point(unsigned char x,unsigned char y,unsigned char s);
/*******************************************************************************
 画线任意方向的斜线,直线数学方程aX+bY=1
*******************************************************************************/
void PRINT_line(unsigned char x0,unsigned char y0,unsigned char xt,unsigned char yt,unsigned char s);
/*******************************************************************************
 画圆数学方程(X-Ox)^2+(Y-Oy)^2=Rx^2
*******************************************************************************/
void PRINT_circle(unsigned char Ox,unsigned char Oy,unsigned char Rx,unsigned char s);

⌨️ 快捷键说明

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