📄 lcd.h
字号:
/************************************************************************************
* Copyright (c) 2004,西安铭朗电子科技有限责任公司
* All rights reserved.
*
* 文件名称: LCDC_Driver.H
* 文件标识: none
* 适用器件: C8051F120 DMC12864
*
* 摘 要: 本文件是LCD显示子程序;使用外部22.1184MHz晶振
*
* 当前版本:1.1
* 作 者:刘大伟
* 完成日期:2007年2月1日
*
* 历史版本:1.0
* 作 者:卢 阳
* 完成日期:2004年11月14日
*
* 历史版本:0.9
* 原作者 : 李林利
* 完成日期:2004年1月1日
*************************************************************************************/
#ifndef __lcd_driver_h__
#define __lcd_driver_h__
/************************************************************************************/
#define DISABLE_INTERRUPTS EA=0 //关闭总中断
#define ENABLE_INTERRUPTS EA=1 //打开总中断
#define Lcd_Cs 0x9000 //Lcd片选信号
#define Lcd_CsChip 0x000c //Lcd控制端片选信号;2/3位分别是块1块2片选位 高有效 在此全部选中
#define Lcd_Cs2 0x0008 //Lcd控制端片选信号;只有cs2选中
#define Lcd_Cs1 0x0004 //Lcd控制端片选信号;只有cs1选中
#define Lcd_WrCmd 0x0000 //Lcd写命令
#define Lcd_WrDat 0x0001 //Lcd写数据
#define Lcd_RdSta 0x0002 //Lcd读状态
#define Lcd_RdDat 0x0003 //Lcd读数据
#define Unto_Lcd 0x0800 //外部地址变量改变,使其不指向Lcd
#define Lcd_Dsl 0xc0 //Display start line (z_address)
#define z_addr 0x3f //length of z_address
#define y_addr 0x3f //length of y_address
#define St_Addr 0x40 //Set address (y_address)
#define x_addr 0x07 //length of x_address
#define St_Page 0xb8 //Set Page (x_address)
#define Dis_ON 0x3f //Display ON
#define Chip_Busy 0x80 //Chip is busy
#define Clr 0x00 //清屏
#define Full 0xff //满屏
/******************************函数外部引用声明***************************************/
/**************************************************************************************
* 函数名称:LCDC_Init;
*
* 函数功能描述:lcd_init;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: 具体Lcd操作请参考DMC12864.PDF;
*************************************************************************************/
void LCDC_Init(void);
/*************************************************************************************
* 函数名称:LCDC_CheckBusy;
*
* 函数功能描述: 判断LCD忙等待;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
*************************************************************************************/
void LCDC_CheckBusy(void);
/*************************************************************************************
* 函数名称:LCDC_DisFull;
*
* 函数功能描述: 清屏函数(全部写慢或清空);
*
* 输入参数:unsigned char类型数据,0x00是清屏;0xff是写满屏;
*
* 返回数据:none;
*
* 注意: none;
*************************************************************************************/
void LCDC_DisFull(unsigned char Flag);
/*************************************************************************************
* 函数名称:LCDC_WrCmd;
*
* 函数功能描述: 向LCD写命令;
*
* 输入参数:none;
*
* 返回数据:none;
*
* 注意: none;
*************************************************************************************/
void LCDC_WrCmd(unsigned char dd);
/*************************************************************************************
* 函数名称:LCDC_SetXY;
*
* 函数功能描述: LCD读写位置变换;
*
* 输入参数:unsigned char类型坐标x,y;
*
* 返回数据:none;
*
* 注意: 详细请参考DMC12864.PDF;程序中X,Y方向定义与屏定义不同
*************************************************************************************/
void LCDC_SetXY(unsigned char x,unsigned char y);
/*************************************************************************************
* 函数名称:LCDC_WrData;
*
* 函数功能描述:向LCD写数据;
*
* 输入参数:unsigned char类型坐标x,y, unsigned char类型写入数据dd;
*
* 返回数据:none;
*
* 注意: none;
*************************************************************************************/
void LCDC_WrData(unsigned char x,unsigned char y,unsigned char dd);
/*************************************************************************************
* 函数名称:LCDC_RdData;
*
* 函数功能描述:从LCD中读数据;
*
* 输入参数:unsigned char类型坐标x,y,
*
* 返回数据:unsigned char类型读出数据;
*
* 注意: none;
*************************************************************************************/
unsigned char LCDC_RdData(unsigned char x,unsigned char y);
/*************************************************************************************
* 函数名称:LCDC_DrawByte;
*
* 函数功能描述:向LCD写一个字节数据;
*
* 输入参数:BYTE类型坐标x,y;BYTE类型字节数据value;
*
* 返回数据:none;
*
* 注意: 数据显示在液晶点(x,y)(x,y+1)(x,y+2)(x,y+3)(x,y+4)(x,y+5)(x,y+6)(x,y+7)上,
* 请参考DMC12864.pdf;
*************************************************************************************/
void LCDC_DrawByte(unsigned char x,y,value);
/*************************************************************************************
* 函数名称:LCDC_DispWord;
*
* 函数功能描述:向LCD写一组数据,显示黑字符;
*
* 输入参数:unsiggned char类型写入起始坐标x,y,unsigned char类型写入数据code区指针p;
* unsigned char类型占用空间line*8行,length列,图形颜色取反标志位;
*
* 返回数据:none;
*
* 注意: none;
**************************************************************************************/
void LCDC_DispWord(unsigned char x,y,unsigned char code *p,unsigned char line,length,Flag);
/**************************************************************************************
* 函数名称:LCDC_DispFWord;
*
* 函数功能描述:向LCD写一组数据,显示黑字符;
*
* 输入参数:BYTE类型写入起始坐标x,y; BYTE类型写入数据xdata区指针p;
* BYTE类型占用空间line*8行,length列;BYTE类型显示数据取反标志位
* (非零为正常显示,零为取反)
*
* 返回数据:none;
*
* 注意: none;
***************************************************************************************
void LCDC_DispFWord(unsigned char x,y,unsigned char xdata *p,unsigned char line,length,Flag);
/**************************************************************************************/
#endif
/***************************************************************************************
* 文件结束
***************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -