📄 zlg7289.c
字号:
#include<reg51.h>
#include"Config.h"
#include"Config.c"
#include"TimeDLY.h"
#include"zlg7289.h"
//函数:SPI_WriteOneByte()
//功能:向SPI总线写数据
//说明:写入的数据长度为1字节
void SPI_WriteOneByte(INT8U Wdata)
{
INT8U i;
for(i=0;i<8;i++)
{
ZLG7289DIO = (bit)(Wdata&0x80);
ZLG7289CLK = 1;
Wdata <<= 1;
nNop(1);
ZLG7289CLK = 0;
nNop(1);
}
}
//函数:SPI_ReadOneByte()
//功能:从SPI总线读数据
//说明:返回1字节数据
INT8U SPI_ReadOneByte()
{
INT8U i,temp;
ZLG7289DIO = 1; //将I/O切换到输入状态
for(i=0;i<8;i++)
{
ZLG7289CLK = 1;
nNop(5);
temp <<= 1;
if(ZLG7289DIO) temp++;
ZLG7289CLK = 0;
nNop(5);
}
return temp;
}
//函数:ZLG7289_Instruc()
//功能:执行ZLG7289纯指令
//说明:指令长度为1字节
void ZLG7289_Instruc(INT8U Instruc)
{
INT8U i;
i = IE;
IE &= 0xfa; // Disable external interrupt;
ZLG7289CS = 0;
nNop(5);
SPI_WriteOneByte(Instruc);
ZLG7289CS = 1;
nNop(5);
IE = i;
}
//函数:ZLG7289_Instruc_Data
//功能:执行ZLG7289带数据指令
//说明:指令长度以及数据长度均为1字节
void ZLG7289_Instruc_Data(INT8U Instruc,INT8U Data)
{
INT8U i;
i = IE;
IE &= 0xfa;
ZLG7289CS = 0;
nNop(5);
SPI_WriteOneByte(Instruc);
nNop(5);
SPI_WriteOneByte(Data);
ZLG7289CS = 1;
nNop(5);
IE = i;
}
//函数:ZLG7289_ReadKey()
//功能:执行ZLG7289读键盘指令
//说明:返回1字节的按键号
// 按键号的范围为:0 ~ 63(即0x0 ~ 0x3f)
// 若没有按按键被按下了,返回255(即0xff)
INT8U ZLG7289_ReadKey()
{
INT8U Key;
ZLG7289CS = 0;
nNop(10);
SPI_WriteOneByte(0x15);
nNop(5);
Key = SPI_ReadOneByte();
nNop(1);
ZLG7289CS = 1;
nNop(5);
return Key;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -