📄 93c46.c
字号:
/*-----------------------------------------------------
SPI93cXX系列时序函数调用(PDIP普通封装)八位
//-----------------------------------------------------*/
#include<reg51.h>
#include<intrins.h>
#include<stdio.h>
#include<string.h>
#define UN unsigned char
void high46(void);
void low46(void);
void wd46(unsigned char dd);
unsigned char rd46(void);
void ewen46(void);
unsigned char read93c46_word(unsigned char address);
write93c46_word(unsigned char address,unsigned char dat);
void earal(void);
////#define di_93 dip3
//#define sk_93 dip2
//#define cs_93 dip1
//#define do_93 dip4
//#define gnd_93 dip5
//#define org_93 dip6
sbit di_93=P2^5;
sbit do_93=P2^4;
sbit sk_93=P2^6;
sbit cs_93=P3^5;
sbit ACC0=ACC^0;
sbit ACC1=ACC^1;
sbit ACC2=ACC^2;
sbit ACC3=ACC^3;
sbit ACC4=ACC^4;
sbit ACC5=ACC^5;
sbit ACC6=ACC^6;
sbit ACC7=ACC^7;
void main(void)
{
cs_93=0;sk_93=0;
ewen46();
while(1)
{
;;;
}
}
//发送高电平1涵数
//-----------------------------------------------------
void high46(void)
{
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
}
//-----------------------------------------------------
//发送低电平0涵数
//-----------------------------------------------------
void low46(void)
{
di_93=0;sk_93=1;_nop_();sk_93=0;_nop_();
}
//-----------------------------------------------------
//写操作允许涵数
//-----------------------------------------------------
void ewen46(void)
{
cs_93=1;_nop_();
high46();low46();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
cs_93=0;
}
//-----------------------------------------------------
//从指定的地址中读出一个字节数据(八位)涵数
//-----------------------------------------------------
unsigned char read93c46_word(unsigned char address)
{
cs_93=1;_nop_();
ACC=address;
high46();high46();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC6;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC5;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC4;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC3;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC2;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC1;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC0;sk_93=1; _nop_();sk_93=0;_nop_();
sk_93=1; _nop_(); ACC7=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC6=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC5=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC4=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC3=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC2=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC1=do_93;sk_93=0;_nop_();
sk_93=1; _nop_(); ACC0=do_93;sk_93=0;_nop_();
cs_93=0;
return(ACC);
}
//-----------------------------------------------------
//向指定的地址中写入一个字节数据(八位)涵数
//-----------------------------------------------------
write93c46_word(unsigned char address,unsigned char dat)
{cs_93=1;_nop_();
ACC=address;
high46();low46();
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC6;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC5;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC4;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC3;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC2;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC1;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=ACC0;sk_93=1; _nop_();sk_93=0;_nop_();
ACC=dat;
di_93=ACC7;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC6;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC5;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC4;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC3;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC2;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC1;sk_93=1;_nop_();sk_93=0;_nop_();
di_93=ACC0;sk_93=1;_nop_();sk_93=0;_nop_();
while(do_93==0){;}
cs_93=0;
}
//-----------------------------------------------------
//擦除所有单元涵数
//-----------------------------------------------------
void earal(void){
cs_93=1;_nop_();
high46();low46();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=0;sk_93=1; _nop_();sk_93=0;_nop_();
di_93=1;sk_93=1; _nop_();sk_93=0;_nop_();
while(do_93==0){;}
cs_93=0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -