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

📄 zlg7289.h

📁 51单片机控制DAC(TLV5614)的数据输出
💻 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 + -