?? 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 + -