资源简介
针对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语言
- c语言迷宫算法
- 板材切割c语言源码
- 数字电压表adc0832+C语言源程序+protue
- 银行家算法c语言
- ATSHA204的C语言代码
- 《C语言接口与实现》书中源代码
- 学生选课管理系统C语言
- BP算法程序实现包括matlab、C语言、C
- 基于C语言的图片放大与缩小
- C语言编写的空间桁架计算程序
- P89LPC932硬件I2C软件包
- 热电偶查表
- 谭浩强 C语言程序设计第三版视频教程
- p2p通信的简单实现c语言
- 学生信息管理系统,C语言,课设,附
- Linux软件工程师(C语言)实用教程_
- 使用c语言写的磁盘碎片整理程序
- c语言 实现费诺编码
- AES密码算法C语言实现
- C语言 stm32 AES加密解密
- C语言模拟IP重组 源码
- 用C语言写bitmap
- 背包问题之贪婪算法求解C语言源代码
- 史上最全经典数据结构算法c语言实现
- MP3音频解码流程带C语言源码加注释
- 战争模拟器C语言
- 看门狗 c语言程序代码
- C语言课程设计——猜数字游戏
- C51交通灯控制系统(c语言)
评论
共有 条评论