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

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

?? ex93.c

?? 單片機C語言應用100例光盤全部C語言源程序
?? 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一区二区三区免费野_久草精品视频
97国产一区二区| 精品对白一区国产伦| 日韩区在线观看| 亚洲视频一区二区免费在线观看| 日本成人在线一区| 91在线精品一区二区三区| 精品区一区二区| 亚洲影院在线观看| 成人av在线播放网址| 日韩一区二区三| 夜夜爽夜夜爽精品视频| 成熟亚洲日本毛茸茸凸凹| 91精品久久久久久久久99蜜臂| 亚洲精品菠萝久久久久久久| 国产精品77777| 欧美大片在线观看一区二区| 午夜精品在线看| 欧洲在线/亚洲| 亚洲视频一区二区免费在线观看| 丰满放荡岳乱妇91ww| 久久精品夜夜夜夜久久| 另类小说一区二区三区| 欧美丰满嫩嫩电影| 亚洲成在人线免费| 色婷婷一区二区三区四区| 中文字幕在线不卡视频| caoporm超碰国产精品| 久久精品亚洲国产奇米99| 久久电影网站中文字幕| 欧美精品一区二区三区一线天视频| 日韩av不卡一区二区| 欧美一卡二卡三卡| 麻豆精品在线视频| 精品国产成人在线影院| 国产一区二区在线看| 久久综合九色综合欧美就去吻| 美女视频一区二区| 精品国产伦一区二区三区观看体验 | 这里只有精品免费| 丝袜亚洲另类欧美| 日韩欧美中文字幕精品| 国产在线一区二区| 国产欧美一区二区在线| 成人99免费视频| 亚洲欧洲av色图| 欧美日韩一区二区三区在线看| 日日夜夜一区二区| 日韩精品一区二区三区视频在线观看| 国内不卡的二区三区中文字幕| 国产午夜亚洲精品午夜鲁丝片 | 美女爽到高潮91| 久久婷婷久久一区二区三区| 国产综合久久久久久鬼色| 国产精品素人视频| 91麻豆国产福利精品| 亚洲不卡av一区二区三区| 日韩欧美亚洲国产另类| 国产1区2区3区精品美女| 亚洲欧美怡红院| 337p亚洲精品色噜噜| 精品一区二区三区日韩| 国产精品黄色在线观看| 欧美性受xxxx| 精品在线你懂的| 亚洲欧洲日本在线| 日韩一区二区视频| 99久久精品国产一区| 午夜久久久久久久久久一区二区| 2023国产精品视频| 色婷婷精品久久二区二区蜜臂av | 欧美一级淫片007| 粉嫩欧美一区二区三区高清影视| 亚洲国产精品欧美一二99| 精品国产乱子伦一区| 在线亚洲精品福利网址导航| 精品一区二区影视| 亚洲动漫第一页| 国产亚洲欧美激情| 56国语精品自产拍在线观看| 成人性生交大合| 日本vs亚洲vs韩国一区三区| 国产精品美女视频| 欧美大尺度电影在线| 在线亚洲一区观看| 成人免费的视频| 毛片av一区二区| 亚洲一区二区在线视频| 中文字幕av一区 二区| 日韩情涩欧美日韩视频| 欧美午夜理伦三级在线观看| 成人午夜视频免费看| 免费在线观看一区| 亚洲午夜av在线| 中文字幕制服丝袜一区二区三区 | 亚洲欧洲99久久| 久久网站最新地址| 日韩欧美专区在线| 欧美日本一区二区| 日本高清成人免费播放| 99麻豆久久久国产精品免费优播| 久久精品国产秦先生| 日韩不卡一二三区| 亚洲电影一区二区三区| 亚洲三级在线免费| 中文字幕一区av| 国产精品免费视频网站| 久久精品一区二区三区不卡| 欧美videos大乳护士334| 在线播放中文一区| 欧美日韩成人一区| 欧美精品九九99久久| 欧美日韩国产区一| 欧美美女一区二区三区| 欧美日韩亚洲国产综合| 欧美色视频在线观看| 欧美亚洲尤物久久| 欧美日韩中字一区| 欧美肥妇毛茸茸| 日韩欧美一区二区久久婷婷| 日韩免费高清视频| 久久夜色精品国产欧美乱极品| 日韩欧美一级二级三级| 337p日本欧洲亚洲大胆色噜噜| 日韩精品中文字幕一区二区三区 | 精品视频在线看| 欧美日韩亚洲丝袜制服| 91麻豆精品91久久久久同性| 欧美精三区欧美精三区| 欧美一区永久视频免费观看| 日韩午夜电影在线观看| 2017欧美狠狠色| 欧美激情一二三区| 一区二区三区在线不卡| 轻轻草成人在线| 激情伊人五月天久久综合| 成人免费观看视频| 91成人免费电影| 日韩免费高清av| 国产精品久久久久久久久免费樱桃| 亚洲婷婷综合久久一本伊一区| 亚洲另类春色校园小说| 日韩电影在线观看电影| 国产高清亚洲一区| 在线亚洲一区观看| 日韩欧美一二区| 国产精品传媒入口麻豆| 亚洲国产日韩a在线播放| 久久成人18免费观看| 成人黄色av电影| 欧美一区二区三区啪啪| 国产区在线观看成人精品| 一区二区三区在线视频免费| 日本亚洲三级在线| 99国产精品久久久久| 欧美三级日韩在线| 国产精品视频一二三区| 日本伊人精品一区二区三区观看方式| 成人免费观看av| 欧美一区二区三区公司| 1000部国产精品成人观看| 奇米一区二区三区| 色老汉av一区二区三区| 久久久久久久综合| 日本中文一区二区三区| 99re免费视频精品全部| 欧美精品一区二区三| 亚洲成av人在线观看| 国产成人精品影视| 日韩女同互慰一区二区| 亚洲香肠在线观看| 波多野结衣精品在线| 日韩欧美一区电影| 视频一区二区不卡| 色婷婷精品大视频在线蜜桃视频| 国产欧美精品一区| 久久99国内精品| 欧美猛男超大videosgay| 最近日韩中文字幕| 激情成人午夜视频| 欧美久久久久久久久| 欧美一级淫片007| 亚洲免费av观看| 国产一区二区三区久久久| 日韩一级片网址| 亚洲精品国产精品乱码不99| 精品亚洲国内自在自线福利| 天天色天天操综合| 风间由美一区二区av101| 日韩欧美一区电影| 久久黄色级2电影| 色综合久久99| 国产精品久久久久久久午夜片| 国产成人日日夜夜| 日韩一区二区高清| 亚洲国产一区二区视频| av电影在线不卡| 亚洲国产精品av| 国产在线国偷精品产拍免费yy | 蜜臀精品久久久久久蜜臀| 色综合色狠狠综合色|