资源简介
针对EEPROM编写的C语言控制程序,实现了写入和读取,EEPROM其实现在已经不多了,传上来以防有人需要

代码片段和文件信息
#include “io430.h“
#include “in430.h“
// 用符号定义25lc020A 各命令
#define c_READ 3 //读命令
#define c_WRITE 2 //写命令
#define c_WRDI 4 //写禁止
#define c_WREN 6 //写允许
#define c_RDSR 5 //读状态寄存器
#define c_WRSR 1 //写状态寄存器
// 用符号定义状态寄存器中的状态位
#define BP1 BIT3
#define BP0 BIT2
#define WEL BIT1
#define WIP BIT0
// 用符号定义使用的端口和管脚,可据具体的连线进行修改
#define PeSEL P3SEL
#define PeDIR P3DIR
#define PeOUT P3OUT
#define PeIN P3IN
#define eeCS BIT0
#define eeSI BIT1
#define eeSO BIT2
#define eeSCK BIT3
// 用符号定义待写和待读EEPROM的起始单元地址、单元数,可据具体的情况修改
#define EEaddressW 0x00 // 待写起始单元为00h
#define EEnumberW 24 // 待写单元数为24个字节
#define EEaddressR 0x00 // 待读起始单元为00h,即刚才写入信息的空间
#define EEnumberR 24 // 待读单元数为24个字节
// 函数名称:send_SI_byte
// 函数功能:通过SI向EEPROM传送一个字节的数据
// 函数参数:向EEPROM发送的指令、地址或者数据(均为一字节)
// 函数返回值:无
void send_SI_byte(unsigned int a);
// 函数名称:read_SO_byte
// 函数功能:通过SO从EEPROM读取一个字节的数据
// 函数参数:无
// 函数返回值:读取到的数据(一字节)
unsigned int read_SO_byte();
// 函数名称:chk_WIP
// 函数功能:查询EEPROM转台寄存器的WIP位值,直到不忙时返回
// 函数参数:无
// 函数返回值:无
void chk_WIP();
// 函数名称:send_SCK
// 函数功能:向EEPROM的SCK引脚输出一个正脉冲信号
// 函数参数:无
// 函数返回值:无
void send_SCK();
// 函数名称:p_WREN
// 函数功能:设置EEPROM写允许命令
// 函数参数:无
// 函数返回值:无
void p_WREN();
// 函数名称:p_WRDI
// 函数功能:设置EEPROM写禁止命令
// 函数参数:无
// 函数返回值:无
void p_WRDI();
// 函数名称:EE_byte_read
// 函数功能:从EEPROM中读出指定地址单元的一个字节内容
// 函数参数:指定EEPROM单元的地址
// 函数返回值:指定EEPROM单元的内容
unsigned int EE_byte_read(unsigned int address);
// 函数名称:EE_byte_write
// 函数功能:向EEPROM指定单元写入一个字节内容
// 函数参数:指定EEPROM单元的地址address、指定写入单元的内容data
// 函数返回值:无
void EE_byte_write(unsigned int addressunsigned int data);
// 函数名称:rd_status
// 函数功能:读EEPROM状态寄存器
// 函数参数:无
// 函数返回值:EEPROM状态寄存器的值
unsigned int rd_status();
// 函数名称:wr_status
// 函数功能:写EEPROM状态寄存器
// 函数参数:待写入EEPROM的状态值
// 函数返回值:无
void wr_status(unsigned int data);
const unsigned char data[]={……} // 利用const关键字在ROM中预置要写入的内容(char类型),写入格式为‘h‘‘e‘‘l‘‘l‘‘o‘等等
unsigned char buffer; // 声明RAM缓冲区,存放读取到的EEPROM内容
unsigned char *p=&buffer; // 声明指针指向buffer,便于后续操作
void main( void )
{
// Stop watchdog timer to prevent time out reset
WDTCTL = WDTPW + WDTHOLD;
…… // 用户自编EEPROM读/写主程序部分
……
……
LPM0;
}
void send_SI_byte(unsigned int a)
{
unsigned int ib;
for(i=0;i<8;++i)
{
b=a< switch(b&0x0080){
case 0x0080: PeOUT=PeOUT|eeSI; break; // a中第(8-i)位为1,置SI=1.
case 0: PeOUT=PeOUT&(~eeSI); break; // a中第(8-i)位为0,置SI=0.
default:;
}
send_SCK(); // 通过SCK输出一个clock
}
}
unsigned int read_SO_byte()
{
unsigned int ia=0;
for(i=0;i<8;++i)
{
a=a<<1; // 将a左移一位
if((PeIN&eeSO)==0) a=a&254; // 置a末位为0
else a=a|1; // 置a末位为1
se
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 5987 2011-12-15 15:37 EEPROM操作指令_C语言版.c
文件 1500 2013-12-28 22:32 说明.txt
----------- --------- ---------- ----- ----
7487 2
相关资源
- 操作系统c语言模拟文件管理系统844
- C语言开发实战宝典
- C++中头文件与源文件的作用详解
- C语言代码高亮html输出工具
- 猜数字游戏 c语言代码
- C语言课程设计
- 数字电位器C语言程序
- CCS FFT c语言算法
- 使用C语言编写的病房管理系统
- 通信过程中的RS编译码程序(c语言)
- 计算机二级C语言上机填空,改错,编
- 用回溯法解决八皇后问题C语言实现
- 简易教务管理系统c语言开发文档
- 操作系统课设 读写者问题 c语言实现
- 小波变换算法 c语言版
- C流程图生成器,用C语言代码 生成C语
- 3des加密算法C语言实现
- 简单的C语言点对点聊天程序
- 单片机c语言源程序(51定时器 八个按
- 个人日常财务管理系统(C语言)
- c语言电子商务系统
- 小甲鱼C语言课件 源代码
- 将图片转换为C语言数组的程序
- C语言实现的一个内存泄漏检测程序
- DES加密算法C语言实现
- LINUX下命令行界面的C语言细胞游戏
- 用单片机控制蜂鸣器播放旋律程序(
- 学校超市选址问题(数据结构C语言版
- 电子时钟 有C语言程序,PROTEUS仿真图
- 尚观培训linux许巍老师关于c语言的课
评论
共有 条评论