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

📄 zlg7289.c

📁 周立功dp1581usb2.0实验仪
💻 C
字号:
/****************************************************************************
* File:ZLG7289.C
* 功能:ZLG7289A键盘显示芯片显示驱动程序。
* 说明:MCS-51单片机,晶振不要大于12MHz。
****************************************************************************/

#include <Reg51.h>
#include "ZLG7289.H"

// 定义控制口线,用户根据自已的系统相应更改


bit temp1;


/****************************************************************************
* 名称:Delay8uS
* 功能:8uS软件延时
* 说明:用户根据自已的系统相应更改
****************************************************************************/
void Delay8uS(void)
{ uchar i;
  for(i=0; i<4; i++);
}


/****************************************************************************
* 名称:Delay50uS
* 功能:50uS软件延时
* 说明:用户根据自已的系统相应更改
****************************************************************************/
void Delay50uS(void)
{ uchar i;
  for(i=0; i<25; i++);
}


/****************************************************************************
* 名称:ZLG7289_SendByte
* 功能:发送字节数据,高位在前,符合ZLG7289传输协议。
* 入口参数:dat		待发送的数据
* 注意:使用此函数前要选择ZLG7289,即ZLG7289_CS = 0;  
*       本函数不操作ZLG7289_CS
****************************************************************************/
void ZLG7289_SendByte(uchar dat)
{ uchar i;
  Delay50uS();						// 延时,T1 
  for(i=0; i<8; i++)
  { if( (dat&0x80)==0 ) ZLG7289_DIO = 0;
      else ZLG7289_DIO = 1;
	dat = dat<<1;					// 数据移位
    ZLG7289_CLK = 1;				// 发送CLK脉冲
    Delay8uS();						// 延时,T2
	ZLG7289_CLK = 0;
	Delay8uS();						// 延时,T3
  }

  ZLG7289_DIO = 0;
}
/*
uchar ZLG7289_RcvByte()
{ uchar i,dat=0;
	ZLG7289_DIO=1;
  Delay50uS();						// 延时,T1 
  for(i=0; i<8; i++)
  { 
	ZLG7289_CLK = 1;// 发送CLK脉冲
	dat = dat<<1;					// 数据移位
	Delay8uS();	
	dat=dat+(uchar)ZLG7289_DIO;	  
	ZLG7289_CLK = 0;
    Delay8uS();							// 延时,T2
  }

  	ZLG7289_DIO = 0;
  	return dat;
}*/
/****************************************************************************
* 名称:ZLG7289_SendCommand
* 功能:向ZLG7289发送命令。
* 入口参数:com		待发送的命令字
****************************************************************************/
void ZLG7289_SendCommand(uchar com)
{ 
	ZLG7289_CLK = 0;
  	ZLG7289_CS = 0;
  	ZLG7289_SendByte(com);			// 将命令发送出去
  	ZLG7289_CS = 1;
}
/*
uchar ZLG7289_GetKey()
{ 	
	uchar dat,i;
	ZLG7289_CLK = 0;
  	ZLG7289_CS = 0;
  	Delay50uS();
	dat=0x15;		// 延时,T1 
  	for(i=0; i<8; i++)
  	{ if( (dat&0x80)==0 ) ZLG7289_DIO = 0;
      else ZLG7289_DIO = 1;
	dat = dat<<1;					// 数据移位
    ZLG7289_CLK = 1;				// 发送CLK脉冲
    Delay8uS();						// 延时,T2
	ZLG7289_CLK = 0;
	Delay8uS();						// 延时,T3
  	}
  	dat=0;
	Delay50uS();
	for(i=0; i<8; i++)
  	{ 
		ZLG7289_CLK = 1;// 发送CLK脉冲'
		Delay8uS();	
		
		temp1=ZLG7289_DIO;
		dat=dat<<1;
		dat=dat+(uchar)temp1;
		ZLG7289_CLK = 0;
		Delay8uS();	
	}
	ZLG7289_DIO = 0;
	ZLG7289_CS = 1;
  	return dat;
}
*/
/****************************************************************************
* 名称:ZLG7289_SendData
* 功能:向ZLG7289发送数据。即带数据的命令。
* 入口参数:com		待发送的命令字
*           dat     待发送的数据
****************************************************************************/
void ZLG7289_SendData(uchar com, uchar dat)
{ ZLG7289_CLK = 0;
  ZLG7289_CS = 0;
  ZLG7289_SendByte(com);
  Delay50uS();						// 延时,T4
  ZLG7289_SendByte(dat);
  ZLG7289_CS = 1;
}


/****************************************************************************
* 名称:ZLG7289_SendBuf
* 功能:向ZLG7289发送显示数据,8字节,不译码。
* 入口参数:buf		显示数据缓冲区指针
****************************************************************************/
void ZLG7289_SendBuf(uchar *buf)
{ uchar i;
  for(i=0; i<8; i++)
  { ZLG7289_SendData(Z_DISPADR1+i, *buf++);
  }
}


/****************************************************************************
* 名称:ZLG7289_FillDat
* 功能:显示填充。显示不译码。
* 入口参数:dat		待填充的显示数据
****************************************************************************/
/*void ZLG7289_SendFillDat(uchar dat)
{ uchar i;
  for(i=0; i<8; i++)
  { ZLG7289_SendData(Z_DISPADRX+i, dat);
  }
}*/





⌨️ 快捷键说明

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