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

📄 ym_160128.txt

📁 基于T6963C控制芯片的160_128液晶程序
💻 TXT
📖 第 1 页 / 共 3 页
字号:
//*********1***************************************************
//Copyright(C)2009,桂林电子科技大学
//				   YM_160128A液晶驱动头文件
//文件名称:YM_160128A.h
//文件标识:(内参)
//摘    要:
//			1.配合源文件使用;
//			2.硬件参考作品;
//			3.
//
//当前版本:1.0
//作    者:	  张志明	
//完成日期:
//
//取代版本:无
//原 作 者:
//完成日期:无
//
//硬件连接:
//
//		 	LCD_YM_160128A_WR(6) 	 ----------	P2^3
//			LCD_YM_160128A_RD(7) 	 ---------- P2^2
//			LCD_YM_160128A_CE(8) 	 ----------	P2^1
//			LCD_YM_160128A_CD(9) 	 ----------	P2^0
//			LCD_YM_160128A_RESET(11) ---------	P2^4
//			LCD_YM_160128A_DATA(12~19) ------- P0	
//
//			LCD_YM_160128A_(1)		 ---------- GND(框架)
//			LCD_YM_160128A_(2)		 ---------- GND(系统)
//			LCD_YM_160128A_(3)		 ---------- VDD(+5V )
//			LCD_YM_160128A_(4)		 ---------- VADJ(LCD对比度调整电压-12.5V)
//			LCD_YM_160128A_(5)  	 ---------- VEE(-15V)
//			LCD_YM_160128A_(10)		 ---------- HALT(时钟操作暂停信号)
//			LCD_YM_160128A_(20)		 ---------- NC
//
//*************************************************************
#ifndef LCD_YM_160128A_H
#define LCD_YM_160128A_H

#include<reg52.h>

#define uint   unsigned int
#define uchar  unsigned char
#define ulong  unsigned long

#define LCD_YM_160128A_DATA P0

sbit LCD_YM_160128A_WR 	= P2^0;			  // 命令和数据写信号:"低"有效
sbit LCD_YM_160128A_RD 	= P2^1;			  // 命令和数据读信号:"低"有效
sbit LCD_YM_160128A_CE 	= P2^2;			  // 片        选信号:"低"有效
sbit LCD_YM_160128A_CD 	= P2^3;			  // "高":写命令,读状态
sbit  READCLK 	 =   P3^3;
									  // "低":数据读写
sbit LCD_YM_160128A_RESET 	= P2^4;			  // 复        位信号:"低"复位

#define  CursorPointer   0x21         // 光标地址设置
#define  OffsetReg       0x22         // CGRAM偏移地址设置
#define  AddrSet         0x24         // 地址指针位置显示地址设置
#define  TextHomeAddr    0x40         // 文本首地址
#define  TextArea        0x41         // 文本宽度设置
#define  GraHomeAddr     0x42         // 图形首地址设置
#define  GraArea         0x43         // 图形宽度设置
#define  OrMode          0x80         // 或模式显示
#define  ExorMode        0x81         // 异或模式显示
#define  AndMode         0x83         // 与模式显示
#define  TextAttMode     0x84         // 文本属性模式
#define  InterCGROM      0            // 内部CGROM
#define  ExCGRAM         0x08         // 外部CGRAM
#define  DisplayOff      0x90         // 显示关闭
									  // 显示开关: D0=1/0:光标闪烁启用/禁用;
                    				  //           D1=1/0:光标显示启用/禁用;
                                      //           D2=1/0:文本显示启用/禁用;
                                      //           D3=1/0:图形显示启用/禁用;
#define  CursorOn        0x92         // 光标显示,但不闪烁
#define  CursorBlink     0x93         // 光标闪烁
#define  TextOn          0x94         // 文本模式打开
#define  GraOn           0x98         // 图形模式打开
#define  TGAllOn         0x9c         // 文本图形模式都打开
#define  DataAutoWrite   0xb0         // 数据自动写
#define  DataAutoRead    0xb1         // 数据自动读
#define  ExitAutoRW      0xb2         // 退出数据自动读写模式
#define  DataWAddrI      0xc0         // 数据写,地址加1
#define  DataWAddrD      0xc2         // 数据写,地址减1
#define  DataWAddrNV     0xc4         // 数据写,地址不变
#define  DataRAddrI      0xc1         // 数据读,地址加1
#define  DataRAddrD      0xc3         // 数据读,地址减1
#define  DataRAddrNV     0xc5         // 数据读,地址不变
#define  ScreenPeek      0xe0         // 屏读
#define  ScreenCopy      0xe8         // 屏拷贝
#define  LineChar        32           // 设置宽度

#endif
//***************************************文件结束******************************************************




#include<reg52.h>
#include"YM_160128A.h"
uchar Cursor_X,Cursor_Y;	//光标的坐标
//*******************************************
//函数名称:uchar LCD_YM_160128A_ReadStatus(void)
//函数功能:读取液晶YM_160128A当前状态
//形式参数:无
//行参说明:无
//返回参数:读回的状态
//使用说明:
//	状态字格式:	STA7 STA6 STA5 STA4 STA3 STA2 STA1 STA0
//	状态字说明:
//				STA0:指令读写状态		  1准备好   0忙				
//				STA1:数据读写状态		  1准备好   0忙
//				STA2:数据自动读状态		  1准备好   0忙
//				STA3:数据自动写状态		  1准备好   0忙
//				STA4:未用
//				STA5:控制器运行检测可能性 1可能     0不能
//				STA6:屏读/拷贝出错状态	  1出错     0正确
//				STA7:闪烁状态检测		  1正常显示 0关显示
//
//*******************************************
uchar LCD_YM_160128A_ReadStatus(void)
{
	uchar ucDecode;
	LCD_YM_160128A_DATA = 0xff;
	LCD_YM_160128A_CE = 0;			//片选有效
	LCD_YM_160128A_CD = 1;
	LCD_YM_160128A_RD = 0;															 //**********01**********
	ucDecode = LCD_YM_160128A_DATA;
	LCD_YM_160128A_RD = 1;
	LCD_YM_160128A_CD = 0;
	LCD_YM_160128A_CE = 1;
	return ucDecode;
}
//*******************************************
//函数名称:void LCD_YM_160128A_CheckRW(void)
//函数功能:液晶YM_160128A读写查忙
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:
//		判断状态位STA1,STA0子程序(读写指令和读写数据状态),在写指令的读,
//		写数据之前这两个标志位必须同时为1
//*******************************************
void LCD_YM_160128A_CheckRW(void)
{
	uchar databusy;
	do																		  //**********02**********
	{  
		databusy = LCD_YM_160128A_ReadStatus();
	}
	while( !(databusy&0x03) );
}
//*******************************************
//函数名称:void LCD_YM_160128A_AutoRcheck(void)
//函数功能:液晶YM_160128A自动读查忙
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:
//		判断状态位STA2的子程序(数据自动读状态),该位在数据自动读操作过程中
//      取代STA0和STA1有效.在连续读过程中每读一次之前都要确认STA2=1
//*******************************************
void LCD_YM_160128A_AutoRcheck(void)
{   
	uchar databusy;
	do
	{																		   //**********03**********
		databusy = LCD_YM_160128A_ReadStatus();
	}
 	while( !(databusy&0x04) ); 
}
//*******************************************
//函数名称:void LCD_YM_160128A_AutoWcheck(void)
//函数功能:液晶YM_160128A自动写查忙
//形式参数:无
//行参说明:无
//返回参数:无
//使用说明:
//		 判断状态位STA3子程序(数据自动写状态)
//*******************************************
void LCD_YM_160128A_AutoWcheck(void)
{    
	uchar databusy;
    do																		   //**********04**********
	{
		databusy = LCD_YM_160128A_ReadStatus(); 
	}
 	while( !(databusy&0x08) );
}
//*******************************************
//函数名称:void LCD_YM_160128A_WriteData(uchar ucDat)
//函数功能:向液晶YM_160128A写数据
//形式参数:uchar ucDat
//行参说明:要写的数据
//返回参数:无
//使用说明:无
//*******************************************
void LCD_YM_160128A_WriteData(uchar ucDat)
{
	LCD_YM_160128A_CheckRW();
	LCD_YM_160128A_CE   = 0;			//片选有效
	LCD_YM_160128A_CD   = 0;			
	LCD_YM_160128A_DATA = ucDat;													   //**********向液晶DMF5001写数据**********
	LCD_YM_160128A_WR   = 0;
	LCD_YM_160128A_WR   = 1;
	LCD_YM_160128A_CD   = 1;
	LCD_YM_160128A_CE   = 1;
}
//*******************************************
//函数名称:void LCD_YM_160128A_WriteCommand(uchar ucCom)
//函数功能:向液晶YM_160128A写命令
//形式参数:uchar ucCom
//行参说明:要写的命令
//返回参数:无
//使用说明:无
//*******************************************
void LCD_YM_160128A_WriteCommand(uchar ucCom)
{
	LCD_YM_160128A_CheckRW();
	LCD_YM_160128A_CE   = 0;			//片选有效
	LCD_YM_160128A_CD   = 1;															//**********向液晶DMF5001写命令**********
	LCD_YM_160128A_DATA = ucCom;
	LCD_YM_160128A_WR   = 0;
	LCD_YM_160128A_WR   = 1;
	LCD_YM_160128A_CD   = 0;
	LCD_YM_160128A_CE   = 1;
}
//*******************************************
//函数名称:uchar LCD_YM_160128A_ReadData(void)
//函数功能:从液晶YM_160128A读数据
//形式参数:
//行参说明:
//返回参数:无
//使用说明:无
//*******************************************
uchar LCD_YM_160128A_ReadData(void)
{
    uchar ucDat;
	LCD_YM_160128A_CheckRW();
	LCD_YM_160128A_CE   = 0;			//片选有效
	LCD_YM_160128A_CD   = 0;
	LCD_YM_160128A_WR   = 1;
	LCD_YM_160128A_DATA = 0xff;		
	LCD_YM_160128A_RD   = 0;
	ucDat = LCD_YM_160128A_DATA;
	LCD_YM_160128A_RD   = 1;
	LCD_YM_160128A_CD   = 1;
	LCD_YM_160128A_CE   = 1;
	
	return ucDat;
}
//*******************************************
//函数名称:void LCD_YM_160128A_WriteMode1(uchar ucData,uchar ucCom)
//函数功能:YM_160128A写方式1
//形式参数:uchar ucData,uchar ucCom
//行参说明:    参数1   ,   指令
//返回参数:无
//使用说明:无
//*******************************************
void LCD_YM_160128A_WriteMode1(uchar ucData,uchar ucCom)
{
	LCD_YM_160128A_WriteData(ucData);												  //**********LcdDMF5001写方式1**********
	LCD_YM_160128A_WriteCommand(ucCom);
}
//*******************************************
//函数名称:void LCD_YM_160128A_WriteMode2(uchar ucData1,uchar ucData2,uchar ucCom)
//函数功能:YM_160128A写方式2
//形式参数:uchar ucData1,uchar ucData2,uchar ucCom
//行参说明:    参数1    ,   参数2    ,    指令
//返回参数:无
//使用说明:无
//*******************************************
void LCD_YM_160128A_WriteMode2(uchar ucData1,uchar ucData2,uchar ucCom)
{
	LCD_YM_160128A_WriteData(ucData1);												//**********LcdDMF5001写方式2**********
	LCD_YM_160128A_WriteData(ucData2);
	LCD_YM_160128A_WriteCommand(ucCom);
}
//*******************************************
//函数名称:void LCD_YM_160128A_AutoWriteData(uchar ucDat)
//函数功能:YM_160128A自动写数据
//形式参数:uchar ucDat
//行参说明:数据
//返回参数:无
//使用说明:无

⌨️ 快捷键说明

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