my93c46.h

来自「51单片机控制网卡实现上网程序代码」· C头文件 代码 · 共 73 行

H
73
字号
/**************************************************************/
#ifndef _MY93C46_H
#define _MY93C46_H
/**************************************************************/


#include "hostmcu.h"
#include "ylystd.h"

#define CS_1 {myoutportb(0x01,myinportb(0x01)|0x08)};
#define CS_0 {myoutportb(0x01,myinportb(0x01)&0xf7)};

#define SK_1 {myoutportb(0x01,myinportb(0x01)|0x04)};
#define SK_0 {myoutportb(0x01,myinportb(0x01)&0xfb)};

#define SET_DI(x) {myoutportb(0x01,(myinportb(0x01)&0xfd)|((x&0x01)<<1))};
#define GET_DO(x) (myinportb(0x01)&0x01)

#define DI_0 SET_DI(0)
#define DI_1 SET_DI(1)

#define _mynop_() {_nop_();};

/**************************************************************/
//default: word access if not define BYTE_ACCESS
//#define BYTE_ACCESS

//to 93C46:

#ifdef BYTE_ACCESS
  #define DATA_SUM 0x80
  #define DATA_LEN 8
  #define ADDR_LEN 7
  #define CMD_LEN  10
  #define ADDR_MSK 0x7f
#else
  #define DATA_SUM 0x40
  #define DATA_LEN 16
  #define ADDR_LEN 6
  #define CMD_LEN  9
  #define ADDR_MSK 0x3f
#endif

/**************************************************************/

uchar mw_erase(uchar address);
uchar mw_eral(void);
uchar mw_ewds(void);
uchar mw_ewen(void);
uint  mw_read(uchar address);
uchar mw_write(uchar address,uint dat);
uchar mw_wral(uint dat);
uchar mw_test(void);
uchar mw_init(void);

/**************************************************************/

enum {
   MW_ERASE  = 0xe000,
   MW_ERAL   = 0x9000,
   MW_EWDS   = 0x8000,
   MW_EWEN   = 0x9800,
   MW_READ   = 0xc000,
   MW_WRITE  = 0xa000,
   MW_WRAL   = 0x8800
};

#define DUMMY_WORD 0xffff

/**************************************************************/
#endif /* _MY93C46_H */
/**************************************************************/

⌨️ 快捷键说明

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