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

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

?? rtc.c

?? 使用C8051F020的SMBus功能實(shí)現(xiàn)對(duì)PCF8563的讀取
?? C
字號(hào):
//-------------------------------------------------------------------
// rtc.c
// 功能:實(shí)現(xiàn)對(duì)PCF8563的讀取,用于C8051F020中,使用C8051F020的SMBus功能
//      使用查詢方式讀取和寫入數(shù)據(jù)
// 說明:本例程中對(duì)SMBus的操作使用的是查詢的方式進(jìn)行的,還可以采用中斷的方式
//       可以參考其它相關(guān)的例程
// 版本: Rev1.0
// 
//------------------------------------------------------------------
// 修改記錄
// 版本        時(shí)間          人員            內(nèi)容
// 1.0        07/05/03       scj            移植程序
//
//
//------------------------------------------------------------------

#include "rtc.h"
#include "F020.h"


BYTE code MYHTAB[]="0123456789ABCDEF";

//..................................................................
// 全局變量定義
//..................................................................

xdata BYTE CurrentTime[8];              // 實(shí)時(shí)時(shí)鐘時(shí)間
xdata char CurrentTimeString[17];       // 當(dāng)前時(shí)間的字符串形式

extern void Dlyms(WORD ms);

	
//----------------------------------------------------------------------
// 功能描述:從某一地址連續(xù)讀n個(gè)字節(jié)
// 其中:n 的低4位(B3B2B1B0)為長度(0表示16)
// 過程:寫器件地址,讀寄存器內(nèi)容    
//----------------------------------------------------------------------
void I2RD(BYTE addr,BYTE *pBuf,BYTE n)	// 從某一地址連續(xù)讀n個(gè)字節(jié)
{
	BYTE i;								// 循環(huán)變量
	BYTE slave;							// 器件和頁地址
	BYTE datu;
										// 計(jì)算地址
											
	// 計(jì)算長度
	n&=0x0F;							// n=長度
	if(n==0) n=16;						// n=0 表示16字節(jié)
	
	/////////////////////////////////////////////////////////////////////
	// 首先寫寄存器地址
	slave=DEVICE_WADD;					// 求器件地址(0110 c2c1c0 1)
	
	SI=0;								
	STO=0;
	STA=1;								// 發(fā)送起始條件
	while(!SI) {}						// 等待起始條件發(fā)送
	datu=SMB0STA;
	STA=0;								// 清零起始條件
			
	SMB0DAT=slave;						// 發(fā)送器件地址
	SI=0;
	while(!SI) {}						// 等待器件地址發(fā)送完畢
	datu=SMB0STA;
			
	SMB0DAT=addr;						// 發(fā)送寄存器地址
	SI=0;
	while(!SI) {}						// 等待寄存器地址發(fā)送完畢
	datu=SMB0STA;
	
	//////////////////////////////////////////////////////////////////////	
	// 發(fā)送讀命令
	slave = DEVICE_RADD;
										
	STO=0;
	STA=1;								// 發(fā)送起始條件
	SI=0;
	while(!SI) {}						// 等待起始條件發(fā)送
	datu=SMB0STA;
	STA=0;								// 清零起始條件
			
	SMB0DAT=slave;						// 發(fā)送器件地址
	SI=0;
	while(!SI) {}						// 等待器件地址發(fā)送完畢
	datu=SMB0STA;
	
	////////////////////////////////////////////////////////////////////
	// 讀數(shù)據(jù)
		
	for(i=0;i<n-1;i++){
		AA=1;							// 收到字節(jié)后發(fā)送ACK
		SI=0;
		while(!SI) {}
		datu=SMB0STA;
		datu=SMB0DAT;
		pBuf[i]=datu;
	}
	
	AA=0;								// 最后一個(gè)字節(jié),發(fā)送NACK
	SI=0;
	
	while(!SI) {}
	
	datu=SMB0STA;
		
	datu=SMB0DAT;
	pBuf[i]=datu;						// 讀出最后一個(gè)字節(jié)
	
	///////////////////////////////////////////////////////////////////
	// 發(fā)送停止
	SI=0;
	STO=1;								// 置位停止條件
	while(!SI) {}
	SI=0;
		
	return;								// 返回
}
//----------------------------------------------------------------------
// 功能:向某一個(gè)地址寫入數(shù)據(jù)
// 其中:n表示長度
//----------------------------------------------------------------------
void I2WR(BYTE addr,BYTE *pBuf,BYTE n)	// 向某一地址連續(xù)寫n個(gè)字節(jié)
{										// 
	BYTE i;								// 循環(huán)變量
	BYTE slave;							// SLAVE地址
	BYTE datu;

	slave=DEVICE_WADD;					// 求器件地址(0110 c2c1c0 0)
		
	n&=0x0F;							// n=長度
	if(n==0) n=16;						// n=0 表示16字節(jié)
	
	SI=0;  
	STO=0;								
	STA=1;								// 發(fā)送起始條件
	
	while(!SI) {}						// 等待發(fā)送條件結(jié)束 
	datu=SMB0STA;						// 數(shù)據(jù)狀態(tài)
	STA=0;								// 發(fā)送條件結(jié)束
	
	SMB0DAT=slave;						// 發(fā)送器件地址
	SI=0;								// 恢復(fù)為高電平SCL
	while(!SI) {}						// 等待發(fā)送完畢
	datu=SMB0STA;						// 數(shù)據(jù)狀態(tài)
	
	SMB0DAT=slave;						// 發(fā)送寄存器地址
	SI=0;								// 恢復(fù)為高電平SCL
	
	for(i=0;i<n;i++){					// 開始讀取數(shù)據(jù)

		while(!SI) {}					// 等待發(fā)送完畢
		datu=SMB0STA;					// 數(shù)據(jù)狀態(tài)
		
		datu=pBuf[i];
		SMB0DAT=datu;                   // 發(fā)送數(shù)據(jù)字節(jié)
		SI=0;
	}
			
	while(!SI) {}                       // 最后一個(gè)字節(jié)發(fā)送完畢
		
	STO=1;								// 結(jié)束條件
	SI=0;
//	while(!SI) {}
	datu=SMB0STA;
//	SI=0;
		
	Dlyms(10);							// 延時(shí)
	return;								// 返回
}

//.................................................................
// 功能: 從PCF8563T中讀取當(dāng)前時(shí)間,并返回時(shí)間字符串的指針
// 輸入?yún)?shù):無
// 輸出參數(shù): char *:指向時(shí)間字符串存儲(chǔ)指針,外部函數(shù)不允許修改該緩沖區(qū)內(nèi)容
//.................................................................
const char *GetNowTime()
{
	// 從PCF8563中讀出當(dāng)前時(shí)間
	I2RD(REG_SECD,CurrentTime,8);
		
	CurrentTimeString[0]=MYHTAB[(CurrentTime[RTC_HOUR]>>4)&0x03];
	CurrentTimeString[1]=MYHTAB[CurrentTime[RTC_HOUR]&0x0F];
		
	CurrentTimeString[2]=':';
	CurrentTimeString[3]=MYHTAB[(CurrentTime[RTC_MINU]>>4)&0x07];
	CurrentTimeString[4]=MYHTAB[CurrentTime[RTC_MINU]&0x0F];
	
	CurrentTimeString[5]=0x20;
	// 年
	CurrentTimeString[6]=(CurrentTime[RTC_MON]&0x80)?MYHTAB[1]:MYHTAB[2];
	CurrentTimeString[7]=(CurrentTime[RTC_MON]&0x80)?MYHTAB[9]:MYHTAB[0];   
	CurrentTimeString[8]=MYHTAB[(CurrentTime[RTC_YEAR]>>4)&0x0F];
	CurrentTimeString[9]=MYHTAB[CurrentTime[RTC_YEAR]&0x0F];
	// 月
	CurrentTimeString[10]='/';
	CurrentTimeString[11]=MYHTAB[(CurrentTime[RTC_MON]>>4)&0x01];
	CurrentTimeString[12]=MYHTAB[CurrentTime[RTC_MON]&0x0F];
	// 日
	CurrentTimeString[13]='/';
	CurrentTimeString[14]=MYHTAB[(CurrentTime[RTC_DAY]>>4)&0x03];
	CurrentTimeString[15]=MYHTAB[CurrentTime[RTC_DAY]&0x0F];
	
	CurrentTimeString[16]=0;
	
	return &CurrentTimeString[0];
}

// 設(shè)置當(dāng)前時(shí)間
// 年/月/日/周/小時(shí)/分/秒
void SetNowTime(BYTE y2k,BYTE year,BYTE month,BYTE day,BYTE hour,BYTE min,BYTE sec)
{
	BYTE datu;
		
	CurrentTime[RTC_DW]   = 0x00;
	CurrentTime[RTC_YEAR] = year;
	CurrentTime[RTC_MON]  = (y2k==0x19)?month|0x80:month&0x7F;
	CurrentTime[RTC_DAY]  = day;
	CurrentTime[RTC_HOUR] = hour|0x80;
	CurrentTime[RTC_MINU] = min;
	CurrentTime[RTC_SECD] = (sec>0x59)?0x59:sec;
	
	
	// 設(shè)置當(dāng)前時(shí)間
	I2WR(REG_SECD,CurrentTime,7);
}

/*
// 設(shè)置當(dāng)前秒
void SetCurrentSec(BYTE sec)
{
	CurrentTime[RTC_SECD]= sec;
	
	I2WR(REG_SC,&CurrentTime[RTC_SECD],1);
}
*/

// 檢測(cè)時(shí)鐘芯片是否從掉電狀態(tài)啟動(dòng)
bit IsFromFail()
{
	BYTE datu;

	I2RD(REG_SECD,&datu,1);
		
	if(datu&0x80)
	{// 發(fā)生調(diào)電事件,復(fù)位器件
		
		datu = 0;
		
		I2WR(REG_CONTRL1,&datu,0);
		
		return 1;
	}
	else
	{
		return 0;
	}


}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产乱人伦偷精品视频不卡| 色婷婷av一区二区三区gif| 亚洲黄色小视频| 国产精品麻豆网站| 国产精品无圣光一区二区| 精品久久一区二区| 久久精品夜色噜噜亚洲a∨| 精品国产污污免费网站入口| 欧美一区二区三区性视频| 欧美高清视频www夜色资源网| 欧美日精品一区视频| 欧美日韩在线不卡| 欧美成人一级视频| 久久九九久久九九| 中文字幕制服丝袜一区二区三区 | 国产成人高清视频| 国产麻豆视频精品| 成人福利视频网站| 色综合天天综合狠狠| 91国内精品野花午夜精品| 日本高清不卡在线观看| 欧美人xxxx| 久久久久久综合| 国产亚洲欧美色| 亚洲精品久久久蜜桃| 亚洲高清三级视频| 日韩电影免费在线看| 国产一区二区91| av在线不卡电影| 欧美日韩aaa| 久久无码av三级| 亚洲欧洲成人av每日更新| 亚洲二区在线视频| 激情综合网激情| 91在线观看视频| 精品少妇一区二区三区视频免付费| 亚洲精品在线免费播放| 国产精品视频免费| 蜜臀av性久久久久蜜臀aⅴ| 国产成人免费在线| 在线视频你懂得一区二区三区| 91精品国产福利在线观看| 国产欧美日韩精品在线| 午夜影视日本亚洲欧洲精品| 国产精品一区二区免费不卡 | 欧美综合视频在线观看| 久久这里只有精品视频网| 综合欧美亚洲日本| 久久99精品久久久久久国产越南| 91麻豆swag| 国产目拍亚洲精品99久久精品| 一区二区国产视频| 国产不卡在线视频| 日韩欧美在线网站| 一区二区三区四区视频精品免费| 精品一区二区三区免费视频| 91国模大尺度私拍在线视频| 日本一区二区三区国色天香 | 日本道精品一区二区三区| 欧美成人伊人久久综合网| 亚洲午夜久久久久| hitomi一区二区三区精品| 精品sm捆绑视频| 天天综合色天天| 在线视频欧美区| 亚洲精品久久久蜜桃| 成人黄色大片在线观看| 久久久精品国产免费观看同学| 亚洲mv在线观看| 欧美私模裸体表演在线观看| 国产精品乱人伦| 成人av动漫网站| 国产精品女主播av| 国产高清不卡二三区| 久久奇米777| 激情欧美日韩一区二区| 精品久久人人做人人爰| 久久66热re国产| 337p日本欧洲亚洲大胆色噜噜| 日韩成人免费看| 欧美大片拔萝卜| 免费成人深夜小野草| 日韩一区二区在线观看| 六月婷婷色综合| 精品久久久久久久久久久久包黑料 | 精品剧情在线观看| 国产精品一区一区| 中文av一区二区| 色天天综合久久久久综合片| 亚洲一区二区三区在线看| 91福利在线播放| 日韩在线a电影| 日韩你懂的在线观看| 国产毛片一区二区| 亚洲欧美一区二区在线观看| 一本大道久久a久久精品综合| 亚洲欧美国产三级| 欧美日韩中文另类| 久久99国产精品尤物| 久久久噜噜噜久久中文字幕色伊伊 | 亚洲网友自拍偷拍| 91精品在线观看入口| 经典三级视频一区| 自拍视频在线观看一区二区| 欧美三级资源在线| 黑人精品欧美一区二区蜜桃| 久久久.com| 色欧美片视频在线观看在线视频| 一区二区三区丝袜| 欧美一区二区三区公司| 国产不卡在线播放| 午夜伦理一区二区| 中文字幕免费不卡| 欧美午夜片在线观看| 另类专区欧美蜜桃臀第一页| 亚洲国产精品二十页| 欧美日韩亚洲综合一区| 国产精品一区二区不卡| 亚洲午夜一区二区三区| 久久久久久久久久久电影| 久久人人爽人人爽| 欧美日韩亚洲综合在线 欧美亚洲特黄一级| 麻豆一区二区三| 亚洲黄一区二区三区| 久久久久久久综合日本| 欧美性猛交xxxxxx富婆| 国产成人精品综合在线观看 | 麻豆精品一区二区av白丝在线| 欧美国产成人精品| 日韩欧美专区在线| 在线欧美日韩国产| www.综合网.com| 国产黄色精品网站| 蜜臀av性久久久久蜜臀aⅴ| 一区二区三区在线观看国产| 国产亚洲福利社区一区| 日韩欧美在线123| 欧美亚洲免费在线一区| 91亚洲国产成人精品一区二三| 久久成人免费网| 日本人妖一区二区| 亚洲高清免费观看高清完整版在线观看| 国产亚洲欧洲997久久综合| 欧美一区二区视频观看视频| 欧美午夜不卡视频| 欧美三级一区二区| 欧美色手机在线观看| 色婷婷av一区二区| 在线中文字幕不卡| 91偷拍与自偷拍精品| aaa欧美色吧激情视频| www.爱久久.com| 成人一区二区三区| 成人三级伦理片| 国产成人免费视频一区| 国产成人av一区| 成人免费视频一区| 99视频精品在线| av男人天堂一区| 狠狠色丁香久久婷婷综合_中 | 亚洲欧洲一区二区在线播放| 国产色产综合产在线视频| 久久久www成人免费毛片麻豆| 精品欧美乱码久久久久久 | ㊣最新国产の精品bt伙计久久| 日韩视频免费观看高清完整版在线观看 | 黄色资源网久久资源365| 久久99蜜桃精品| 韩国午夜理伦三级不卡影院| 国产美女视频91| 成人h动漫精品一区二区| 99久久免费精品高清特色大片| 成人午夜在线播放| 91免费观看在线| 欧美欧美欧美欧美首页| 日韩欧美不卡在线观看视频| 国产日韩欧美在线一区| 国产精品伦一区二区三级视频| 亚洲女人****多毛耸耸8| 天天综合色天天| 韩国女主播一区| 91麻豆高清视频| 日韩欧美中文字幕精品| 国产日韩综合av| 亚洲一区二区四区蜜桃| 久久精品国产在热久久| 成人动漫精品一区二区| 日本道在线观看一区二区| 日韩女优av电影| 中文字幕一区二| 天天射综合影视| 国产成人在线色| 欧美精品1区2区3区| 日本一区二区三区dvd视频在线| 久久精品噜噜噜成人88aⅴ| www.66久久| 日韩一区二区高清| 亚洲人成在线播放网站岛国| 久久99久久99| 欧美人体做爰大胆视频|