📄 at45db041._h
字号:
/*******************************************************************************
** Filename: at45db041.h
** Describe: Flash 存储器at45db041 头文件
** Author : 古欣 www.avrvi.com
** Time : 2007-2-14
** ------------------------------------
** RESET -- PA0
** CS -- PA1
** SCK -- PA2
** SI -- PA3
** SO -- PA4
** BUSY -- PA5
** si/so是相对于at45db41而言,对于单片机so对应脚应该是输入
*******************************************************************************/
#ifndef _AT45DB041_
#define _AT45DB041_ 1
#define AT4541_PORT PORTA
#define AT4541_DDR DDRA
#define AT4541_PIN PINA
#define RESET_HIGH() AT4541_PORT |= 0X01
#define RESET_LOW() AT4541_PORT &=~ 0X01
#define CS_HIGH() AT4541_PORT |= 0X02
#define CS_LOW() AT4541_PORT &=~ 0X02
#define SCK_HIGH() AT4541_PORT |= 0X04
#define SCK_LOW() AT4541_PORT &=~ 0X04
//对应at45db41 SI,对单片机而言是输出
#define SI_HIGH() AT4541_PORT |= 0X08
#define SI_LOW() AT4541_PORT &=~ 0X08
#define CHEAK_BUSY 0x20
//((AT4541_PIN&CHEAK_BUSY)==CHEAK_BUSY) 说明准备好
#define CHEAK_BUSY_HIGH ((AT4541_PIN&CHEAK_BUSY)==CHEAK_BUSY)
#define SO_PIN 0X10
// ((AT4541_PIN&SO_PIN)==SO_PIN) 则说明从SO引脚输出了高电平
#define SO_PIN_HIGH ((AT4541_PIN&SO_PIN)==SO_PIN)
//除SI之外,单片机的引脚都设为输出
#define DDR_RESET_SET() AT4541_DDR |= 0X01
#define DDR_CS_SET() AT4541_DDR |= 0X02
#define DDR_SCK_SET() AT4541_DDR |= 0X04
#define DDR_SI_SET() AT4541_DDR |= 0X08
#define DDR_SO_SET() AT4541_DDR &=~ 0X10
/**************************************
** 说明: 初始化相关端口
**
**************************************/
extern void at4541_init(void);
/**************************************
** 说明: 检查at45db041忙状态
** 输出: 1:准备好,0:忙中
**************************************/
extern unsigned char at4541_check_busy(void);
/**************************************
** 说明:发送操作命令 (0xe800读)(0x8200写)
** 数据格式:16位命令字,16位地址位,32位任意数
** 输入:命令字,地址位
**************************************/
extern void at4541_commond_send(unsigned int commond,unsigned int address);
/**************************************
** 说明:读出一个字符
**
**************************************/
extern unsigned char at4541_read(void);
/**************************************
** 说明:写at45db041一个字符
**
**************************************/
extern void at4541_write(unsigned char data);
/**************************************
** 说明: 检查at45db041寄存器
** 输入: command:操作指令,57H或D7H
** 输出: at45db041寄存器的值
**************************************/
extern unsigned char at4541_read_status(unsigned char commond);
/**************************************
** 说明:AT45DB04停止
** 无输入输出 延时500ms
**************************************/
extern void at4541_stop(void);
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -