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

📄 zlg7289.c

📁 zlg7289a驱动程序 包括头文件和主文件 汇编和C语言齐全
💻 C
字号:
#include<macros.h>
#include<iom8v.h>
#include<eeprom.h>
#include"define.h"
#include"function.h"

extern BYTE	Key_Delay_Counter;
extern BYTE	one;
extern BYTE	ten;
extern BYTE	hun;
/********************************************************************************
Function: void Send7289Data(BYTE Comm)
Input	: BYTE Comm
return	: none
Comment	: Only Send Command to ZLG7289
********************************************************************************/
void Send7289Byte(BYTE Comm)
{
	BYTE i;
	CLR_SCL;				
	delay_50us();
	for(i=0;i<8;i++)
	{
		if(Comm&0x80)
		{
			SET_SDA;
		}
		else
		{
			CLR_SDA;
		}
		Comm<<=1;
		SET_SCL;
		delay_25us();
		CLR_SCL;
		delay_25us();
	}
	CLR_SDA;
}

/********************************************************************************
Function: void Send7289Cmd(BYTE CommandCode)
Input	: 
return	: 
Comment	: 发送指令
********************************************************************************/
void Send7289Cmd(BYTE CommandCode)
{
	CLR_CS;
	Send7289Byte(CommandCode);
	SET_CS;
}

/********************************************************************************
Function: void Send7289DataComm(BYTE SendComm,BYTE SendData)
Input	: 
return	: 
Comment	: 往ZLG7289发送数据和命令
********************************************************************************/
void Send7289DataComm(BYTE SendComm,BYTE SendData)
{
	CLR_CS;
	Send7289Byte(SendComm);
       	delay_25us();
       	Send7289Byte(SendData);
       	SET_CS;
}

/********************************************************************************
Function: BYTE GetKeyCode()
Input	: 
return	: BYTE
Comment	: 读键值函数
********************************************************************************/
BYTE GetKeyCode(void)
{
	 BYTE KeyCode=0;
	 BYTE i;
	 CLR_CS;
	 delay_25us();					
	 Send7289Byte(READ_KEY);
	 SDASLAVE;				//定义SDA为输入引脚
	 SET_SDA;
	 SET_SCL;
	 delay_25us();
	 for(i=0;i<8;i++)
	 {
	 	if(PIND&BIT(PD7))
	 	{
	 		KeyCode|=0x01;	
	 	}
	 	else
	 	{
	 		;
	 	}
	 	KeyCode<<=1;
	 	CLR_SCL;
		delay_25us();
		SET_SCL;
	 	delay_25us();
	 }
	 KeyCode>>=1;
	 SET_CS;
	 CLR_SCL;
	 SDAMASTER;
	 CLR_SDA;
	Key_Delay_Counter=KEY_DELAY_COUNTER;
	return(KeyCode);
}



/********************************************************************************
Function: void ShowNumber(BYTE LedSel,BYTE Dat)
Input	: 
return	: NONE
Comment	: 让指定的数码管显示数据:LedSel从0 To 7
********************************************************************************/
void ShowNumber(BYTE LedSel,BYTE Dat)
{
	Send7289DataComm((0x80+LedSel),Dat);
}


/********************************************************************************
Function: void ShowNumbers(WORD dat,BYTE Group)
Input	: 
return	: NONE
Comment	: 数码管显示数据 Group:显示的是什么数据(设定温度,还是实际温度)
我在define.h中定义SETTEMP=4 REALTEMP=1
********************************************************************************/
void ShowSetTemp(WORD dat,BYTE Group)
{

	dismantle_num(dat);
	ShowNumber(Group-1,one);
	ShowNumber(Group,ten);
	ShowNumber(Group+1,hun);
}




/********************************************************************************
Function: void ShowSetMode(BYTE mode)
Input	: 
return	: NONE
Comment	: 显示设置的内容SP1 SP2 SP3 SP4
********************************************************************************/
void ShowSetMode(BYTE mode)
{
	ShowNumber(2,5);
	ShowNumber(1,14);
	ShowNumber(0,mode);
}

⌨️ 快捷键说明

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