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

📄 x5045.h

📁 X5045看门狗的用法和读写程序,C语言编写
💻 H
字号:
/******************************************************************
本文件是X5045的头文件,文件名为:X5045.h
作者:puke7381
编写日期:20081010	
版本:Vyf08.c.01
******************************************************************/

#ifndef __X5045_h__
#define __X5045_h__

/*-----------------------------------------------------------------
以下定义开门狗定时器定时溢出时间 (WD1,WD0)
-----------------------------------------------------------------*/
#define WDT1s4		0x00 				//1.4s溢出
#define WDT600ms	0x10				//600ms溢出
#define WDT200ms	0x20  				//200ms溢出
#define WDTDis		0x30				//关闭看门狗定时器

/*-----------------------------------------------------------------
以下定义EEPROM写保护区	  (BL1,BL0)
-----------------------------------------------------------------*/
#define EEP_NPr			0x00				//不保护
#define EEP_P4_1		0x04				//保护1/4,$180H ~ $1FFH
#define EEP_P2_1		0x08				//保护1/2,$100H ~ $1FFH
#define EEP_PAll		0x0c				//全保护, $000H ~ $1FFH

/*-----------------------------------------------------------------
以下定义X5045的指令
-----------------------------------------------------------------*/
#define WREN_cmd	0x06			//写允许指令
#define	WRDI_cmd	0x04			//写禁止指令
#define	RDSR_cmd	0x05			//读状态寄存器指令
#define	WRSR_cmd	0x01			//写状态寄存器指令
#define	RDDA_cmd	0x03			//向EEPROM读数据指令,从选定的地址单元中读(0 0 0 0 A8 0 1 1)
#define WRDA_cmd	0x02			//向EEPROM写数据指令,从选定的地址单元开始写(0 0 0 0 A8 0 1 0)

/*-----------------------------------------------------------------
以下定义最大写过程的时间
-----------------------------------------------------------------*/
#define	MAX_POLL	0x99			//用于查询写周期是否完成

/*-----------------------------------------------------------------
以下定义X5045与MCU的接法
-----------------------------------------------------------------*/
#define	X5045_CS	P1_0
#define	X5045_SCK	P1_1
#define	X5045_SI	P1_2
#define	X5045_SO	P1_3

/*-----------------------------------------------------------------
以下定义一些子程序(函数)
-----------------------------------------------------------------*/
void rst_wdog( void );						//复位看门狗
void si_byte( unsigned char cha );			//从SI线输入一个字节数据或指令到X5045的状态寄存器或EEPROM,高位(MSB)在前
unsigned char so_byte( void );				//从SO线输了一个字节数据,高位(MSB)在前
void wip_poll( void );						//查询写进度,读状态寄存器中的WIP位,若为0则表示处于空闲状态
unsigned char rdsr_func( void );			//读状态寄存器
void wrsr_func( unsigned char cha_time, unsigned char cha_eepprt );		//写状态寄存器,设置状态寄存器中的WD1,WD0,BL1,BL0
void set_wren( void );						//设置写允许
void set_wrdi( void );						//设置写禁止
unsigned char read_eeprom( unsigned int add );			//从EEPROM中读出地址add处的数据
void write_eeprom( unsigned char cha, unsigned int add);			//向EEPROM中的地址add写入数据cha
void x5045_init( void );					//X5045初始化,设置看门狗定时器与EEPROM保护区
void open_wdog( void );						//打开看门狗
void close_wdog( void );					//关闭看门狗


#endif

⌨️ 快捷键说明

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