📄 zlg7289.h
字号:
#define uchar unsigned char
#define uint unsigned int
#include<intrins.h>
#define nops() {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}
//#define ZLG_7289_CLK P1_0
//#define ZLG_7289_DIO P1_1
//#define ZLG_7289_INT P3_2
#define ZLG_7289_Reset() ZLG_7289_CMD(0XA4)
sbit ZLG_7289_CLK=P1^0;
sbit ZLG_7289_DIO=P1^1;
sbit ZLG_7289_INT=P3^2;
sbit ZLG_7289_CS =P1^2;
//sbit P2_0=P2^0;
//sbit P2_1=P2^1;
//sbit P2_2=P2^2;
/******延时程序*******
void ShortDelay(uchar t)
{
while(t--);
}
***********************/
void ZLG_7289_Init() reentrant
{
ZLG_7289_CS=1;
ZLG_7289_CLK=0;
ZLG_7289_DIO=1;
ZLG_7289_INT=1;
}
void ZLG_SPI_Write(uchar dat) reentrant
{
uchar i=8;
while(i--)
{
ZLG_7289_DIO=(bit)(dat&0x80);
dat<<=1;
ZLG_7289_CLK=1;
nops();
ZLG_7289_CLK=0;
nops();
}
}
uchar ZLG_SPI_Read() reentrant
{
uchar dat,i=8;
ZLG_7289_DIO=1; //读取数据之前DIO引脚要置1以切换到输入状态
while(i--)
{
ZLG_7289_CLK=1;
nops();
dat<<=1; //注意此处应先移位后进行dat++的操作
if(ZLG_7289_DIO) dat++;
ZLG_7289_CLK=0;
nops();
}
return dat;
}
uchar ZLG_7289_Keybord() reentrant
{
uchar keyvalue,i;
ZLG_7289_CS=0;
for(i=0;i<5;i++) nops(); //延时52微秒
ZLG_SPI_Write(0x15);
for(i=0;i<2;i++) nops();//延时22微秒
keyvalue=ZLG_SPI_Read();
ZLG_7289_CS=1;
return keyvalue;
}
ZLG_7289_CMD(uchar CMD) reentrant
{
uchar sav=IE,i;
IE&=0XFA; //关外部中断
ZLG_7289_CS=0;
for(i=0;i<5;i++) nops(); //延时52微秒
ZLG_SPI_Write(CMD);
ZLG_7289_CS=1;
for(i=0;i<2;i++) nops();//延时22微秒
IE=sav; //恢复IE
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -