亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? 93c46.c

?? spi源程序c語言的
?? C
字號:
/*--------------------
〖說明〗SPI總線驅動程序 包括的普通封裝標準模式,特殊封裝標準模式 
默認11.0592Mhz的晶振。
〖文件〗93CXX.C ﹫2003/5/12
〖作者〗董石權(司馬東飛) dongshiquan@163.com QQ:52455690 
http://www.mcuzb.com/
〖修改〗修改建議請到論壇公布http://www.mcuzb.com
〖版本〗V3.00A Build 0803
〖公告〗請各位同僚尊重使用權!!!!!!!!!!! 
---------------------*/ 
/*通用93c06-93c86系列使用說明
93c06=93c4693c56=93c6693c76=93c86*/
//dipx 可以自行定義
#include <AT89X52.H>
#include "intrins.h"
/*-----------------------------------------------------
SPI93cXX系列時序函數調用(普通封裝)
調用方式:自行定義﹫2001/05/12 
函數說明:私有函數,封裝各接口定義
-----------------------------------------------------*/ 
/*#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 cs_93=0xA3;
sbit sk_93=0xA4;
sbit di_93=0xA5;
sbit do_93=0xA6;
sbit org_93=0xA7;
/*
sbit spi_cs  = 0xA3;
sbit spi_sk  = 0xA4;
sbit spi_di  = 0xA5;
sbit spi_do  = 0xA6;
sbit spi_org = 0xA7;*/


/*-----------------------------------------------------
SPI93cXX系列時序函數調用(普通封裝)
調用方式:void high46(void) ---高8位函數調用 
void low46(void) ---低8位函數調用﹫2001/05/12 
函數說明:私有函數,SPI專用93c46普通封裝驅動程序
-----------------------------------------------------*/ 
void high46(void)
{ 
di_93=1; 
sk_93=1; 
_nop_(); 
sk_93=0;
_nop_();
}
void low46(void)
{ 
di_93=0; 
sk_93=1;
_nop_();
sk_93=0;
_nop_();
}
void wd46(unsigned char dd)
{ 
unsigned char i; 
for (i=0;i<8;i++) 
{ 
if (dd>=0x80)
high46(); 
else 
low46(); 
dd=dd<<1; 
}
}
unsigned char rd46(void)
{ 
unsigned char i,dd; 
do_93=1; 
for (i=0;i<8;i++) 
{ 
dd<<=1; 
sk_93=1;
_nop_();
sk_93=0;
_nop_(); 
if (do_93)
dd|=1; 
} 
return(dd);
}

/*-----------------------------------------------------
SPI93cXX系列時序函數調用(特殊封裝)
調用方式:自行定義﹫2001/05/12 
函數說明:私有函數,特殊封裝各接口定義
----------------------------------------------------- 
#define di_93a dip5
#define sk_93a dip4
#define cs_93a dip3
#define do_93a dip6
#define gnd_93a dip7
#define vcc_93a out_vcc(2)
sbit cs_93a=P1^0;
sbit sk_93a=P1^1;
sbit di_93a=P1^2;
sbit do_93a=P1^3;
/*-----------------------------------------------------
SPI93cXX系列時序函數調用(特殊封裝)
調用方式:void high46a(void) ---高8位函數調用 
void low46a(void) ---低8位函數調用﹫2001/05/12 
函數說明:私有函數,SPI專用93c46特殊封裝驅動程序
-----------------------------------------------------
void high46a(void)
{ 
di_93a=1; 
sk_93a=1;_nop_();
sk_93a=0;_nop_();
}
void low46a(void)
{ 
di_93a=0; 
sk_93a=1;_nop_();
sk_93a=0;
_nop_();
}
void wd46a(unsigned char dd)
{ 
unsigned char i; 
for (i=0;i<8;i++) 
{ 
if (dd>=0x80) high46a(); 
else low46a();
dd=dd<<1; 
}
}
unsigned char rd46a(void)
{ 
unsigned char i,dd; 
do_93a=1; 
for (i=0;i<8;i++) 
{ 
dd<<=1; 
sk_93a=1;_nop_();
sk_93a=0;_nop_(); 
if (do_93a) dd|=1;
} 
return(dd);
}
/*-----------------------------------------------------
SPI93c46系列函數調用(舉例)
調用方式:bit write93c56_word(unsigned int address,unsigned int dat) ﹫2001/05/12
函數說明:私有函數,SPI專用
-----------------------------------------------------*/ 
void ewen46(void)
{ 
_nop_(); 
cs_93=1; 
high46(); 
wd46(0x30); 
cs_93=0;
}

unsigned char eral_46() 
{
   data unsigned char temp1; 
   data unsigned int temp2; 
   cs_93=0;
   sk_93=0; 
//spi_org=1; 
   cs_93=1;
   ewen46();
   _nop_();
   cs_93=1;
   _nop_();
   high46();
   wd46(0x20);
   wd46(0x20);
   cs_93=0;
   _nop_();
   cs_93=1; 
   temp1=1; 
   temp2=50000; 
   while(!do_93) 
   {
     temp2=temp2-1; 
	 if(temp2==0) 
	 {
	   temp1=0; 
	   break; 
	 } 
   } 
   cs_93=0;
   return temp1; 
}


unsigned int read93c46_word(unsigned char address)
{ 
unsigned int dat; 
unsigned char dat0,dat1; 
//gnd_93a=0; 
//gnd_93=0; 
cs_93=sk_93=0;
//org_93=1;
cs_93=1;_nop_(); 
//address=address<<1;
//address=address>>1;
address=address|0x80;
address=address|0x80; 
high46();
wd46(address);
dat1=rd46();
dat0=rd46(); 
cs_93=0;
dat=dat1*256+dat0; 
return(dat);
}
bit write93c46_word(unsigned char address,unsigned int dat)
{
unsigned char e,time,temp=address; 
e=0; 
while (e<3) 
{
//gnd_93a=0; 
//gnd_93=0; 
cs_93=sk_93=0; 
org_93=1; 
cs_93=1;
ewen46();
_nop_();
cs_93=1;
_nop_();
high46();
address<<=1;//??
address|=0x80;
address>>=1;//??
address|=0x40;
wd46(address); 
wd46(dat/256); 
wd46(dat%256);
cs_93=0;
_nop_();
cs_93=1;
time=0;
do_93=1;
while (1) 
{
if (do_93==1) 
break;
if (time>20) 
break;
time++;
} 
cs_93=0; 
if (read93c46_word(temp)==dat) 
{
return(0);
}
e++;
} 
return(1);
}
/*-----------------------------------------------------
SPI93c57系列函數調用(舉例)
調用方式:bit write93c57_word(unsigned int address,unsigned int dat) ﹫2001/05/12
函數說明:私有函數,SPI專用
----------------------------------------------------- 
void ewen57(void)
{
_nop_(); 
cs_93=1;
dip7=0;
high46();
low46();
wd46(0x60);
cs_93=0;
}
unsigned int read93c57_word(unsigned int address)
{ 
unsigned int dat; 
unsigned char dat0,dat1; 
gnd_93=0; 
cs_93=sk_93=0; 
org_93=1; 
cs_93=1; 
address=address>>1; 
high46(); 
high46(); 
wd46(address);
dat1=rd46();
dat0=rd46(); 
cs_93=0;
dat=dat1*256+dat0; 
return(dat);
}
bit write93c57_word(unsigned int address,unsigned int dat)
{ 
unsigned char e; 
unsigned int temp=address; 
e=0; 
while (e<3) 
{
gnd_93=0;
cs_93=sk_93=0;
org_93=1;
cs_93=1;
ewen57();
cs_93=1;
_nop_();
high46();
low46();
address>>=1;
address|=0x80;
wd46(address);
wd46(dat/256);
wd46(dat%256);
cs_93=0;
_nop_();
cs_93=1;
time=0;
do_93=1;
while (1) 
{
if (do_93==1) break;
if (time>20) break;
}
cs_93=0;
if (read93c57_word(temp)==dat) 
{
return(0);
}
e++;
}
return(1);
}
/*-----------------------------------------------------
SPI93c56系列函數調用(舉例)
調用方式:bit write93c56_word(unsigned int address,unsigned int dat) ﹫2001/05/12
函數說明:私有函數,SPI專用
----------------------------------------------------- 
void ewen56(void)
{ 
_nop_();
cs_93=1;
high46();
low46();
low46();
wd46(0xc0);
cs_93=0;
}
unsigned int read93c56_word(unsigned char address) 
{
unsigned int dat;
unsigned char dat0,dat1;
gnd_93=0;
cs_93=sk_93=0;
org_93=1;
cs_93=1;
address=address>>1;
high46();
high46();
low46();
wd46(address);
dat1=rd46();
dat0=rd46();
cs_93=0;
dat=dat1*256+dat0;
return(dat);
}
bit write93c56_word(unsigned char address,unsigned int dat)
{
unsigned char e;
unsigned int temp=address;
e=0; 
while (e<3) 
{
gnd_93=0;
cs_93=sk_93=0;
org_93=1;
cs_93=1;
ewen56();
_nop_();
cs_93=1;
_nop_();
high46();
low46();
high46();
address>>=1;
wd46(address);
wd46(dat/256);
wd46(dat%256);
cs_93=0;
_nop_();
cs_93=1;
TH0=0;
time=0;
do_93=1;
while (1) 
{
if (do_93==1) break;
if (time) break;
}
cs_93=0;
if (read93c56_word(temp)==dat) 
{
return(0);
}
e++;
}
return(1);
}
/*-----------------------------------------------------
SPI93c76與SPI93c86系列函數調用(舉例)
調用方式:bit write93c76_word(unsigned int address,unsigned int dat) ﹫2001/05/12
函數說明:私有函數,SPI專用
-----------------------------------------------------
void ewen76(void)
{
_nop_();
cs_93=1;
dip7=1;
high46();
low46();
low46();
high46();
high46();
wd46(0xff);
cs_93=0;
}
unsigned int read93c76_word(unsigned int address)
{
unsigned char dat0,dat1;
gnd_93=0;
cs_93=sk_93=0;
org_93=1;
cs_93=1;
address>>=1;
high46();
high46();
low46();
if((address&0x200)==0x200) high46(); 
else low46(); 
if ((address&0x100)==0x100) high46(); 
else low46();
wd46(address);
dat1=rd46();
dat0=rd46();
cs_93=0;
return(dat1*256|dat0);
}
bit write93c76_word(unsigned int address,unsigned int dat)
{
unsigned char e;
unsigned int temp=address;
e=0;
address>>=1;
while (e<3) 
{
gnd_93=0;
cs_93=sk_93=0;
org_93=1;
cs_93=1;
ewen76();
_nop_();
cs_93=1;
high46();
low46();
high46();
if((address&0x200)==0x200) high46(); 
else low46();
if ((address&0x100)==0x100) high46(); 
else low46();
wd46(address);
wd46(dat/256);
wd46(dat%256);
cs_93=0;_nop_();cs_93=1;
time=0;do_93=1; 
while (1) 
{
if (do_93==1) break;
if (time>10) break;
}
cs_93=0;
e++;
}
return(1);
}
/*-----------------------------------------------------
主函數調用(舉例)
調用方式:main() ﹫2001/05/12
函數說明:私有函數,SPI專用
-----------------------------------------------------*/
main()
{ 
  bit b;
  unsigned int i;
  unsigned int j[32];
  eral_46();
  for(i=0;i<32;i++)
  j[i]=read93c46_word(i);
  for(i=0;i<32;i++)
    write93c46_word(i,0x0910);
  i=0; 
  b=write93c46_word(i,0x1213);
  j[i]=read93c46_word(i);
  i=1; 
  b=write93c46_word(i,0x1122);
  j[i]=read93c46_word(i);
  i=2;
  b=write93c46_word(i,0x1344);
  j[i]=read93c46_word(i);
  i=3; 
  b=write93c46_word(i,0x1526);
  j[i]=read93c46_word(i);
  i=4;
  b=write93c46_word(i,0xccde);
  j[i]=read93c46_word(i);
  P2_7=0;
}


?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美性色综合网| 成人免费视频视频在线观看免费| 欧美性受极品xxxx喷水| 日韩理论片中文av| 在线观看91视频| 亚洲成精国产精品女| 日韩亚洲欧美综合| 国产黑丝在线一区二区三区| 国产精品国产三级国产普通话99 | 欧美精品久久一区二区三区| 亚洲人妖av一区二区| 欧洲精品一区二区| 美日韩一区二区| 欧美激情一区不卡| 在线观看国产91| 精品一区二区三区蜜桃| 国产精品污网站| 欧美日韩国产综合久久| 精品一区二区三区视频| 亚洲免费在线看| 日韩午夜电影av| 99久久综合狠狠综合久久| 亚洲www啪成人一区二区麻豆 | 精品国产电影一区二区| 成人永久aaa| 午夜一区二区三区视频| 国产丝袜美腿一区二区三区| 在线精品亚洲一区二区不卡| 国内国产精品久久| 一区二区高清免费观看影视大全| 精品国产一区二区三区久久久蜜月| av在线不卡网| 精品一区二区三区久久久| 一区二区三区中文字幕精品精品| 日韩美一区二区三区| 91视频免费看| 国产精品原创巨作av| 亚洲一二三专区| 国产精品拍天天在线| 日韩欧美一区二区视频| 日本韩国一区二区三区| 成人综合婷婷国产精品久久蜜臀| 亚洲不卡在线观看| 一色桃子久久精品亚洲| 欧美大片日本大片免费观看| 色欧美88888久久久久久影院| 韩国午夜理伦三级不卡影院| 亚洲国产精品麻豆| 亚洲女人的天堂| 日本一区二区三区久久久久久久久不 | 一区二区三区资源| 日本一区二区三区国色天香| 日韩天堂在线观看| 欧美私人免费视频| 日本伊人色综合网| 午夜视黄欧洲亚洲| 一区二区三区四区视频精品免费 | 亚洲色图都市小说| 国产视频一区二区在线| 精品久久免费看| 日韩天堂在线观看| 欧美一区二区免费视频| 欧美丝袜第三区| 欧美综合视频在线观看| 色综合久久88色综合天天6| 成人免费视频app| 国产精品1024| 狠狠色丁香婷婷综合久久片| 久久99久久99小草精品免视看| 视频在线观看91| 香蕉久久夜色精品国产使用方法| 亚洲一区成人在线| 亚洲一区精品在线| 亚洲国产精品久久久久秋霞影院| 一区二区三区四区在线| 亚洲激情校园春色| 亚洲一区影音先锋| 午夜视黄欧洲亚洲| 日韩国产欧美视频| 久久av资源网| 国产精品一区二区免费不卡 | 亚洲丝袜制服诱惑| 一区二区三区精品久久久| 亚洲愉拍自拍另类高清精品| 亚洲成人在线观看视频| 日韩成人午夜精品| 久久精品国产亚洲aⅴ| 久久99久久99精品免视看婷婷| 国产综合久久久久久鬼色| 国产成人av福利| 91丝袜美女网| 精品视频一区 二区 三区| 制服丝袜一区二区三区| 精品国产一二三区| 中文字幕亚洲精品在线观看 | 日韩亚洲欧美在线| 精品国产一区二区三区忘忧草 | 亚洲欧美成人一区二区三区| 亚洲午夜精品网| 久久精品免费看| 国产91在线观看丝袜| 91麻豆高清视频| 日韩你懂的在线播放| 欧美国产精品v| 无码av免费一区二区三区试看| 精品午夜一区二区三区在线观看| 国产99久久久精品| 欧美亚洲国产一区二区三区| 日韩美女视频在线| |精品福利一区二区三区| 五月天视频一区| 99亚偷拍自图区亚洲| 欧美在线观看你懂的| 精品卡一卡二卡三卡四在线| 国产精品高潮久久久久无| 午夜av电影一区| 成人精品电影在线观看| 欧美日本一道本| 欧美国产一区视频在线观看| 天天色图综合网| 9l国产精品久久久久麻豆| 69堂精品视频| 亚洲色图.com| 国产一二精品视频| 欧美日韩国产成人在线免费| 国产色综合一区| 石原莉奈一区二区三区在线观看| 成人av动漫在线| 欧美电影免费观看高清完整版 | 亚洲男人天堂一区| 美女在线视频一区| 91麻豆产精品久久久久久| 日韩免费看网站| 亚洲综合色婷婷| 大白屁股一区二区视频| 日韩无一区二区| 亚洲18色成人| 色av一区二区| 国产女主播在线一区二区| 麻豆精品一区二区av白丝在线 | 欧美日韩亚州综合| 日韩美女久久久| 粉嫩aⅴ一区二区三区四区五区 | 久久日韩精品一区二区五区| 亚洲午夜激情网站| 色乱码一区二区三区88| 日本一区二区电影| 国产馆精品极品| 久久久久久久久久美女| 日本成人中文字幕| 在线不卡中文字幕播放| 亚洲午夜视频在线| 在线观看日韩国产| 亚洲精选视频在线| 色悠悠亚洲一区二区| 亚洲人吸女人奶水| 色综合天天视频在线观看| 中文字幕制服丝袜一区二区三区| 国产成人精品亚洲日本在线桃色| 亚洲精品一区二区三区四区高清| 免费观看久久久4p| 91精品国产品国语在线不卡| 午夜精品福利视频网站| 欧美日韩成人在线| 男人的天堂亚洲一区| 日韩视频一区在线观看| 日本不卡视频在线观看| 精品久久久久久久久久久久包黑料| 日韩成人伦理电影在线观看| 日韩欧美一级在线播放| 经典三级视频一区| 国产日产精品一区| 成人黄色免费短视频| 亚洲欧美影音先锋| 色综合天天综合网天天看片| 一区二区三区美女| 91精品午夜视频| 国产在线精品一区二区夜色 | 久久久不卡影院| 成人激情综合网站| 亚洲精品成人悠悠色影视| 欧美三级在线视频| 美脚の诱脚舐め脚责91 | 亚洲色图清纯唯美| 欧美在线你懂得| 美国精品在线观看| 国产欧美一区二区在线| 色婷婷综合久色| 日韩精品91亚洲二区在线观看| 精品日韩成人av| 99久久免费视频.com| 亚洲成人1区2区| 国产亚洲欧美中文| 欧美在线观看视频一区二区三区| 日本亚洲免费观看| 国产免费观看久久| 欧美老肥妇做.爰bbww| 国产成人精品综合在线观看 | 91久久国产最好的精华液| 日韩二区在线观看|