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

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

?? ex93.c

?? 單片機C語言應用100例.rar
?? C
字號:
//實例92:對SPI總線上掛接多個X5045的讀寫操作
#include<reg51.h>    //包含單片機寄存器的頭文件
#include<intrins.h>  //包含_nop_()函數定義的頭文件
sbit SCK=P3^4;       //將SCK位定義為P3.4引腳
sbit SI=P3^5;        //將SI位定義為P3.5引腳
sbit SO=P3^6;        //將SO位定義為P3.6引腳
sbit CS1=P3^7;        //將CS定義為P3.7引腳
sbit CS2=P3^3;        //將CS1位定義為P3.7引腳
#define WREN 0x06    //寫使能鎖存器允許
#define WRDI 0x04    //寫使能鎖存器禁止
#define READ 0x03    //讀出
#define WRITE 0x02   //寫入
/*****************************************************
函數功能:延時1ms
(3j+2)*i=(3×33+2)×10=1010(微秒),可以認為是1毫秒
***************************************************/
void delay1ms()
{
   unsigned char i,j;	
	 for(i=0;i<10;i++)
	  for(j=0;j<33;j++)
	   ;		 
 }
 /*****************************************************
函數功能:延時若干毫秒
入口參數:n
***************************************************/
 void delaynms(unsigned char n)
 {
   unsigned char i;
	for(i=0;i<n;i++)
	   delay1ms();
 }
/*****************************************************
函數功能:從X5045的當前地址讀出數據
出口參數:x
***************************************************/
unsigned char ReadCurrent(void)
{
  	unsigned char i;
	unsigned char x=0x00;      //儲存從X5045中讀出的數據
	SCK=1;                     //將SCK置于已知的高電平狀態
   for(i = 0; i < 8; i++)
	{
	   SCK=1;                 //拉高SCK
	   SCK=0;                 //在SCK的下降沿輸出數據	
	   x<<=1;  //將x中的各二進位向左移一位,因為首先讀出的是字節的最高位數據	   
		x|=(unsigned char)SO;  //將SO上的數據通過按位“或“運算存入 x      
	}
	return(x);   //將讀取的數據返回
 }
/*****************************************************
函數功能:寫數據到X5045的當前地址
入口參數:dat
***************************************************/
void WriteCurrent(unsigned char dat)
{
   unsigned char i;
	SCK=0;                 //將SCK置于已知的低電平狀態
  for(i = 0; i < 8; i++)  // 循環移入8個位
	{
	 SI=(bit)(dat&0x80);   //通過按位“與”運算將最高位數據送到S
		                    //因為傳送時高位在前,低位在后
	 SCK=0;
	 SCK=1;               //在SCK上升沿寫入數據
    dat<<=1;   //將y中的各二進位向左移一位,因為首先寫入的是字節的最高位
  }
}
/*****************************************************
函數功能:寫數據到第一個X5045的指定地址
入口參數:addr
***************************************************/
void WriteSet1(unsigned char dat,unsigned char addr)
{
   CS2=1;                 //使第二個X5045的片選無效
   SCK=0;                 //將SCK置于已知狀態
   CS1=0;                  //拉低CS,選中X5045
	WriteCurrent(WREN);    //寫使能鎖存器允許
	CS1=1;                  //拉高CS
   CS1=0;                  //重新拉低CS,否則下面的寫入指令將被丟棄
	WriteCurrent(WRITE);   //寫入指令
	WriteCurrent(addr);    //寫入指定地址
	WriteCurrent(dat);     //寫入數據
	CS1=1;                  //拉高CS
   SCK=0;                 //將SCK置于已知狀態
}
/*****************************************************
函數功能:寫數據到第二個X5045的指定地址
入口參數:addr
***************************************************/
void WriteSet2(unsigned char dat,unsigned char addr)
{
   CS1=1;                 //使第一個X5045的片選無效
   SCK=0;                 //將SCK置于已知狀態
   CS2=0;                  //拉低CS,選中X5045
	WriteCurrent(WREN);    //寫使能鎖存器允許
	CS2=1;                  //拉高CS
   CS2=0;                  //重新拉低CS,否則下面的寫入指令將被丟棄
	WriteCurrent(WRITE);   //寫入指令
	WriteCurrent(addr);    //寫入指定地址
	WriteCurrent(dat);     //寫入數據
	CS2=1;                  //拉高CS
   SCK=0;                 //將SCK置于已知狀態
}

/*****************************************************
函數功能:從第一個X5045的指定地址讀出數據
入口參數:addr
出口參數:dat
***************************************************/
unsigned char ReadSet1(unsigned char addr)
{
 unsigned char dat;
 CS2=1;                 //使第二個X5045的片選無效
 SCK=0;                 //將SCK置于已知狀態
 CS1=0;                  //拉低CS,選中X5045
 WriteCurrent(READ);   //開始讀
 WriteCurrent(addr);   //寫入指定地址
 dat=ReadCurrent();    //讀出數據
 CS1=1;                 //拉高CS
 SCK=0;                //將SCK置于已知狀態
 return dat;           //返回讀出的數據
 }
/*****************************************************
函數功能:從第二個X5045的指定地址讀出數據
入口參數:addr
出口參數:dat
***************************************************/
unsigned char ReadSet2(unsigned char addr)
{
 unsigned char dat;
 CS1=1;                 //使第一個X5045的片選無效
 SCK=0;                 //將SCK置于已知狀態
 CS2=0;                 //拉低CS,選中X5045
 WriteCurrent(READ);   //開始讀
 WriteCurrent(addr);   //寫入指定地址
 dat=ReadCurrent();    //讀出數據
 CS2=1;                //拉高CS
 SCK=0;                //將SCK置于已知狀態
 return dat;           //返回讀出的數據
 }
/*****************************************************
函數功能:看門狗復位程序
***************************************************/
void WatchDog1(void)
{
 CS1=1;    //拉高CS
 CS1=0;    //CS引腳的一個下降沿復位看門狗定時器
 CS1=1;    //拉高CS
}
/*****************************************************
函數功能:看門狗復位程序
***************************************************/
void WatchDog2(void)
{
 CS2=1;    //拉高CS
 CS2=0;    //CS引腳的一個下降沿復位看門狗定時器
 CS2=1;    //拉高CS
}

/*****************************************************
函數功能:主程序
***************************************************/
void main(void)
{ 
  unsigned char x;
  while(1)
  {
	  WriteSet1(0xf0,0x10);   //將數據“0xaa”寫入第一個X5045的指定地址“0x10”
	  delaynms(10);           //X5045的寫入周期為約10ms
	  x=ReadSet1(0x10);       //將數據從第一個X5045中的指定地址讀出來
	  WriteSet2(x,0x20);     //將數據x寫入第二個X5045的指定地址“0x20
	  delaynms(10);          //X5045的寫入周期為約10ms
	  P1=ReadSet2(0x20);     //將數據從第二個X5045中的指定地址讀出來,送P1口顯示
	  delaynms(100);         //延時100ms
	  WatchDog1();          //復位第一個X5045的看門狗   
	  WatchDog2();          //復位第二個X5045的看門狗   
  } 
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱国产乱300精品| 国内精品第一页| 欧美一区二区高清| 成人精品视频一区二区三区 | eeuss鲁片一区二区三区| 午夜精品免费在线观看| 国产精品视频线看| 777午夜精品免费视频| 成人高清在线视频| 久久精品国产成人一区二区三区| 一二三区精品视频| 国产精品污www在线观看| 日韩欧美国产综合| 欧美精品1区2区3区| 不卡在线观看av| 黑人精品欧美一区二区蜜桃| 香蕉乱码成人久久天堂爱免费| 中文一区二区在线观看| 精品免费99久久| 91精品午夜视频| 欧美影视一区二区三区| 成人综合激情网| 国产伦精品一区二区三区视频青涩| 亚洲成在线观看| 亚洲永久精品大片| 亚洲欧美日韩一区二区三区在线观看| 久久精品人人爽人人爽| 欧美电影免费观看高清完整版在线 | 亚洲综合成人在线视频| 国产精品欧美一区二区三区| 精品国产免费视频| 日韩午夜在线观看视频| 欧美日本免费一区二区三区| 在线观看网站黄不卡| 91婷婷韩国欧美一区二区| 99免费精品在线观看| 懂色av中文字幕一区二区三区| 精品一区二区三区免费毛片爱| 日本伊人色综合网| 日日嗨av一区二区三区四区| 亚洲综合无码一区二区| 一区二区三区资源| 一区二区三区国产豹纹内裤在线| 亚洲男同性恋视频| 亚洲国产一区二区在线播放| 一区二区欧美精品| 午夜日韩在线观看| 日韩精品每日更新| 老司机精品视频一区二区三区| 免费高清视频精品| 麻豆精品在线观看| 国产一区二区福利| 高清成人免费视频| av一二三不卡影片| 欧美天天综合网| 91精品国产色综合久久| 精品国产污污免费网站入口 | 日韩三级视频在线观看| 337p日本欧洲亚洲大胆色噜噜| 久久婷婷成人综合色| 国产网红主播福利一区二区| 国产精品蜜臀在线观看| 亚洲日本va午夜在线电影| 夜夜亚洲天天久久| 麻豆中文一区二区| 国产精品一二三四五| av在线播放不卡| 欧美日韩精品一区视频| 亚洲精品在线电影| 国产精品久久久99| 午夜精品国产更新| 国产综合久久久久影院| 成人ar影院免费观看视频| 色综合咪咪久久| 欧美日韩电影在线| 国产三级一区二区| 亚洲久草在线视频| 日本亚洲最大的色成网站www| 国产成人精品亚洲777人妖| 色呦呦网站一区| 欧美tickling挠脚心丨vk| 亚洲欧美自拍偷拍| 青青草成人在线观看| 成人午夜电影网站| 欧美日本免费一区二区三区| 中文字幕av一区二区三区免费看 | 亚洲成人一二三| 国内精品嫩模私拍在线| 色香蕉成人二区免费| 日韩欧美第一区| 一区二区三区中文免费| 国精品**一区二区三区在线蜜桃| 色又黄又爽网站www久久| 欧美成人三级电影在线| 亚洲狼人国产精品| 国产福利一区二区三区在线视频| 欧美手机在线视频| 中文在线资源观看网站视频免费不卡| 日韩中文字幕麻豆| 色哟哟一区二区在线观看| 久久久久99精品一区| 视频一区在线播放| 91社区在线播放| 国产亚洲午夜高清国产拍精品| 亚洲一区二区三区不卡国产欧美| 国产乱人伦偷精品视频不卡| 5月丁香婷婷综合| 亚洲欧美日韩久久| 岛国av在线一区| 精品国产乱码91久久久久久网站| 一区二区三区国产| 91丨九色porny丨蝌蚪| 国产欧美一区二区在线观看| 美女一区二区视频| 91.xcao| 亚洲18女电影在线观看| 色综合夜色一区| 国产精品每日更新在线播放网址| 久久99久久精品| 日韩一区二区高清| 肉丝袜脚交视频一区二区| 色香蕉久久蜜桃| 一区二区三区在线免费视频| 成人免费毛片嘿嘿连载视频| 久久色.com| 国产真实乱对白精彩久久| 3d成人动漫网站| 五月婷婷久久综合| 精品视频一区二区三区免费| 亚洲免费观看高清在线观看| 99视频热这里只有精品免费| 中文字幕欧美激情一区| 国产成人在线色| 国产视频在线观看一区二区三区 | 精品国精品国产尤物美女| 全国精品久久少妇| 欧美区视频在线观看| 亚洲国产毛片aaaaa无费看| 欧美在线你懂的| 亚洲综合久久av| 欧美美女激情18p| 日韩有码一区二区三区| 在线播放/欧美激情| 美女视频一区二区| 欧美成人激情免费网| 久久国产精品无码网站| www欧美成人18+| 国产91精品一区二区麻豆亚洲| 国产日韩欧美精品一区| 成人丝袜高跟foot| 亚洲免费在线看| 3atv一区二区三区| 狠狠色丁香婷婷综合久久片| 久久久精品免费免费| caoporn国产精品| 一区二区高清视频在线观看| 欧美日韩视频在线第一区 | 国产精品一区二区你懂的| 亚洲国产成人自拍| 色综合一区二区| 日本午夜精品视频在线观看| 精品福利视频一区二区三区| 国产大陆亚洲精品国产| 亚洲欧美日韩电影| 6080国产精品一区二区| 国产精品一二三| 亚洲免费观看在线视频| 3atv一区二区三区| 国产成a人亚洲| 亚洲一二三四区| 欧美电影免费观看高清完整版 | 久久aⅴ国产欧美74aaa| 国产视频亚洲色图| 欧美在线你懂的| 国产精品 日产精品 欧美精品| 一区二区三区中文字幕电影| 日韩免费在线观看| 91免费精品国自产拍在线不卡| 午夜精品视频在线观看| 中文欧美字幕免费| 欧美日韩国产片| 国产高清在线精品| 亚洲成人久久影院| 国产精品久久久久一区二区三区| 在线免费观看日本一区| 久久精品999| 一区二区三区精品视频| 26uuuu精品一区二区| 一本到不卡精品视频在线观看 | 九九精品视频在线看| 亚洲欧美激情一区二区| 精品成人一区二区| 欧美日韩美少妇| 成人黄色电影在线 | 91在线精品秘密一区二区| 三级欧美韩日大片在线看| 国产精品欧美久久久久一区二区| 日韩一区二区中文字幕| 91麻豆免费在线观看| 久久精品国产久精国产爱|