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

📄 x5045.h

📁 智能交通控制系统中SCATS系统倒计时控制程序
💻 H
字号:
/*
*********************************************************************************************************
*
*                                               X5045源代码
*
* FILE         : x5045.H
* By           : CC
* DATE         : 2008-04-05
* VERSION      : 1.0
* 说明         : 1.看门狗:加电后需下降沿脉冲启动看门狗
*                2.EEPROM:spi接口,下降沿读SO,上升沿写SI,
*                3.每次写(寄存器和ROM)都需要使能写操作,写完需要等待10ms保存数据 
*                                
*********************************************************************************************************
*/

#define uchr unsigned char
#define uint unsigned int

//X5045 命令
#define WIP  0x01 //X5045 写操作忙标志位掩码
#define WEL  0x02 //X5045 写保护标志位掩码
#define WDT  0x00 //X5045 看门狗时间:1.4s
//#define WDT  0x10 //X5045 看门狗时间:600ms
//#define WDT  0x20 //X5045 看门狗时间:200ms
//#define WDT  0x30 //X5045 关闭看门狗
#define BLA  0x00 //X5045 ROM块锁定范围:无
//#define BLA  0x04 //X5045 ROM块锁定范围:180H-1FFH
//#define BLA  0x08 //X5045 ROM块锁定范围:100H-1FFH
//#define BLA  0x0C //X5045 ROM块锁定范围:000H-1FFH


#define WREN 0x06 //允许X5045写操作
//#define WRDS 0x04 //禁止X5045写操作
#define RDSR 0x05 //读X5045状态寄存器
#define WRSR 0x01 //写X5045状态寄存器
//#define RDAD 0x03 //读出X5045指定地址的数据,0x00-0xFF
//#define WRAD 0x02 //写入X5045数据到指定地址,0x00-0xFF
//#define RDAD 0x0B //读出X5045指定地址的数据,0x100-0x1FF
//#define WRAD 0x0A //写入X5045数据到指定地址,0x100-0x1FF

//X5045 PINS
sbit cs      = P3^4;
sbit sck     = P3^0;
sbit si      = P3^1;
sbit so      = P3^5;


void delay()
{
     uchr i;

     for(i=0;i<10;i++)
     {;}
}

void delay1()
{
     uint i;

     for(i=0;i<1000;i++)
     {;}
}

void send(uchr tx)
{
     uchr i;
	 uchr tmp=0x80;

     for(i=0;i<8;i++)
     {
         sck = 0 ;
		 if(tx & tmp)
         {
            si = 1;
         }
         else
         {
            si = 0;
         }
         tmp = tmp >> 1;
	     delay();
		 sck = 1;
	     delay();
      }
}

/*
uchr read(void)
{
    uchr i;
	uchr rx;

	for(i=0;i<8;i++)
    {
        sck = 0 ;
	    delay();
        rx= rx << 1;
        rx= rx + (uchr)so;
	    sck = 1;
	    delay();
     }
	 return(rx);
}
*/

/*
void wrwait()
{
     send(RDSR);
 	 while( read() & WIP )
	 {
	     delay1();
	 }
}
*/

/*
uchr save(uchr addr,uchr tx)
{
     uchr rx;
 
     cs = 0;
	 delay();
     send(WREN);
	 cs = 1;
     delay();
	 cs = 0;
	 delay();
	 send(WRAD);
     send(addr);
	 send(tx);
	 cs = 1;
	 delay1();
     cs = 0;
	 delay();
     send(RDAD);
     send(addr);
	 rx=read();
	 cs = 1;
	 delay();
     if(rx!=tx) return(0);
	 else       return(1);
}
*/

void x5045ini()
{    
     cs = 1;
	 delay();
     cs = 0;
	 delay();
     send(WREN);
	 cs = 1;
     delay();
     cs = 0;
	 delay();
	 send(WRSR);
     send(WDT);//设置X5045
	 cs = 1;
	 delay1();
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -