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

📄 psd913f2.h

📁 电力变电站RTU监控软件(80C196NT单片机) 遥控
💻 H
字号:
/* psd913f2.h - Register and bit definitons for the PSD913F2 device

-1/6/00, msr
  >> New release.  

*/

#include <map913f2.h>  // include the definition of your system memory map

// Select which functions within psd913f2.c that you would like to include into your
// compile session by defining the associated compiler directive. defined = include, 
// not defined = do not include

// Module: flash_write_with_poll
// Programs a single byte, checks status using polling method.
//#define _F_W_W_P

// Module: flash_write_with_toggle
// Programs a single byte, checks status using toggle method.
//#define _F_W_W_T

// Module: flash_erase_bulk
// Erases the entire Flash memory (all sectors).
//#define _F_E_B

// Module: flash_reset
// Resets the main Flash memory to Read Array mode.
//#define _F_R

// Module: flash_read_id
// Reads the Flash Identifier byte from main Flash memory. 
//#define _F_R_I

// Module: flash_read_sector_protect
// Reads individual Flash sector protection status.
//#define _F_R_S_P

// Module: flash_boot_write_with_poll
// Programs a single byte, checks status using polling method.
//#define _F_B_W_W_P

// Module: flash_boot_write_with_toggle
// Programs a single byte, checks status using toggle method.
//#define _F_B_W_W_T

// Module: flash_boot_erase_bulk
// Erases the Flash boot memory (all sectors).
//#define _F_B_E_B

// Module: flash_boot_reset
// Resets the Flash boot memory to Read Array mode.
//#define _F_B_R

// Module: flash_boot_read_id
// Reads the Flash Identifier byte from boot Flash memory. 
//#define _F_B_R_I

// Module: flash_boot_read_sector_protect
// Reads Flash boot sector protection status and PSD security bit.
//#define _F_B_R_S_P


typedef struct	// general structure of 8 bit register allowing bit access 
	{
	unsigned char bit0 : 1;
	unsigned char bit1 : 1;
	unsigned char bit2 : 1;
	unsigned char bit3 : 1;
	unsigned char bit4 : 1;
 	unsigned char bit5 : 1;
	unsigned char bit6 : 1;
	unsigned char bit7 : 1;
	} Register;    

typedef union	// allow bit or byte access to registers 
	{
	char byte;
	Register bits;
	} Mix_Reg;



//*******************  PSD9XXFX register addresses  ************************

#define DATAIN_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x00))
#define DATAIN_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x01))
#define DATAIN_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x10))
#define DATAIN_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x11))
#define DATAOUT_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x04))
#define DATAOUT_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x05))
#define DATAOUT_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x12))
#define DATAOUT_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x13))
#define DIRECTION_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x06))
#define DIRECTION_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x07))
#define DIRECTION_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x14))
#define DIRECTION_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x15))
#define DRIVE_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x08))
#define DRIVE_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x09))
#define DRIVE_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x16))
#define DRIVE_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x17))
#define OUTENABLE_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0C))
#define OUTENABLE_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0D))
#define OUTENABLE_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x1A))
#define OUTENABLE_D (*(volatile Mix_Reg*)(PSD_REG_BASE+0x1B))
#define CONTROL_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x02))
#define CONTROL_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x03))
#define IMC_A (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0A))
#define IMC_B (*(volatile Mix_Reg*)(PSD_REG_BASE+0x0B))
#define IMC_C (*(volatile Mix_Reg*)(PSD_REG_BASE+0x18))
#define OMC_AB (*(volatile Mix_Reg*)(PSD_REG_BASE+0x20))
#define OMC_BC (*(volatile Mix_Reg*)(PSD_REG_BASE+0x21))
#define OMCMASK_AB (*(Mix_Reg*)(PSD_REG_BASE+0x22))
#define OMCMASK_BC (*(Mix_Reg*)(PSD_REG_BASE+0x23))
#define MAINPROTECT (*(Mix_Reg*)(PSD_REG_BASE+0xC0))
#define ALTPROTECT (*(Mix_Reg*)(PSD_REG_BASE+0xC2))
#define JTAG (*(volatile Mix_Reg*)(PSD_REG_BASE+0xC7))
#define PMMR0 (*(volatile Mix_Reg*)(PSD_REG_BASE+0xB0))
#define PMMR2 (*(volatile Mix_Reg*)(PSD_REG_BASE+0xB4))
#define PAGE (*(volatile Mix_Reg*)(PSD_REG_BASE+0xE0))
#define VM (*(Mix_Reg*)(PSD_REG_BASE+0xE2))



//****************** PSD9XXFX control register bit definitions *********

//PSD PORTA
#define PA0		bit0
#define PA1		bit1	
#define PA2		bit2	
#define PA3		bit3	
#define PA4		bit4	
#define PA5		bit5	
#define PA6		bit6	
#define PA7		bit7	

//PSD PORTB
#define PB0		bit0
#define PB1		bit1	
#define PB2		bit2	
#define PB3		bit3	
#define PB4		bit4	
#define PB5		bit5	
#define PB6		bit6	
#define PB7		bit7	

//PSD PORTC
#define PC0		bit0
#define PC1		bit1	
#define PC2		bit2	
#define PC3		bit3	
#define PC4		bit4	
#define PC5		bit5	
#define PC6		bit6	
#define PC7		bit7	

//PSD PORTD
#define PD0		bit0
#define PD1		bit1	
#define PD2		bit2	

//PSD JTAG
#define JEN		bit0   // JTAG enable

//PSD PMMR0
#define APD_ENABLE		bit1
#define PLD_TURBO		bit3
#define PLD_ARRAY_CLK	bit4
#define PLD_MCELL_CLK	bit5

//PSD PMMR2
#define PLD_CNTL0	bit2
#define PLD_CNTL1	bit3
#define PLD_CNTL2	bit4
#define PLD_ALE		bit5
#define PLD_DBE		bit6

//PSD VM
#define SRAM_CODE	bit0
#define EE_CODE		bit1
#define FL_CODE		bit2
#define EE_DATA		bit3
#define FL_DATA		bit4
#define PIO_EN		bit7


// Flash parameters

#define NVM_DATA_POLL     0x80		// flash status "data poll" bit at DQ7   
#define NVM_DATA_TOGGLE   0x40		// flash status "toggle poll" bit at DQ6
#define NVM_ERROR         0x20 		// flash status "error" bit at DQ5   


// Misc.
#define TRUE          0x01
#define FALSE         0x00 


⌨️ 快捷键说明

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