当前位置:首页 >> 信息与通信 >>

93c46读写程序


“93c46 读写程序” #include <reg52.h> sbit CS=P2^7; sbit SK=P2^6; sbit DI=P2^5; sbit DO=P2^4; /* extern unsigned char ReadChar(unsigned char address); extern void WriteChar(unsigned char addr

ess,unsigned char InData); extern void ReadString(unsigned char data *RamAddress,unsigned char RomAddress, unsigned char Number); extern void WriteString(unsigned char data *RamAddress,unsigned char RomAddress, unsigned char Number); */ // Write enable must precede all programming modes. void Ewen(void) { unsigned char temp,InData; CS=0; SK=0; CS=1; InData=0x98; // 10011XXXX for(temp=9;temp!=0;temp--) { // 9 DI=InData&0x80; SK=1; SK=0; InData<<=1; } CS=0; } // Disables all programming instructions. void Ewds(void) { unsigned char temp,InData; CS=0; SK=0; CS=1; InData=0x80; // 10000XXXX for(temp=9;temp!=0;temp--) { // 9 DI=InData&0x80; SK=1; SK=0; InData<<=1; } CS=0; } // Reads data stored in memory, at specified address. unsigned int Read(unsigned char address) { unsigned char temp; unsigned int result; Ewen(); SK=0; DI=1; // 110 A5-A0 CS=0; CS=1; SK=1; SK=0; // 1 address=address&0x3f|0x80; for(temp=8;temp!=0;temp--) { // 8 DI=address&0x80; SK=1; SK=0; address<<=1;

} DO=1; for(temp=16;temp!=0;temp--) { // 16 SK=1; result=(result<<1)|DO; SK=0; } CS=0; Ewds(); return(result); } // Writes memory location An - A0. void Write(unsigned char address,unsigned int InData) { unsigned char temp; Ewen(); SK=0; DI=1; // 101 A5-A0 CS=0; CS=1; SK=1; SK=0; // 1 address=address&0x3f|0x40; for(temp=8;temp!=0;temp--) { // 8 DI=address&0x80; SK=1; SK=0; address<<=1; } for(temp=16;temp!=0;temp--) { // 16 DI=InData&0x8000; SK=1; SK=0; InData<<=1; } CS=0; DO=1; CS=1; SK=1; while(DO==0) { // busy test SK=0; SK=1; } SK=0; CS=0; Ewds(); } /* // Erase memory location An - A0. void Erase(unsigned char address) { unsigned char temp; Ewen(); SK=0; DI=1; // 111 A5-A0 CS=0; CS=1; SK=1; SK=0; address|=0xc0; for(temp=8;temp!=0;temp--) { // 8 DI=address&0x80; SK=1; SK=0; address<<=1; } CS=0; DO=1; CS=1; SK=1; while(DO==0) { SK=0; SK=1; } SK=0; CS=0;

// 1

Ewds(); } // Erases all memory locations. Valid only at VCC = 4.5V to 5.5V. void Eral(void) { unsigned char temp,InData; Ewen(); CS=0; SK=0; CS=1; InData=0x90; // 10010XXXX for(temp=9;temp!=0;temp--) { // 9 DI=InData&0x80; SK=1; SK=0; InData<<=1; } CS=0; DO=1; CS=1; SK=1; while(DO==0) { SK=0; SK=1; } SK=0; CS=0; Ewds(); } // Writes all memory locations. Valid only at VCC = 4.5V to 5.5V. void Wral(unsigned int InData) { unsigned char temp,address; Ewen(); CS=0; SK=0; CS=1; address=0x88; // 10001XXXX for(temp=9;temp!=0;temp--) { // 9 DI=address&0x80; SK=1; SK=0; address<<=1; } for(temp=16;temp!=0;temp--) { // 16 DI=InData&0x8000; SK=1; SK=0; InData<<=1; } CS=0; DO=1; CS=1; SK=1; while(DO==0) { SK=0; SK=1; } SK=0; CS=0; Ewds(); } */ unsigned char ReadChar(unsigned char address) { unsigned char temp=address>>1; if(address&0x01) return((unsigned char)(Read(temp)>>8)); else return((unsigned char)(Read(temp))); }

void WriteChar(unsigned char address,unsigned char InData) { unsigned char temp=address>>1; if(address&0x01) Write(temp,(unsigned int)(Read(temp)&0x00ff|(InData<<8))); else Write(temp,(unsigned int)(Read(temp)&0xff00|InData)); } void ReadString(unsigned char data *RamAddress,unsigned char RomAddress, unsigned char Number) { while(Number!=0) { *RamAddress=ReadChar(RomAddress); RamAddress++; RomAddress++; Number--; } } void WriteString(unsigned char data *RamAddress,unsigned char RomAddress, unsigned char Number) { unsigned int temp; if(Number==0) return; if(RomAddress&0x01) { WriteChar(RomAddress,*RamAddress); RamAddress++; RomAddress++; Number--; } if(Number==0) return; while(Number>>1) { temp=*RamAddress; RamAddress++; temp=temp|(*RamAddress)<<8; RamAddress++; Write(RomAddress>>1,temp); RomAddress++; RomAddress++; Number--; Number--; } if(Number) WriteChar(RomAddress,*RamAddress);


相关文章:
93C46读写C程序
93C46读写C程序_电子/电路_工程科技_专业资料 暂无评价|0人阅读|0次下载|举报文档 93C46读写C程序_电子/电路_工程科技_专业资料。void write_enable(void) {...
93C46串行EEPROM数据读写实验
93C46 串行 EEPROM 数据读写实验一、实验目的 1.学会 93C46 的操作指令,掌握 93C46 读/写程序的编写 2.掌握 93C46 与单片机的接口方式 二、实验说明 93C46/...
AT93C46的汇编读写软件程序
AT93C46的汇编读写软件程序AT93C46的汇编读写软件程序隐藏>> AT93C46 的汇编读写软件程序 ; 程序模块已通过硬件仿真调试,方便实用. ; 说明: 软件包仅适用于 ...
AT93C46的汇编读写软件程序
AT93C46的汇编读写软件程序_信息与通信_工程科技_专业资料。AT93C46的汇编读写软件程序AT93C46/56/57/66 EEPROM 芯片示例模块程序 [日期:2010-09-08 ] [来源...
AT93C46中文资料详解
再由指令译码控制逡辑不内部频率产生器,在指定的地址将数据作读取戒写 入的动...子程序名称 READ_93C46 WRITE_93C46 ERASE_93C46 ERASE_ALL_93C46 ENABLE_93C...
程序
程序功能:对 EEPROM 进行读写测试 ---说 明:AT24C02 是 256Byte...AT93C46 串行 EEPROM 读写例程 MSP430 与 AT93C46 串行 EEPROM 读写例程 DC,2006-09-...
AT93C46中文资料
AT93C46中文资料_信息与通信_工程科技_专业资料。AT93C46 集成电路 AT93C46 ...AT93C46 功能指令: 功能指令 子程序名称 注意事项 读取数据(单一地址) READ_...
[QL200]软件模拟93LC46B读写程序[PIC16F877A+汇编]
[QL200]软件模拟93LC46B读写程序[PIC16F877A+汇编]_计算机软件及应用_IT/计算机...;4.本电路所使用 93C46 为 ATMEL 或 MICROCHIP 的,或不是该厂的,则烧写...
基于SPI总线的EEPROM读写实验
基于SPI 总线的 EEPROM 读写实验 一、实验目的 1 熟悉 AT93C46 的芯片功能。 2 掌握采用单片机和 AT93C46 的硬件接口技术。 3 掌握 AT93C46读写程序的...
一款实用的串行E2PROMEPROM24C、93C读写器(附该程序)瑞...
一款实用的串行E2PROMEPROM24C、93C读写器(附该程序)瑞达网制作_信息与通信_工程...93 系列常见有 93C46/56/66/76/86。做为手机或 C ALL 的码片广泛存在于...
更多相关标签:
93c46读写器 | 93c46程序 | 24c02读写程序 | 93c46 | 深圳限外 | 93c46读写软件 | 93c46读写程序stm32 | 93c46读写演示程序 |