⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 93c46.c

📁 93C46读写程序(EE21学习板演示程序)
💻 C
字号:
/*********************************************
**项目: 93C46读写程序(EE21学习板演示程序)

**作者:一线工人

**网站:电子工程师之家 www.eehome.cn

**转贴请保持代码的完整性
*********************************************/


#include<reg52.h> 
#define uchar unsigned char 
#define uint unsigned int 
sbit CS=P2^4; 
sbit SK=P2^5; 
sbit DI=P2^6; 
sbit DO=P2^7; 
sbit led=P1^6; 
sbit dm=P1^4; 
sbit wm=P1^5; 

unsigned char code table[]={0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
                          0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E};

/****************擦写使能****************/ 
void Ewen(void) 
{ 
unsigned char i,temp; 
CS=0; 
SK=0; 
CS=1; 
temp=0x98; // 10011XXXX 
for(i=8;i>0;i--) 
{ 
DI=temp&0x80;//取高位 
SK=1; //写入 
SK=0; 
temp<<=1; 
} 
CS=0; 
} 

/****************擦写禁止***************/ 
void Ewds(void) 
{ 
uchar i,temp; 
CS=0; 
SK=0; 
CS=1; 
temp=0x80; // 10000XXXX 
for(i=8;i>0;i--) 
{ 
DI=temp&0x80; 
SK=1; 
SK=0; 
temp<<=1; 
} 
CS=0; 
} 
/*****************读数据********************/ 
unsigned int Read(unsigned char address) 
{ 
unsigned char i; 
unsigned int result; 
Ewen();//写使能 
SK=0; 
DI=1; 
CS=0; 
CS=1; 
SK=1; 
SK=0; 
address=address&0x3|0x80; 
for(i=8;i>0;i--) 
{ 
DI=address&0x80; 
SK=1; 
SK=0; 
address<<=1; 
} 
DO=1; 
for(i=16;i>0;i--) 
{ 
SK=1; 
result=(result<<1)|DO; 
SK=0; 
} 
CS=0; 
Ewds(); 
return(result); 
} 
/************************写数据*********************************/ 
void Write(unsigned char address,unsigned int InData) 
{ 
unsigned char i; 
Ewen(); 
SK=0; 
DI=1; 
CS=0; 
CS=1; 
SK=1; 
SK=0; 
address=address&0x3f|0x40;// 
for(i=8;i>0;i--) 
{ // 8 
DI=address&0x80; 
SK=1; SK=0; 
address<<=1; 
} 
for(i=16;i>0;i--) //16bit 
{ // 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(); 
} 


void delay(uint z) 
{ 
uint x,y; 
for(x=z;x>0;x--) 
for(y=113;y>0;y--); 
} 

void main(void) 
{ 
led=0; 
Write(0x03,0x03); 
delay(1000);
P0=0X01;
wm=1;
wm=0; 
P0=table[Read(0x03)]; 
dm=1;
dm=0;
while(1); 
} 

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -