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

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

?? pcf8591.c

?? 51單片機的I2C接口的AD及DA轉換器的應用
?? C
字號:
//-----------------------函數聲明,變量定義--------------------------------------------------------
#include <reg51.h>
#include <intrins.h>
sbit SDA=P1^0;                          // 將p1.0口模擬數據口
sbit SCL=P1^1;                          // 將p1.1口模擬時鐘口
#define delayNOP(); {_nop_();_nop_();_nop_();_nop_();};	                 
bit   bdata SystemError;                // 從機錯誤標志位
//-----------------------PCF8591專用變量定義--------------------------------------------------------
#define	PCF8591_WRITE	0x92
#define	PCF8591_READ 	0x93
#define  NUM  4 	                    //	接收和發送緩存區的深度
unsigned char idata receivebuf[NUM];    // 數據接收緩沖區
//--------------------------------------------------------------------------------------------------
// 函數名稱: iic_start()
// 函數功能: 啟動I2C總線子程序
//--------------------------------------------------------------------------------------------------
void iic_start(void)
{ 	EA=0;            //時鐘保持高,數據線從高到低一次跳變,I2C通信開始
	SDA = 1;         
	SCL = 1;
	delayNOP();      // 延時5us 
	SDA = 0;
	delayNOP();
	SCL = 0;
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: iic_stop()
// 函數功能: 停止I2C總線數據傳送子程序
//--------------------------------------------------------------------------------------------------
void iic_stop(void)
{ 
	SDA = 0;   	   //時鐘保持高,數據線從低到高一次跳變,I2C通信停止
	SCL = 1;
	delayNOP();
	SDA = 1;
	delayNOP();
	SCL = 0;
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: slave_ACK
// 函數功能: 從機發送應答位子程序
//--------------------------------------------------------------------------------------------------
void slave_ACK(void)
{
	SDA = 0;    
	SCL = 1;
	delayNOP();			
	SDA = 1;
	SCL = 0;
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: slave_NOACK
// 函數功能: 從機發送非應答位子程序,迫使數據傳輸過程結束
//--------------------------------------------------------------------------------------------------
void slave_NOACK(void)
{ 
	SDA = 1;   
	SCL = 1;
	delayNOP();
	SDA = 0;
	SCL = 0;
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: check_ACK
// 函數功能: 主機應答位檢查子程序,迫使數據傳輸過程結束
//--------------------------------------------------------------------------------------------------
void check_ACK(void)
{ 
	SDA = 1;      // 將p1.0設置成輸入,必須先向端口寫1
	SCL = 1;
	F0 = 0;
	if(SDA == 1)    // 若SDA=1表明非應答,置位非應答標志F0
		F0 = 1;
	SCL = 0;
}

//--------------------------------------------------------------------------------------------------
// 函數名稱: IICSendByte
// 入口參數: ch
// 函數功能: 發送一個字節
//--------------------------------------------------------------------------------------------------
void IICSendByte(unsigned char ch)
{ 
	unsigned char idata n=8;     // 向SDA上發送一位數據字節,共八位
	while(n--)
	{ 
		if((ch&0x80) == 0x80)    // 若要發送的數據最高位為1則發送位1
		{
			SDA = 1;    // 傳送位1
			SCL = 1;
			delayNOP();
			SDA = 0;
			SCL = 0;    
		}
		else
		{  
			SDA = 0;    // 否則傳送位0
			SCL = 1;
			delayNOP();
			SCL = 0;  
		}
		ch = ch<<1;    // 數據左移一位
	}
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: IICreceiveByte
// 返回接收的數據
// 函數功能: 接收一字節子程序
//--------------------------------------------------------------------------------------------------
unsigned char IICreceiveByte(void)
{
	unsigned char idata n=8;    // 從SDA線上讀取一上數據字節,共八位
	unsigned char tdata;
	while(n--)
	{
		SDA = 1;
		SCL = 1;
		tdata = tdata<<1;    // 左移一位,或_crol_(temp,1)
		if(SDA == 1)
			tdata = tdata|0x01;    // 若接收到的位為1,則數據的最后一位置1
		else 
			tdata = tdata&0xfe;    // 否則數據的最后一位置0
		SCL=0;
	}
	return(tdata);
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: DAC_PCF8591
// 入口參數: slave_add從機地址,n要發送的數據個數
// 函數功能: 發送n位數據子程序
//--------------------------------------------------------------------------------------------------
void DAC_PCF8591(unsigned char controlbyte,unsigned char wdata)
{    
	iic_start();                // 啟動I2C
	IICSendByte(PCF8591_WRITE);     // 發送地址位
	check_ACK();                // 檢查應答位
    if(F0 == 1)
	{ 
		SystemError = 1;
		return;    // 若非應答表明器件錯誤或已壞,置錯誤標志位SystemError
	}
    IICSendByte(controlbyte&0x77);	//Control byte
	check_ACK();                // 檢查應答位
    if(F0 == 1)
	{ 
		SystemError = 1;
		return;    // 若非應答表明器件錯誤或已壞,置錯誤標志位SystemError
	}
     IICSendByte(wdata);	//data byte
	check_ACK();                // 檢查應答位
    if(F0 == 1)
	{ 
		SystemError = 1;
		return;    // 若非應答表明器件錯誤或已壞,置錯誤標志位SystemError
	}
	iic_stop();         // 全部發完則停止
	delayNOP();
	delayNOP();
	delayNOP();
	delayNOP();
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: ADC_PCF8591
// 入口參數: controlbyte控制字
// 函數功能: 連續讀入4路通道的A/D轉換結果到receivebuf
//--------------------------------------------------------------------------------------------------
void ADC_PCF8591(unsigned char controlbyte)
{ 
    unsigned char idata receive_da,i=0;
	iic_start();
	IICSendByte(PCF8591_WRITE);	//控制字
	check_ACK();
	if(F0 == 1)
	{
		SystemError = 1;
		return;
	}
	IICSendByte(controlbyte);	//控制字
	check_ACK();
	if(F0 == 1)
	{
		SystemError = 1;
		return;
	}
    iic_start();     //重新發送開始命令
   	IICSendByte(PCF8591_READ);	//控制字
	check_ACK();
	if(F0 == 1)
	{
		SystemError = 1;
		return;
	}
	while(i<4)
	{ 
		receive_da=IICreceiveByte();
		receivebuf[i++]=receive_da;
		slave_ACK();    // 收到一個字節后發送一個應答位
	}
	slave_NOACK();    // 收到最后一個字節后發送一個非應答位
	iic_stop();
}
//--------------------------------------------------------------------------------------------------
// 函數名稱: main
// 函數功能: 主程序
//--------------------------------------------------------------------------------------------------
main()
{
DAC_PCF8591(0x40,0); //控制字為0100 0000,允許模擬量輸出
                     //零值點輸出測試
DAC_PCF8591(0x40,0xff); //控制字為0100 0000,允許模擬量輸出
                     //滿值點輸入測試
ADC_PCF8591(0x40);
}






?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色天使色偷偷av一区二区| 欧美久久婷婷综合色| 午夜免费久久看| 香蕉加勒比综合久久| 日韩女优av电影在线观看| 久久精品夜色噜噜亚洲aⅴ| 国产风韵犹存在线视精品| 亚洲精品成人悠悠色影视| 精品99一区二区| 91小视频在线观看| 国产sm精品调教视频网站| 亚洲在线观看免费| 国产精品免费免费| 日韩一级大片在线观看| 日韩欧美在线综合网| 无码av免费一区二区三区试看| 国产性色一区二区| 欧美www视频| 欧美区一区二区三区| 99久久99久久精品免费看蜜桃| 激情另类小说区图片区视频区| 一区二区三区成人| 国产精品网站在线| 国产亚洲精品福利| 一区二区三区精品视频| 国产一区二区三区免费看| 琪琪久久久久日韩精品| 国产成人av影院| 欧美精品高清视频| 国产精品国产成人国产三级| 午夜成人免费电影| 91传媒视频在线播放| 国产日韩在线不卡| 狠狠色丁香婷综合久久| 欧美日韩久久一区| 中文字幕一区免费在线观看| 精品一区二区三区在线观看| 欧美酷刑日本凌虐凌虐| 亚洲欧洲国产日本综合| 丁香桃色午夜亚洲一区二区三区| 在线国产亚洲欧美| 一区二区不卡在线播放| av中文一区二区三区| 国产精品区一区二区三| 国产一区二区三区最好精华液| 欧美电影一区二区| 日韩成人午夜电影| 精品日韩欧美在线| 91精品国产aⅴ一区二区| 欧美一区二区视频观看视频| 亚洲婷婷综合色高清在线| 麻豆一区二区三| 欧美日韩高清一区| 亚洲美女视频在线观看| 成人免费av网站| 精品国产1区二区| 久草中文综合在线| 日韩欧美成人午夜| 视频精品一区二区| 欧美视频中文字幕| 国产精品国产三级国产普通话99 | 久久久久久影视| 福利一区二区在线观看| 国产精品久久久久久久裸模| 狠狠色丁香婷综合久久| 国产高清亚洲一区| 国产精品成人一区二区艾草| 在线亚洲免费视频| 久久99精品国产.久久久久久| 久久人人97超碰com| 色婷婷精品大在线视频| 青青草原综合久久大伊人精品| 欧美吞精做爰啪啪高潮| 99久久久国产精品| 国产欧美久久久精品影院| 久久国产生活片100| 日韩午夜激情视频| 精品在线观看视频| 亚洲精品一区二区三区香蕉| 午夜影院久久久| 欧美一级xxx| 极品瑜伽女神91| 日韩美女视频一区| 欧美亚洲国产一区在线观看网站 | 欧美一区二区三区爱爱| 亚洲精品久久久蜜桃| 欧美美女黄视频| 国产精品小仙女| 亚洲精品成人在线| 欧美zozo另类异族| 色综合天天天天做夜夜夜夜做| 亚洲综合999| 欧美激情综合五月色丁香小说| 欧美日韩在线一区二区| 国产精品系列在线播放| 午夜视频在线观看一区二区三区| 久久美女高清视频| 欧美巨大另类极品videosbest| 国产精品1区2区| 毛片一区二区三区| 亚洲精品伦理在线| 中文字幕视频一区| 欧美国产一区在线| 日韩一区二区影院| 欧美猛男男办公室激情| 白白色 亚洲乱淫| 九一久久久久久| 全部av―极品视觉盛宴亚洲| 亚洲视频在线观看一区| 中文字幕在线不卡一区| 国产三区在线成人av| 欧美电影免费观看高清完整版| 91麻豆国产香蕉久久精品| 国内精品在线播放| 亚洲一区二区三区不卡国产欧美 | 在线成人免费观看| 在线观看亚洲精品视频| 夫妻av一区二区| 国产精品123| bt欧美亚洲午夜电影天堂| 99久久精品99国产精品| 日本韩国欧美三级| 欧美日韩激情在线| 日韩美女在线视频| 国产日产欧美一区| 综合婷婷亚洲小说| 亚洲午夜激情网站| 韩国三级在线一区| 色综合久久综合中文综合网| 欧美日韩激情一区二区三区| 日韩精品中午字幕| 国产精品国产a| 琪琪久久久久日韩精品| 成人高清视频免费观看| 欧美一级夜夜爽| 亚洲欧美综合色| 免费在线观看日韩欧美| 99精品欧美一区二区三区综合在线| 91成人国产精品| 成人免费在线观看入口| 另类调教123区| 欧美三级中文字| 国产精品黄色在线观看| 久久成人久久爱| 欧美理论电影在线| 亚洲成av人影院在线观看网| www.色综合.com| 亚洲人精品午夜| 日本欧美大码aⅴ在线播放| 91丨porny丨最新| 久久久久久久一区| 日本不卡免费在线视频| 91国偷自产一区二区三区观看| 久久精品视频在线免费观看| 亚洲3atv精品一区二区三区| 欧美日韩亚洲另类| 亚洲一区中文在线| 99久久综合精品| 亚洲精品免费视频| 色播五月激情综合网| 亚洲综合一二三区| 欧美日本一道本| 久久精品国产精品亚洲精品| 欧美一区二区性放荡片| 久久99久久99| 国产欧美精品日韩区二区麻豆天美| 国产精品538一区二区在线| 国产精品免费av| 欧美影院午夜播放| 久久疯狂做爰流白浆xx| 欧美国产亚洲另类动漫| 欧美视频一区二区三区四区| 亚洲成人黄色小说| 国产欧美一区二区三区网站| 色国产综合视频| 美女视频一区在线观看| 亚洲国产精品99久久久久久久久| 在线视频你懂得一区| 日本亚洲欧美天堂免费| 日韩美女精品在线| 精品国产乱子伦一区| 成人精品视频网站| 人人超碰91尤物精品国产| 国产欧美一区二区在线| 欧美一区二区久久久| 91麻豆成人久久精品二区三区| 免费成人在线观看视频| 亚洲激情男女视频| 久久蜜桃一区二区| 精品国免费一区二区三区| 欧美日韩在线一区二区| 99国产精品久久| eeuss国产一区二区三区| 国产一区高清在线| 美美哒免费高清在线观看视频一区二区 | 久久精品一区二区三区不卡牛牛| 欧美日韩精品电影| 欧美一区二区国产| 欧美一级xxx| 久久亚洲精品小早川怜子|