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

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

?? 24c01.c

?? 24C01的源代碼 (1kb ROM)
?? C
字號:
#include <reg51.h>
#include <absacc.h>
#include <intrins.h>
//*************************************************
//將2004 年1 月25 日星期日 上午11點10分30 秒的時間寫入PCF8563
//以下在PCF8563 的CLKOUT 腳輸出1Hz 的方波
//讀出 年、月、日、星期、時、分、秒,以38400的波特率送往串口
//打開串口調試助手或其他串口調試軟件設置波特率為38400,無校驗,數據位8,停止位1
//**************************************************
#define PCF8563			0x0A	//器件地址
#define MAX_BYTE_NUM	10		//一次性接受或發送字節的最大數目

//內存數據定義
unsigned char 	SlvAdr;			//被控器地址
unsigned char   SubAdr;			//被控器單元地址
unsigned char 	ByteCnt;		//傳送字節數存放單元 
unsigned char 	BitCnt;			//I2C 數據位計數器
unsigned char 	XmtDat [MAX_BYTE_NUM];		//發送數據緩沖區
unsigned char	RcvDat [MAX_BYTE_NUM]; 	//接收數據緩沖區
//unsigned char 	Second, Minute, Hour, Weekday, Day, Month, Year, Century;
bit				ERR=0;				//錯誤位

//端口位定義
sbit SDA = P3^7;		//模擬I2C 數據傳送位
sbit SCL = P3^6;		//模擬I2C 時鐘控制狀態標志

sbit test1 = P1^0;
sbit test2 = P1^1;

void I2CSendData ();
//void Read8563();
void I2CSTA ();	
void I2CSendByte (unsigned char _24C01byte);
void I2CSTOP ();
void I2CRcvData ();	
unsigned char I2CRcvByte ();

void main ()
{
// 初始化設置

//以下準備送數
//將2004 年1 月25 日星期日 上午11點10分30 秒的時間寫入PCF8563
	IE = 0x00;
/*
	XmtDat[0] = 0x00;		//啟動時鐘
	XmtDat[1] = 0x1F; 		//設置報警及定時器中斷,定時器中斷為脈沖形式
	XmtDat[2] = 0x30; 		//秒值(30s)
	XmtDat[3] = 0x10; 		//分值(10min)
	XmtDat[4] = 0x11;		//時值(11h)
	XmtDat[5] = 0x25;		//日期(25號)
	XmtDat[6] = 0x00;		//星期(0~6代表星期日~星期六)
	XmtDat[7] = 0x01;		//月份(如果首字節為1代表19XX年,首字節為0代表20XX年)
	XmtDat[8] = 0x04;		//年份(04年,與上一字節配合,確定為2004年)

	SlvAdr = PCF8563;		//送被控器地址	
	SubAdr = 0x00;			//送寫入寄存器的首字節地址,從00H 開始寫
*/	ByteCnt = 0x02;			//寫七個時間信息和2 個控制命令

/*	I2CSTA();						//發送I2C 總線起始條件

	I2CSendByte (0xA0); //Chip selected bits=000, Write
	I2CSendByte (0xA1);
	I2CSendByte (0x55);
	I2CSendByte (0x56);
	I2CSTOP	();		//發送I2C 總線停止條件 */
/*
	I2CSTA();
	I2CSendByte (0xA0); //Write
	I2CSendByte (0x01);
	I2CSTA();
	I2CSendByte (0xA1); //Read
	RcvDat[0] = I2CRcvByte();
	I2CSTOP();
	if (RcvDat[0] == 0x55) test1 = 0;
*/
	SlvAdr = 0xA0;
	SubAdr = 0x01;
	XmtDat [0] = 0x55;
	XmtDat [1] = 0x66;
	I2CSendData ();
	while(1){
	SlvAdr = 0xA0;
	SubAdr = 0x01;
	I2CRcvData ();
	if (RcvDat[0] == 0x55 && RcvDat[1] == 0x66){ test2 = 1; test1 = ~test1;}
	}
//	if (ERR == 1) test1 = ~test1;

//	I2CSendData();			//送出數據
//	Read8563();

}

//*******************************************************************
//以下在PCF8563 的CLKOUT 腳輸出1Hz 的方波,輸出由0DH控制
//0DH  7 6 5 4 3 2  1   0 
//    PE - - - - - FD1 FD0
//   PE=0;CLKOUT禁止輸出并設成高阻抗
//	PE=1;CLKOUT允許輸出
//   FD1  FD0  輸出頻率
//    0    0  32768Hz
//    0    1  1024Hz
//    1    0  32Hz
//    1    1  1Hz
//要求輸出32768Hz,1024Hz,32Hz,1Hz的數據分別為80H,81H,82H和83H
//********************************************************************
//以下每隔1s左右讀取時間并將時間送往串口

/*;**********************************************************
;延時1s的子程序
;**********************************************************
D1S:
	PUSH	ACC
	PUSH	PSW
	SETB	RS0
	MOV	R7,#20
D11:	MOV	R6,#200
D12:	MOV	R5,#100
	DJNZ	R5,$
	DJNZ	R6,D12
	DJNZ	R7,D11
	POP		PSW
	POP		ACC
RET
;**********************************************************
;向串口送數的子程序
;***********************************************************
SEND:	
	MOV	SBUF,A
SLP:	
	JBC	TI,NEXT		;是否送完?
	AJMP	SLP
NEXT:	RET	 */

//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
//I2C總線的讀寫子程序										;;
//被控器地址在SlvAdr,單元地址在SubAdr中,所發送的數據字節數在ByteCnt中				;;
//所發送的數據在XmtDat中,所接收的數據在RcvDat中							;;
//;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

//************************************************************************************************
//發送數據程序
//名稱:I2CSendData
//描述:發送ByteCnt個字節給被控器
//被控器地址在SlvAdr中,單元地址在SubAdr中
//所發送數據的字節數在ByteCnt中,發送的數據在XmtDat緩沖區中
//發送數據正常返回標志ERR=0, ERR=1表示被控器無應答或損壞
//***********************************************************************************************

void I2CSendData ()
{
	unsigned char i;

//	SETB	RS0
	
	I2CSTA();						//發送I2C 總線起始條件

	I2CSendByte (SlvAdr);			//寫一個字節
//	JB	ERR,I2CSRN		;錯誤返回
	I2CSendByte (SubAdr);
//	JB	ERR,I2CSRN
	for (i = 0; i < ByteCnt; i ++)	
	{
		I2CSendByte (XmtDat [i]);
		//	JB	ERR,I2CSRN
	}

	I2CSTOP	();		//發送I2C 總線停止條件

//	if (ERR == 1) test1 = 0;
}
/*************************************************************************************************
;接收數據程序
;名稱:I2CRcvData
;描述:從被控器接收ByteCnt個字節數據
;被控器地址在SlvAdr中,單元地址在SubAdr中
;所接收數據的字節數在ByteCnt中,接收的數據在RcvDat緩沖區中
;接收數據正常返回標志ERR=0, ERR=1表示被控器無應答或損壞
;************************************************************************************************/

void I2CRcvData()
{
	unsigned char i;

//	SETB	RS0
	I2CSTA();					//發送I2C 總線起始條件
	I2CSendByte (SlvAdr);		//寫入器件地址
//	JB	ERR,I2CRRN		;錯誤返回
	I2CSendByte (SubAdr);		//寫入單元地址
//	JB	ERR,I2CRRN
	I2CSTA ();					//發送I2C 總線重復起始條件
	SlvAdr = SlvAdr | 0x01;
	I2CSendByte (SlvAdr);		//再次寫入器件地址
//	JB	ERR,I2CRRN

	for (i = 0; i < ByteCnt; i ++) 	
	{
		RcvDat [i] = I2CRcvByte ();
		SDA	= 0;						//發送應答位
		SCL	= 1;						//250ns后置時鐘線為高通知被控器開始接收應答位
		_nop_();						//保證時鐘高周期大于4us
		_nop_();						
		_nop_();
		_nop_();	
		SCL	= 0;						//鉗住I2C 總線以便繼續接收字接數據

	}

	SDA = 1;					//發送非應答位
	SCL	= 1;					//250ns后置時鐘線為高通知被控器開始接收非應答位
	_nop_();					//保證時鐘高周期大于4us
	_nop_();
	_nop_();
	_nop_();
	SCL = 0;					//鉗住I2C 總線以便發送停止條件
	SDA = 0;					//
	I2CSTOP ();
}


/*******************************************************************************
; 子程序
;******************************************************************************
;名稱:I2CSTA
;描述:啟動I2C 總線子程序--發送I2C 總線起始條件
;------------------------------------------------------------------------------
*/

void I2CSTA ()
{
	SCL = 0;
	SDA = 1;		//發送起始條件的數據信號
	SCL	= 1;		//250ns后發送起始條件的時鐘信號
	_nop_();			//起始條件建立時間大于4.7us
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SDA	= 0;		//發送起始信號
	_nop_();			//起始條件鎖定時間大于4us
	_nop_();
	_nop_();
	_nop_();
	SCL = 0;		//鉗住I2C 總線準備發送或接收數據
}

/*------------------------------------------------------------------------------
;名稱:I2CSTOP
;描述:停止I2C 總線子程序--發送I2C 總線停止條件
;------------------------------------------------------------------------------
*/

void I2CSTOP ()
{
 	SDA	= 0;		//發送停止條件的數據信號
	SCL	= 1;		//250ns后發送停止條件的時鐘信號
	_nop_();			//停止條件建立時間大于4us
	_nop_();
	_nop_();
	_nop_();
	_nop_();
	SDA	= 1;		//發送I2C 總線停止信號
}

/*------------------------------------------------------------------------------
;名稱:I2CSentByte
;描述:字節數據傳送子程序--發送一個字節數據或地址給被控器
;要發送的數據在ACC中
;發送數據正常返回標志ERR=0,ERR=1表示被控器無應答或損壞.
;------------------------------------------------------------------------------
*/

void I2CSendByte (unsigned char _8563byte)
{
	unsigned char i;

	BitCnt = 0x08;		//向VSDA線上發送1個數據字節 
	for ( i = BitCnt; i > 0; i --)
	{
//		_nop_();
		SDA = (_8563byte >> (i - 1)) % 2; //發送數據位
		SCL	= 1;					//250ns后置時鐘線為高通知被控器開始接收數據位
		_nop_();						//保證時鐘高周期大于4us
		_nop_();
		_nop_();
		_nop_();
		SCL = 0;					//鉗住時鐘總線準備接收下一個數據位
		_nop_();						//保證時鐘低周期大于4.7us
	 }
	_nop_();
	_nop_();
	SDA	= 1;						//8位發送完后釋放數據線準備收應答位
	SCL	= 1;						//開始接收應答信號
//	_nop_();
	ERR = 0;
	if (SDA == 1) ERR = 1;
	SCL = 0;
}

/*------------------------------------------------------------------------------
;名稱:I2CRcvByte
;描述:字節數據接收子程序--從被控器接收一個字節數據
;接收的字節數據在ACC中
;------------------------------------------------------------------------------*/

unsigned char I2CRcvByte ()
{
	unsigned char res, i;

 	BitCnt = 0x08;		//從VSDA線上讀取1個數據字節 
	res = 0x00;

	for (i = 0; i < BitCnt; i ++)
	{
		SDA = 1;				//置數據線為輸入方式
		SCL	= 1;				//置時鐘線為高使數據線上數據有效
		res = (res << 1) | SDA;	//接收數據存入res
		SCL	= 0;				//接收結束鉗住總線準備下一步接收或發送(非)應答位
		_nop_();					//時鐘低周期大于4.7us
	}

	return res;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲国产视频直播| wwwwxxxxx欧美| 亚洲精品国产品国语在线app| 国模少妇一区二区三区| 精品福利在线导航| 精品一区二区免费看| 这里只有精品视频在线观看| 午夜视频一区在线观看| 欧美日韩精品一区二区在线播放| 亚洲欧美日本韩国| 欧美日韩在线播放三区四区| 一区二区三区国产豹纹内裤在线 | 欧美一区二区三区影视| 午夜视频在线观看一区二区| 欧美精品久久99| 免费成人在线播放| 2024国产精品| 国产成人精品亚洲777人妖| 国产精品久久久久久亚洲毛片 | 欧美色中文字幕| 免费人成网站在线观看欧美高清| 欧美精品三级日韩久久| 五月婷婷色综合| 精品国精品国产| 成人免费三级在线| 亚洲另类在线一区| 日韩欧美成人午夜| 高清国产午夜精品久久久久久| 国产精品国产三级国产三级人妇| 欧美三级中文字| 久久精品999| 中文字幕乱码亚洲精品一区| 色悠悠久久综合| 污片在线观看一区二区| 日韩一区二区三区免费看 | 国产成人h网站| 国产精品卡一卡二| 欧美视频一区二区三区| 国产一区二区三区综合| 亚洲色图丝袜美腿| 欧美一区二区啪啪| 99精品1区2区| 日本不卡一二三| 精品成人免费观看| 欧美三级乱人伦电影| 精品一区二区三区视频在线观看| 国产色一区二区| 3d成人h动漫网站入口| 国产精品影视天天线| 国产欧美日产一区| 777奇米四色成人影色区| 国产精品亚洲午夜一区二区三区 | 欧美性猛交xxxx黑人交| 久久黄色级2电影| 亚洲三级电影网站| 欧美一区在线视频| 91玉足脚交白嫩脚丫在线播放| 五月婷婷激情综合网| 亚洲乱码一区二区三区在线观看| 欧美一级电影网站| 色噜噜偷拍精品综合在线| 久久99九九99精品| 亚洲综合色丁香婷婷六月图片| 欧美高清激情brazzers| 成人高清伦理免费影院在线观看| 一区二区三区鲁丝不卡| 国产女同性恋一区二区| 欧美高清视频不卡网| 欧美日韩三级一区二区| 99麻豆久久久国产精品免费优播| 丝袜国产日韩另类美女| 亚洲成人黄色小说| 亚洲欧美日韩一区二区三区在线观看| 欧美三级中文字幕在线观看| 一本一道波多野结衣一区二区| 国产大陆亚洲精品国产| 大胆亚洲人体视频| 激情久久五月天| 蜜臀99久久精品久久久久久软件| 日韩高清欧美激情| 亚洲电影在线免费观看| 亚洲视频一二三| 国产精品嫩草99a| 欧美精品一区男女天堂| 在线成人免费视频| 日韩欧美在线观看一区二区三区| 欧美色老头old∨ideo| 91免费视频大全| 国产suv精品一区二区6| 国产毛片精品一区| 高清视频一区二区| 国产盗摄一区二区| 丁香桃色午夜亚洲一区二区三区 | 国产成人免费av在线| 精品在线亚洲视频| 国产盗摄精品一区二区三区在线| 黑人精品欧美一区二区蜜桃| 亚洲一区二区av在线| 无码av免费一区二区三区试看| 亚洲一区二区在线观看视频| 亚洲精品国产a| 亚洲国产精品麻豆| 日韩av不卡在线观看| 国产一区中文字幕| 国产成人在线免费| 国产精品一二二区| 成人a免费在线看| 日本福利一区二区| 欧美日韩一区不卡| av电影在线不卡| 色香蕉久久蜜桃| 欧美丰满美乳xxx高潮www| 日韩三级伦理片妻子的秘密按摩| 日韩欧美国产综合一区| 欧美一区二区观看视频| 欧美www视频| 国产视频一区二区在线观看| 国产日产精品1区| 国产精品免费网站在线观看| 亚洲免费观看高清完整版在线观看熊| 亚洲精品成人少妇| 香蕉加勒比综合久久| 激情五月播播久久久精品| 成人毛片视频在线观看| 色婷婷久久久亚洲一区二区三区 | 欧美亚洲高清一区| 日韩免费高清电影| 国产精品色婷婷| 一区二区三区在线观看国产| 日韩黄色片在线观看| 麻豆国产精品777777在线| 一本高清dvd不卡在线观看| 欧美精品亚洲二区| 国产午夜精品久久| 亚洲一区二区三区美女| 免费观看一级特黄欧美大片| 成人性生交大片免费看中文 | 国产成人在线免费观看| 91美女片黄在线观看| 欧美成人精品1314www| 中文字幕av一区二区三区| 国产精品美女久久久久久久 | 欧美一级免费观看| 国产精品久久久久毛片软件| 日韩国产精品久久久| 成人ar影院免费观看视频| 欧美日本在线视频| 久久久久国产精品麻豆| 亚洲国产精品久久不卡毛片| 亚洲精品菠萝久久久久久久| 久久爱另类一区二区小说| av亚洲精华国产精华| 97精品国产露脸对白| 一本一道久久a久久精品综合蜜臀| 欧美电影免费观看高清完整版| 中文字幕制服丝袜一区二区三区| 蜜芽一区二区三区| 日本久久一区二区三区| 欧美精品一区二区不卡| 亚洲电影在线免费观看| 96av麻豆蜜桃一区二区| 国产午夜精品久久久久久久 | 中文字幕一区二区三区精华液| 日韩国产在线观看| 色哦色哦哦色天天综合| 91精品国产一区二区三区蜜臀| 亚洲三级免费电影| 成人高清伦理免费影院在线观看| 精品久久久久久最新网址| 一区二区三区中文字幕电影| 国产成人精品亚洲午夜麻豆| 欧美精品视频www在线观看| 一区二区三区在线观看视频| 不卡大黄网站免费看| 精品日韩一区二区三区免费视频| 日精品一区二区| 欧美视频在线不卡| 中文字幕视频一区二区三区久| 国产成a人亚洲| 国产情人综合久久777777| 国产乱人伦偷精品视频免下载 | 中文字幕不卡的av| 国产一区二区电影| 精品播放一区二区| 国产专区综合网| 精品奇米国产一区二区三区| 五月天亚洲婷婷| 3atv一区二区三区| 免费视频一区二区| 欧美高清视频一二三区| 日韩黄色小视频| 欧美精品vⅰdeose4hd| 五月激情六月综合| 在线电影一区二区三区| 毛片基地黄久久久久久天堂| 欧美大片一区二区| 日韩国产精品久久| 26uuu亚洲| 日韩福利视频导航| 欧美一级黄色片|