|
|
| | -文章搜索 - 最新文章 - | |
x25045的读写程序 用c51写的 |
| 发布时间:2001年3月30日 点击次数:6038 |
| 来源: 作者: |
#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; } |
|
|
|
|
[新闻热点] 相关文章: Microchip可扩充外置存储功能的MCU简介: Microchip科技公司扩充了它的PIC18CXXX 架构,添加了第一批PICmicro无ROM设备,包括PIC18C601和 PIC18C801无ROM微控制器。这两种新型的微处理器使工程师可以灵活地选择外置闪存或 EPROM 程序存储器,以扩充和配合高档系统应用的程序/数据存储器。 ...... Signia公司宣布与Agilent公司达成蓝牙营销协议 安森美计划投资1亿在四川增设6吋芯片制造厂 MICROTEK推出MPDA 668掌上超人 台湾地区成为全球第二大半导体设备市场 |
|
|
|