C语言应用到SSD,SSD1963的样例程序 c语言驱动读写程序.doc

SSD1963的样例程序 c语言驱动读写程序

/* STC89C54RD+的flash空间从0x4000~0xf3ff 共90个扇区,每扇区512字节*/

//#define BaseAddr0x1000/*51rc*/

//#define EndSectoraddr0x3d00/*51rc*/

//#define EndAddr0x3fff/*51rc 12K eeprom*/

#define BaseAddr0x4000

#define EndSectoraddr0xf200

#define EndAddr 0xf3ff

#define UseAddr 0x1000

/* ------------- 定义扇区大小 ------------- */

#define PerSector512

/* 用户程序需要记忆的数组, 用户实际使用了n-1个数据,数组长度规整到

2 4 8 16 32 64 上 */

uchar Ttotal[16]=

{

0x55,/* 作为判别引导头使用,用户程序请不要修改它 */

/* 用户保存记忆的数据 */

0x01,/* 用途说明....*/

0x02,

0x03,

0x04,

0x05,

0x06,

0x07,

0x08,

0x09,

0x0a,

0x0b,

0x0c,

0x0d,

0x0e,

0x0f,

};

uint timerForDelay,/* 专供延时用的变量 */

i,/* 循环变量*/

EepromPtr;/* eeprom读写指针*/

/* --------------- 命令定义 --------------- */

#define RdCommand0x01/* 字节读 */

#define PrgCommand0x02/* 字节写 */

#define EraseCommand0x03/* 扇区擦除 */

/* 定义常量 */

#define Error 1

#define Ok 0

/* 定义Flash对应于20MHz晶振系统的操作等待时间 */

/* 时钟倍频时WaitTime用 0x00*/

#define WaitTime0x01

/* ================ 打开 ISP,IAP 功能 ================= */

void ISP_IAP_enable(void){

EA=0;/* 关中断 */

ISP_CONTR =ISP_CONTR & 0x18; /* 0001,1000*/

ISP_CONTR =ISP_CONTR | WaitTime;/* 写入硬件延时*/

ISP_CONTR =ISP_CONTR | 0x80; /* ISPEN=1*/

}

/* =============== 关闭 ISP,IAP 功能 ================== */

void ISP_IAP_disable(void){

ISP_CONTR=ISP_CONTR & 0x7f;/* ISPEN = 0 */

ISP_TRIG=0x00;

EA= 1;/* 开中断 */

}

/* ================ 公用的触发代码 ==================== */

void ISPgoon(void){

ISP_IAP_enable();/* 打开 ISP,IAP 功能*/

ISP_TRIG=0x46;/* 触发ISP_IAP命令字节1*/

ISP_TRIG=0xb9;/* 触发ISP_IAP命令字节2*/

_nop_();

}

/* ==================== 字节读 ======================== */

uchar byte_read(uint byte_addr){

ISP_ADDRH = (uchar)(byte_addr >> 8);/* 地址赋值*/

ISP_ADDRL = (uchar)(byte_addr & 0x00ff);

ISP_CMD = ISP_CMD& 0xf8;/* 清除低3位 */

ISP_CMD = ISP_CMD| RdCommand;/* 写入读命令*/

ISPgoon();/* 触发执行*/

ISP_IAP_disable();/* 关闭ISP,IAP功能

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值