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;

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

    关注

    6035

    文章

    44554

    浏览量

    634641
  • 程序
    +关注

    关注

    117

    文章

    3785

    浏览量

    81004
  • x25045
    +关注

    关注

    0

    文章

    9

    浏览量

    13981
收藏 人收藏

    评论

    相关推荐

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

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

    Keil详细安装教程(同时兼容51与STM32)

    在安装目录创建两文件夹,用于存放c51 版keil,用于存放arm 版keil 。 1
    的头像 发表于 11-26 11:26 1587次阅读
    Keil详细安装教程(同时兼容<b class='flag-5'>51</b>与STM32)

    通过C51单片机控制数码管显示

    电子发烧友网站提供《通过C51单片机控制数码管显示.docx》资料免费下载
    发表于 11-12 15:51 2次下载

    把esp8266加入到c51单片机单通道程序怎么写

    要将ESP8266模块加入到C51单片机的单通道程序中,您需要了解如何通过串行通信(UART)与ESP8266进行通信。以下是如何实现这点的步骤和示例代码。 步骤 1:硬件连接 首先,您需要
    的头像 发表于 10-18 11:32 563次阅读

    为I2C启动加载准备TMS320C645x应用程序

    电子发烧友网站提供《为I2C启动加载准备TMS320C645x应用程序.pdf》资料免费下载
    发表于 10-16 11:30 0次下载
    为I2<b class='flag-5'>C</b>启动加载准备TMS320<b class='flag-5'>C645x</b>应用<b class='flag-5'>程序</b>

    使用TMS320C642x引导加载程序

    电子发烧友网站提供《使用TMS320C642x引导加载程序.pdf》资料免费下载
    发表于 10-16 10:44 0次下载
    使用TMS320<b class='flag-5'>C642x</b>引导加载<b class='flag-5'>程序</b>

    使用TMS320C672x引导加载程序

    电子发烧友网站提供《使用TMS320C672x引导加载程序.pdf》资料免费下载
    发表于 10-16 10:09 0次下载
    使用TMS320<b class='flag-5'>C672x</b>引导加载<b class='flag-5'>程序</b>

    请厂家发份CS1237和CS1238的C51驱动程序

    请厂家发份CS1237和CS1238的C51驱动程序,hrblgd@163.com,谢谢
    发表于 09-08 18:51

    EEPROM读写程序详解

    EEPROM(Electrically Erasable Programmable Read-Only Memory)读写程序的详解涉及多个方面,包括EEPROM的基本工作原理、读写流程、编程接口、代码示例以及注意事项等。以下是
    的头像 发表于 09-05 12:32 1968次阅读

    求教!!!keil C51 程序烧录失败

    1、同一个工程,在某个函数中加入1~5nop () ,都能正常编译通过。其中加入1、3nop ()可以正常烧录;而加入2、4
    发表于 08-15 11:35

    基于51单片机16x16点阵显示电路图及程序元件清单

    本资源内容概要:       这是基于51单片机16x16点阵显示电路图及程序设计包含了电路图源文件(Altiumdesigner软件打开)、C语言
    发表于 06-21 14:34 4次下载

    C51转STM8驱动12864液晶屏,中文乱码的原因?

    C51转STM8遇到好困难啊 驱动12864液晶屏 中文乱码(液晶屏显示中文乱码 )
    发表于 04-28 06:20

    STM32做IIC读写程序,利用HAL库对IIC读写遇到的疑问求解

    最近在做IIC读写程序,用到HAL库,发现利用HAL库 对IIC读写问题,求助下! 在HA库对IIC读写操作的2
    发表于 04-24 06:27

    怎么啦?你的Keil C51和Keil MDK还无法共存吗?

    、安装KeilC51将安装路径设置为:D:\software\Keil\Keil_C51二、安装KeilMDKCore安装路径设置为:D:\software\Keil\Keil_MDKPack安装
    的头像 发表于 03-24 08:09 3188次阅读
    怎么啦?你的Keil <b class='flag-5'>C51</b>和Keil MDK还无法共存吗?

    C51C251有啥区别

    更大的内存和存储器容量,可以支持更复杂的应用程序。 性能和速度:由于C251具有更高的位宽和更复杂的指令集,它通常比C51具有更高的性能和运行速度。 应用领域:由于C51是较早的微控制
    发表于 01-20 11:39