📄 zlg7289.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 + -