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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? wds1620.c

?? c8051f020源代碼39個 使用Silicon Labs IDE 調(diào)試器
?? C
字號:
//參考程序A:WDS1620.C
/*DS1620.C  數(shù)字溫度傳感器DS1620測溫實(shí)驗(yàn):
    P0.2接DQ位 P0.3接 CLK位,P0.4接RST位,P0.0接SDA,P0.1接SCL.
    SAA1064驅(qū)動四位數(shù)碼管顯示溫度值:< 0 1 3. 4>
*/
#include <c8051f020.h>                    // SFR declarations
#include <intrins.h>
#define  WRITE       0x00                 // 寫位
#define  READ        0x01                 // 讀位
#define  CHIP_B      0x70                 //   SAA1064地址
#define  SMB_START   0x08  //(MT & MR) 主收發(fā)器發(fā)送起始位成功.再送從機(jī)//寫地址.
#define  SMB_MTADDACK   0x18 //(MT) 主收發(fā)器發(fā)送從地址+W成功;收到 ACK.
#define  SMB_MTDBACK    0x28 // (MT) 主收發(fā)器發(fā)送數(shù)據(jù)字節(jié)成功;收到ACK.
#define  SMB_MRADDACK   0x40 // (MR) 主收發(fā)器發(fā)送從地址+R成功;收到 ACK.
#define  SMB_MRADDNACK  0x48 // (MR) 主收發(fā)器發(fā)送從地址+R成功;收到NACK.
#define  SMB_MRDBACK    0x50   // (MR) 主收發(fā)器接收數(shù)據(jù)成功;主機(jī)發(fā)送ACK 
#define  SMB_MRDBNACK   0x58   // (MR) 主收發(fā)器接收數(shù)據(jù)成功;主機(jī)發(fā)送NACK 
char COMMAND;          // 保存從地址加讀/寫位,用在中斷服務(wù)程序SMBus ISR中          
char WORD;             // 保存在SUMBUS總線上傳送的數(shù)或剛被接受到的數(shù)據(jù)。
unsigned char totalnumber,sendnumber;  
unsigned char xdata SENDMODE;  
bit SM_BUSY;  //該位在開始接收數(shù)據(jù)或發(fā)送數(shù)據(jù)時被置位。在中斷完成后被清0
unsigned char wr_data[8];     //數(shù)組wr_data[8]中存放要寫入SAA1064的數(shù)據(jù)
unsigned char rd_data[8];     //數(shù)組rd_data[8]中存放從DS1620中讀出的數(shù)據(jù)
sbit RST = P0^4;  //  RST位
sbit CLK = P0^3;  //  CLK位
sbit DQ  = P0^2;  //  DQ位
void Delay(unsigned int TT)  //延時
{
	unsigned int k;
	for(k=0;k<TT;k++){
		_nop_();
	}
}
void Write1620(unsigned char m)   //向DS1620寫命令
{
	unsigned char k,b=1;
	RST = 1;
	for(k=0;k<10;k++)
	{
		CLK = 0;
		DQ = (m&b);
		CLK = 1;
		b = (b<<1);
	}
	return;
}
unsigned char INDS1620(void)
{
	unsigned char j,k=0,b=1;
	k=0;
	b=1;
	for (j=0;j<8;j++)
	{
		P2 = P2|0x20;
		CLK =0;
		if(DQ) k|=b;
		CLK = 1;
		b=(b<<1);
	}	
	return k;
}
void OUTDS1620(unsigned char m)
{
	unsigned char k,b=1;
	RST =1;
	for (k=0;k<8;k++)
	{
		CLK = 0;
		DQ = (m&b);
		CLK = 1;
		b=(b<<1);
	}
	return;
}
void Init1620(void)
{
	P2 = 0x00;
	RST = 0;
	RST = 1;
	OUTDS1620(0x01);
	Write1620(0x4c);
	RST = 0;
	RST = 1;
	OUTDS1620(0x02);
	Write1620(0x18);
	RST = 0;
	_nop_();
}
unsigned int RDDS1620(void)    //從DS1620中讀取數(shù)據(jù)
{
	unsigned char Temp_L,Temp_H;
	RST = 1;
	OUTDS1620(0xee);
	RST = 0;
	Delay(16);
	RST = 1;
	OUTDS1620(0xaa);
	Temp_L = INDS1620();				//低8位溫度值
	Temp_H = INDS1620();				//高8位溫度值
	RST = 0;
	return(Temp_H*0x100+Temp_L);
}
void sleep_ms(unsigned int count)    //延時
{
	unsigned char ii,jj;
	for(ii=0;ii<count;ii++)
	{
		for(jj=0;jj<250;jj++)
		_nop_();
	}
}
void SYSCLK_Init (void)                 //初始化系統(tǒng)時鐘
{
	int i;								// 延時計(jì)數(shù)器
	OSCXCN = 0x67;						// 啟動外部時鐘	(11.0592MHz 晶振)
	for (i=0; i < 256; i++);			
	while (!(OSCXCN & 0x80));			// 等待晶振穩(wěn)定
	OSCICN = 0x88;				// 選擇外部晶振作系統(tǒng)時鐘,時鐘丟失檢測
}
void PORT_Init (void)
{
	XBR0    = 0x01;                     // 使能 SMBus
	XBR2	= 0x44;						// 使能交叉開關(guān)和弱上拉.
}
void SLA_SEND(char chip_select, char *wr_data, char number)
{
   SENDMODE=0x01;
   totalnumber=number;
   sendnumber=number;
   while(SM_BUSY);                        //  SMBus 忙碌則等待
   SM_BUSY = 1;                           // SMBus 忙碌標(biāo)志置1
   SMB0CN = 0x44;                         // 允許SMBus , ACK 應(yīng)答信號為低
   COMMAND = (chip_select | WRITE);       // COMMAND = 7位地址加讀/寫位
   STO = 0;
   STA = 1;                               // 數(shù)據(jù)傳送開始
	while(SM_BUSY);   
}
void main (void) 
{
	unsigned char temp;
	unsigned int w;
   	unsigned char data Number[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
	WDTCN = 0xde;
	WDTCN = 0xad;           //關(guān)看門狗
	SYSCLK_Init ();         //初始化時鐘
	;OSCICN= 0x14;  
	PORT_Init ();           //初始化IO口
	Init1620();
	SMB0CN = 0x44;         // 使能SMBus ,在確認(rèn)周期響應(yīng)(ACK)低電平 (AA = 1)
	SMB0CR = 0xc9;          // SMBus 速率為100 kHz,系統(tǒng)時鐘:11.0592MHZ
	EIE1 |= 2;             // SMBus 中斷使能
	SM_BUSY = 0;           // 釋放總線,開使傳輸
	SI = 0;
	EA=1;					//開中斷
	for (;;)
	{
		sleep_ms(250);
		sleep_ms(250);
		sleep_ms(250);
		w = RDDS1620();      //從DS1620讀取溫度值并存放在W中
		w = w*5;             //最低位對應(yīng)0.5度
		wr_data[0] = 0x00;   //將二進(jìn)制溫度值轉(zhuǎn)換為十進(jìn)制并存放在數(shù)組wr_data[]中
		wr_data[1] = 0x17;   
		wr_data[2] = 0x00;
		temp = (w%1000)/100;           //十位
		wr_data[3] = Number[temp];
		temp = (w%100)/10;             //個位
		wr_data[4] = Number[temp]|0x80;//查出字型碼并加上小數(shù)點(diǎn)
		temp = (w%10);
		wr_data[5] = Number[temp];     //小數(shù)位
		SLA_SEND(CHIP_B,wr_data,0x06); //十進(jìn)制溫度值送SAA1064驅(qū)動的數(shù)碼管
		sleep_ms(250);
		sleep_ms(250);
		_nop_();
		sleep_ms(250);
		sleep_ms(250);
	}
}
void SMBUS_ISR (void) interrupt 7       //中斷服務(wù)程序
{ 
   switch (SMB0STA){                    // (SMB0STA 是中斷狀態(tài)寄存器)
    case SMB_START:	//0x08
         SMB0DAT = COMMAND ;			// 裝入從器件寫地址
         STA = 0;                       // 人工清除STA
         SI = 0;                        // 清除中斷標(biāo)致位
         break;
      case SMB_MTADDACK:	//SMB0STA=0x18
         SMB0DAT = wr_data[0];
         SI = 0;                        //清除中斷標(biāo)致位
         break;
      case SMB_MTDBACK:		//SMB0STA=0x28
         switch (SENDMODE){         	// Check only lower 4 bits.
            // OP_CODE is a READ.  Send repeated START.
            case 1:
			   sendnumber--;
			   if(sendnumber)
			   SMB0DAT = wr_data[totalnumber-sendnumber];
			   else{
			   		STO=1;
				   	SM_BUSY=0;
				}
               break;                
            case 0:
			     STO = 0;
               STA = 1;
               break;                        
            default:                      //中斷狀無效,結(jié)束傳送  
               STO = 1;
               SM_BUSY = 0;
               break;
         }
         SI = 0;
         break;
      case SMB_MRDBNACK:	//SMB0STA=0x58
         rd_data[0] = SMB0DAT;
         STO = 1;
         SM_BUSY = 0;
         AA = 1;                          // Set AA for next transfer
         SI = 0;
         break;
      default:
         STO = 1;
         SM_BUSY = 0;
         break;
      }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本午夜一本久久久综合| 精品一区中文字幕| 欧美不卡一区二区三区四区| 成人福利在线看| 日韩精品色哟哟| 亚洲视频一区在线观看| 精品国产免费人成电影在线观看四季 | 日韩不卡一二三区| 中文字幕佐山爱一区二区免费| 日韩一级片网址| 色呦呦网站一区| 国产a区久久久| 精品一区免费av| 丝袜诱惑制服诱惑色一区在线观看 | 国产一区二区三区四| 一区二区不卡在线播放| 国产精品亲子伦对白| 日韩欧美一二三四区| 欧美日韩精品二区第二页| 91美女福利视频| 97精品电影院| 成人福利视频在线| 成人sese在线| 99久久伊人久久99| 不卡欧美aaaaa| 丁香一区二区三区| 成人激情图片网| 成人免费电影视频| 岛国一区二区三区| 国产福利一区二区三区视频 | 老司机精品视频在线| 亚洲 欧美综合在线网络| 一区二区久久久| 亚洲综合色在线| 亚洲色图视频网| 亚洲欧美日韩电影| 亚洲精品日日夜夜| 亚洲综合清纯丝袜自拍| 亚洲最大的成人av| 亚洲综合久久久久| 午夜久久久久久久久久一区二区| 亚洲五码中文字幕| 久久美女高清视频| 国产欧美一区视频| 中文字幕一区二区三区蜜月| 国产精品久久久久久久久快鸭| 国产精品网曝门| 中文字幕日韩av资源站| 亚洲三级在线看| 亚洲午夜精品17c| 日韩高清一级片| 韩国欧美国产1区| 懂色av一区二区夜夜嗨| 99久免费精品视频在线观看 | 本田岬高潮一区二区三区| av成人老司机| 欧美日韩国产精选| 欧美不卡在线视频| 国产精品女同互慰在线看| 亚洲色欲色欲www| 亚洲高清免费视频| 麻豆91小视频| 不卡一区中文字幕| 在线观看日韩精品| 日韩女优毛片在线| 欧美韩国日本不卡| 亚洲国产欧美在线人成| 国产在线精品免费| 99久久精品国产观看| 欧美日韩精品一区二区三区四区| 日韩欧美色电影| 国产精品国产精品国产专区不蜜 | 麻豆国产精品一区二区三区| 国产高清久久久久| 在线观看日韩一区| 久久久电影一区二区三区| 亚洲免费高清视频在线| 精品亚洲国产成人av制服丝袜| 99re这里只有精品6| 欧美一级搡bbbb搡bbbb| 国产精品福利一区二区三区| 亚洲成年人影院| 国产成人亚洲精品青草天美 | 国产日韩欧美一区二区三区乱码| 亚洲精品乱码久久久久久| 玖玖九九国产精品| 色婷婷国产精品综合在线观看| 日韩一区二区三区在线观看| 中文字幕一区二区在线观看| 卡一卡二国产精品| 欧美三级电影网站| 国产精品区一区二区三| 久久99精品国产| 欧美天堂亚洲电影院在线播放| 国产精品午夜在线观看| 日本aⅴ亚洲精品中文乱码| 一本久道中文字幕精品亚洲嫩| 欧美成人三级在线| 亚洲国产视频网站| 成人av电影免费在线播放| 欧美变态凌虐bdsm| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲第一会所有码转帖| 国产福利一区二区三区| 日韩精品在线看片z| 亚洲成人自拍网| 91麻豆国产精品久久| 久久久久九九视频| 蜜桃精品视频在线| 欧美日韩一区在线观看| 亚洲欧洲精品一区二区三区不卡| 极品少妇一区二区| 欧美一区二区三区免费| 亚洲成人免费电影| 欧美亚州韩日在线看免费版国语版| 国产精品久久久久久久久搜平片| 国产一区二区免费视频| 日韩欧美中文字幕一区| 三级精品在线观看| 91麻豆精品国产91久久久更新时间| 亚洲综合免费观看高清完整版| 91亚洲永久精品| 亚洲欧洲综合另类| 99久久精品国产导航| 中文字幕精品一区二区三区精品| 国产一区二区主播在线| 久久综合九色综合欧美就去吻| 免费在线欧美视频| 欧美一区二区免费| 麻豆一区二区在线| 欧美xxx久久| 国产乱码精品一品二品| 久久精品网站免费观看| 国产精品亚洲一区二区三区在线| 久久综合九色综合97_久久久| 久久99久国产精品黄毛片色诱| 欧美不卡一二三| 国产高清精品久久久久| 中文字幕第一区| 91网站在线播放| 亚洲精品菠萝久久久久久久| 日本久久一区二区三区| 亚洲丶国产丶欧美一区二区三区| 欧美影院精品一区| 青青草原综合久久大伊人精品优势| 日韩精品一区二区在线| 加勒比av一区二区| 国产精品狼人久久影院观看方式| a在线播放不卡| 亚洲国产精品人人做人人爽| 欧美一区午夜精品| 黄色日韩网站视频| 国产精品久久久久国产精品日日| 91免费视频网址| 亚洲综合色视频| 日韩欧美在线123| 国产精品一区二区免费不卡| 国产精品久久久久9999吃药| 欧美性猛片xxxx免费看久爱| 日本vs亚洲vs韩国一区三区二区 | 亚洲激情六月丁香| 欧美日韩一二三区| 裸体健美xxxx欧美裸体表演| 久久久国产精品麻豆| 色综合天天综合狠狠| 舔着乳尖日韩一区| 久久蜜桃香蕉精品一区二区三区| 91视频在线看| 首页国产欧美日韩丝袜| 精品成人a区在线观看| av在线综合网| 奇米影视一区二区三区| 久久夜色精品国产噜噜av| av日韩在线网站| 日本aⅴ精品一区二区三区| 国产人久久人人人人爽| 欧美性感一类影片在线播放| 国产中文一区二区三区| 亚洲综合区在线| 久久久天堂av| 在线精品视频免费播放| 激情av综合网| 亚洲国产综合色| 国产日韩一级二级三级| 欧美老女人第四色| 成人91在线观看| 美女视频黄免费的久久| 中文字幕佐山爱一区二区免费| 欧美一区二区美女| 91网址在线看| 国产高清不卡一区二区| 日韩在线卡一卡二| 亚洲三级电影网站| 久久先锋影音av| 91精品在线免费观看| 99精品视频一区二区| 国产一区二区精品久久| 日韩电影一二三区| 亚洲精品一二三四区| 国产三级精品三级在线专区|