0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个X25045的C51读写程序

Wildesbeast 来源:福星电子网 作者:福星电子网 2020-01-18 11:13 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

* x25045的读写程序 用c51写的 */

#define CS P2.7 /*单片机p2.7为片选 可以改为你的实际引脚 */

#define SO P2.6 /*数据输出 */

#define SK P2.5 /* 时钟 */

#define SI P2.4 /* 数据输入*/

/* here is the instrution of x25045*/

#define WREN 0x06

#define WRDI 0x04

#define RDSR 0x05

#define WRSR 0x01

#define READ0 0x03

#define READ1 0x0b

#define WRITE0 0x02

#define WRITE1 0x0a

unsigned char Read8()

{

bit bData;

unsigned char cLoop;

unsigned char cData;

for(cLoop=0;cLoop《8;cLoop++)

{

SK=1;

SK=0;

bData=SO;

cData《《=1;

if(bData)

{

cData|=0x01;

}

}

return cData;

}

void Write8(unsigned char cData)

{

unsigned char cLoop;

for(cLoop=0;cLoop《8;cLoop++)

{

if((cData&0x80)==0)

{

SI=0;

}

else

{

SI=1;

}

SK=0;

SK=1;

cData《《=1;

}

}

unsigned char ReadSR()

{

unsigned char cData;

CS=0;

Write8(RDSR);

cData=Read8();

CS=1;

return cData;

}

unsigned char WriteSR(unsigned char cData)

{

unsigned char cTemp;

cTemp=ReadSR();

if((cTemp&0x01)==1)

return 0;

CS=0;

Write8(WREN);

CS=1;

CS=0;

Write8(WRSR);

Write8(cData);

CS=1;

return 1;

}

void Write1B(unsigned char cData,unsigned char cAddress,bit bRegion)

/* 写入一个字节,cData为写入的数,cAddress为写入地址,bRegion为页 */

{

while((ReadSR()&0x01)==1)

{

}

CS=0;

Write8(WREN);

CS=1;

CS=0;

if(bRegion==0)

{

Write8(WRITE0);

}

else

{

Write8(WRITE1);

}

Write8(cAddress);

Write8(cData);

SK=0;

CS=1;

}

unsigned char Read1B(unsigned char cAddress,bit bRegion)

/* 读入一个字节,cAddress为读入地址,bRegion为页 */

{

unsigned char cData;

while((ReadSR()&0x01)==1)

{

}

CS=0;

if(bRegion==0)

{

Write8(READ0);

}

else

{

Write8(READ1);

}

Write8(cAddress);

cData=Read8();

CS=1;

return cData;

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 单片机
    +关注

    关注

    6074

    文章

    45335

    浏览量

    663294
  • 程序
    +关注

    关注

    117

    文章

    3836

    浏览量

    84745
  • x25045
    +关注

    关注

    0

    文章

    9

    浏览量

    14142
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    C语言和单片机C语言有什么差异

    有些扩展,及些特殊写法如C51扩展的 data xdata bit sbit类的,还有些中断程序写法 void int() inter
    发表于 11-14 07:55

    如何在 Keil C51 中对 SPROM 进行编程?

    如何在 Keil C51 中对 SPROM 进行编程?
    发表于 08-25 07:53

    如何在 Keil C51 的内存窗口中显示 SFR?

    如何在 Keil C51 的内存窗口中显示 SFR?
    发表于 08-25 07:09

    请问如何在 Keil C51 中对 SPROM 进行编程?

    如何在 Keil C51 中对 SPROM 进行编程?
    发表于 08-20 06:12

    赛元C51核95F8617B中文手册

    电子发烧友网站提供《赛元C51核95F8617B中文手册.pdf》资料免费下载
    发表于 06-16 17:35 2次下载

    新概念51单片机C语言教程入门、提高、开发、拓展全攻略

    一个发光二极管 2.3 while语句 2.4 for语句及简单延时语句 2.5 Keil仿真及延时语句的精确计算 2.6 不带参数函数的写法及调用 2.7 带参数函数的写法及调用 2.8 利用C51
    发表于 04-15 13:57

    51单片机C语言学习笔记

    c51语言快速入门
    发表于 03-24 14:04 3次下载

    4按键,3GPIO如何实现按下指示灯闪烁

    电路如果图,现在怎么操作才可以实现按下4按键有效,请大神写程序或者说写按键检测程序。我怎么写只能操作S1和S2,这个按键电路是正确的
    发表于 02-18 16:50

    用ADS8342采直流数据时,数据跳动,能否提供C51的例程参考下?

    用ADS8342采直流数据时,数据跳动,能否提供C51的例程参考下?
    发表于 02-14 08:06

    tpl0401的I2C读写应该follow什么样格式?

    tpl0401的I2C读写应该follow什么样格式。有没有具体的寄存器地址。 write: char tmp[2]={0x0,0x0}; tmp[1] = writevalue
    发表于 02-11 06:24

    单片机学习—C51源代码和Proteus仿真文件

    单片机学习—C51源代码和Proteus仿真文件.zip, 有各种例子
    发表于 02-10 13:46 2次下载

    C++ QT开发,IC读写程序

    步:新建qt C++项目 在此需要注意, 名称和路径不能有中文。 第二步: 添加控件 完成UI布局 IC读写
    的头像 发表于 12-30 14:55 1067次阅读
    <b class='flag-5'>C</b>++ QT开发,IC<b class='flag-5'>读写</b>器<b class='flag-5'>程序</b>

    TMS320C55x DSP CPU程序员参考补充

    电子发烧友网站提供《TMS320C55x DSP CPU程序员参考补充.pdf》资料免费下载
    发表于 12-21 11:36 3次下载
    TMS320<b class='flag-5'>C55x</b> DSP CPU<b class='flag-5'>程序</b>员参考补充

    AFE4490电路板读写寄存器的值直是0x00,为什么?怎么解决?

    现在做款关于AFE4490电路板,SPI通信问题直解决不了,读写寄存器的值直是0x00;我把我的SPI
    发表于 12-17 07:41

    读写DATAOUT_CTL_REG的程序有什么错误吗?

    程序如下,想请教下,我读写DATAOUT_CTL_REG的程序有什么错误吗? AD_Conversion(); AD_Write(0xD0280004); // 写入RANGE_
    发表于 12-13 08:38