在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

基于單片機的DS1302實時時鐘實驗 實時時鐘芯片DS1302的工作原理

CHANBAEK ? 來源:RYMCU ? 作者:RYMCU ? 2023-07-27 18:27 ? 次閱讀

概述

在許多系統(tǒng)當(dāng)中都需要精確的時鐘功能,因此時鐘芯片孕育而生。其中美國達(dá)拉斯 DALLAS 公司設(shè)計的 DS1302 是一款非常流行的數(shù)字時鐘芯片。DS1302 是一款具有涓細(xì)電流充電能力的低功耗實時時鐘芯片。它可以對年、月、日、星期、時、分、秒進(jìn)行計時,并且具有閏年功能。年計數(shù)可達(dá)到 2100 年。

15.1 DS1302 功能簡介

DS1302 內(nèi)部包含 31 字節(jié)的通用 RAM,實現(xiàn)設(shè)置備用電池功能。采用 3 線制的串行數(shù)據(jù)通信接口,并且適用于大多數(shù)的微處理器。工作電壓范圍達(dá)到 2~5V,與 5VTTL 電平完全兼容。支持單字節(jié)或多字節(jié)時鐘、RAM 數(shù)據(jù)讀、寫操作。當(dāng)工作電壓為 2V 時,工作電流低至 320nA。工業(yè)級 DS1302 正常工作溫度范圍為:-40℃ ~85℃,芯片包括直插和貼片兩種封裝模式,封裝示意圖如下所示:
圖片

DS1302 典型通信電路如下圖所示:
圖片
如上圖所示,只需 3 根線 CE、I/O、SCLK 便可實現(xiàn)處理器與 DS1302 之間通信,上圖中 X1,X2 之間為外接時鐘晶振,VCC2 為電源供電端,VCC1 為備用電池端。各管腳定義及功能如下所示:
圖片

15.2 單字節(jié)操作模式

與 DS1302 進(jìn)行數(shù)據(jù)通信時,首先得向 DS1302 傳輸一個字節(jié)的控制指令,控制指令位定義如下所示。
圖片
字節(jié)的最高位 bit7 必須為 1,否則無法向 DS1302 寫入數(shù)據(jù)。Bit6 為 1 時,表示后續(xù)對 31 字節(jié)的 RAM 進(jìn)行讀寫操作,為 0 時,表示后續(xù)將對時鐘寄存器進(jìn)行讀寫操作。Bit5~bit1 為后續(xù)操作的時鐘寄存器或 RAM 的地址。最低位 bit0 為 1 時,表示讀取 DS1302 的數(shù)據(jù),為 0 時,表示向 DS1302 寫入數(shù)據(jù)。對 DS1302 進(jìn)行單字節(jié)模式的讀、寫操作時序如下圖所示。
圖片

單字節(jié)寫操作(Single-Byte Write)時序為首先向 DS1302 寫入控制指令,緊接著寫入一個字節(jié)的數(shù)據(jù)。寫入的順序為低位在前,高位在后的傳輸方式,要求在時鐘上升沿準(zhǔn)備好數(shù)據(jù)。單字節(jié)讀操作(Single-Byte Read)時序為首先向 DS1302 寫入控制指令,緊接著 SCLK 的的下降沿 DS1302 有數(shù)據(jù) D0 輸出,因此在接下來的上升沿前讀取穩(wěn)定的 D0 值,依次類推至 D7。根據(jù)上圖時序要求,往 DS1302 寫入一個字節(jié)和讀取一個字節(jié)的函數(shù)如下所示:

//寫字節(jié)
void WrByte_1302(uchar dat)
{
	uchar j;
	bit flag;

	for(j=1;j<=8;j++)
 	{	//從低到高依次將1Byte數(shù)據(jù)寫入DS1302
		flag = dat&0x01;

		IO_1302 = flag;//將要寫的位放到總線
		SCLK_1302 = 0;
		SCLK_1302 = 1;//產(chǎn)生一個上升沿,完成1位數(shù)據(jù)寫入

		dat=dat >>1;//將數(shù)據(jù)移到下一位
	}	
}
//讀字節(jié)
uchar RdByte_1302(void)
{
	uchar dat,flag,j;
	for(j=1;j<=8;j++)
	{		
		SCLK_1302 = 1;//產(chǎn)生一個下降沿
		SCLK_1302 = 0;

		flag = IO_1302;//讀取DS1302發(fā)出的一位數(shù)據(jù)
		dat=(dat >>1)|(flag< 

如上所示,寫字節(jié)函數(shù) WrByte_1302()中,要求單片機在時鐘 SCLK_1302 上升沿前將數(shù)據(jù)放到數(shù)據(jù)總線 IO_1302 上,然后產(chǎn)生一個 SCLK_1302 上升,完成一 bit 數(shù)據(jù)的寫入,同時要求 1Byte 的數(shù)據(jù)低位在前,高位在后依次發(fā)送。讀字節(jié)函數(shù) RdByte_1302()中,要求在時鐘 SCLK_1302 下降沿之后,將總線 IO_1302 數(shù)據(jù)讀出,同時要求 1Byte 的數(shù)據(jù)低位在前,高位在后依次讀取。

在上述函數(shù)的基礎(chǔ)上,單字節(jié)操作模式的讀、寫函數(shù)如下所示:

//單字節(jié)寫模式
void WrSingle_1302(uchar addr,uchar dat)
{
	CE_1302 = 1;//拉高片選
	WrByte_1302(addr);//寫入地址及控制指令
	WrByte_1302(dat);//寫入數(shù)據(jù)
	CE_1302 = 0;//拉低片選
	SCLK_1302 = 0;//釋放始終總線,滿足下次操作時序要求(非常重要)

}
//單字節(jié)讀模式
uchar RdSingle_1302(uchar addr)
{
	uchar dat;

	CE_1302 = 1;//拉高片選
	WrByte_1302(addr);//寫入地址及控制指令
	dat = RdByte_1302();//讀取一個字節(jié)數(shù)據(jù)
 	CE_1302 = 0;//拉低片選

	return dat;
}

我們這里重點講述 DS1302 的時鐘功能,因此與涓流充電有關(guān)的 31 字節(jié) RAM 操作這里不做詳細(xì)的介紹。與實時時鐘有關(guān)的寄存器如圖所示。
圖片
與時鐘有關(guān)的寄存器總共有 9 個如上圖所示,前 7 個分別為:秒、分、時、日、月、星期、年,均為 8 位寄存器。以秒寄存器為例介紹時間的表示法,其中 bit6-bit4 為秒的十位,bit3-bit0 為秒的個位。59 秒時,bit6-bit4=“101”,bit3-bit0=“1001”,其它依此類推。另外,設(shè)置“時”寄存器的 bit7 可以設(shè)置為 12 小時或 24 小時制。上述寄存器的讀寫控制指令字節(jié)分別如圖左側(cè)兩列所示。

秒寄存器的 CH(bit7)定義為時鐘運行標(biāo)志位,當(dāng)該位被設(shè)置成 1 時,時鐘計時停止,并且 DS1302 進(jìn)入低功耗模式。當(dāng)設(shè)置為 0 時,啟動計時。上電初始狀態(tài)時,該位狀態(tài)不定,因此在時鐘初始化時確保該位被清 0,保證后續(xù)時鐘芯片正常運行。

第 8 個寄存器為控制寄存器,WP(bit7)為寫保護(hù)位,當(dāng)設(shè)置為 1 時,無法向 DS1302 寫入數(shù)據(jù),上電時該位狀態(tài)不定,因此,需要對 DS1302 其它寄存器進(jìn)行寫操作之前,務(wù)必先將 WP 設(shè)置為 0。第 9 個寄存器不影響實現(xiàn)時鐘功能,暫不做介紹。

因此,在 DS 1302 應(yīng)用時要對它進(jìn)行初始化,首先解除寫保護(hù),然后將與時間有關(guān)的 7 個寄存器賦初值,將初始化的內(nèi)容放到函數(shù) Init_1302(Uchar *SetTime)中。另外,我們將從 DS1302 讀取 7 個時間值的操作放到函數(shù) GetTime(*CurrentTime)中,如下代碼所示。

//1302初始化
void Init_1302(uchar *SetTime)
{
	  uchar j;

	  CE_1302 = 0;//初始化通信引腳
	SCLK_1302 = 0;

	WrSingle_1302(0x8E,0x00);//解除寫保護(hù)(WP=0)
	
	for(j=0;j<=6;j++)
	{
		WrSingle_1302(0x80+2*j,SetTime[j]);//寫入7個時鐘數(shù)據(jù)
	}
	//WrBurst_1302(SetTime);//當(dāng)采用Burst模式時,使用此語句替代上面for循環(huán)語句
}
//獲取當(dāng)前時間值
void GetTime(uchar *CurrentTime)
{
	  uchar j;

	  CE_1302 = 0;//初始化通信引腳
	SCLK_1302 = 0;

	for(j=0;j<=6;j++)
	{
		 *CurrentTime = RdSingle_1302(0x81+2*j);//讀取7個時鐘數(shù)據(jù)
		 CurrentTime++;
	}
	
	//RdBurst_1302(CurrentTime); //當(dāng)采用Burst模式時,使用此語句替代上面for循環(huán)語句
}

到目前為止,我們已經(jīng)學(xué)習(xí)了時鐘芯片 DS1302 的功能介紹,以及初始化和時鐘獲取函數(shù)的編寫,RY-51 單片機開發(fā)板上 DS1302 電路原理圖如下所示,三根通信線分別接 4.7K 上拉電阻,分別與單片機的 I/O 口相連接。
圖片
按照慣例我們將和 DS1302 有關(guān)的函數(shù)打包放入"Drive_DS1302.h","Drive_DS1302.c"中,方便后續(xù)調(diào)用及移植。"Drive_DS1302.h"代碼如下:

#ifndef __DS1302_H__
#define __DS1302_H__

//1302初始化
extern void Init_1302(unsigned char *SetTime);
//獲取時間
extern void GetTime(unsigned char *CurrentTime);
//單字節(jié)模式寫
void WrSingle_1302(unsigned char addr,unsigned char dat);
//單字節(jié)模式讀		  
unsigned char RdSingle_1302(unsigned char addr);
//突發(fā)模式寫
void WrBurst_1302(unsigned char *SetTime);
//突發(fā)模式讀
void RdBurst_1302(unsigned char *CurrentTime);

#endif

"Drive_DS1302.c"代碼如下:

#include< reg52.h >
#include"Drive_DS1302.h"

#define uchar unsigned char
#define  uint unsigned int

sbit   CE_1302 = P1^2;	//DS1302通信引腳CE,I/O,SCLK定義
sbit   IO_1302 = P1^1;
sbit SCLK_1302 = P1^0;	

//寫字節(jié)
void WrByte_1302(uchar dat)
{
	uchar j;
	bit flag;

	for(j=1;j<=8;j++)
 	{	//從低到高依次將1Byte數(shù)據(jù)寫入DS1302
		flag = dat&0x01;

		IO_1302 = flag;//將要寫的位放到總線
		SCLK_1302 = 0;
		SCLK_1302 = 1;//產(chǎn)生一個上升沿,完成1位數(shù)據(jù)寫入

		dat=dat >>1;//將數(shù)據(jù)移到下一位
	}	
}
//讀字節(jié)
uchar RdByte_1302(void)
{
	uchar dat,flag,j;
	for(j=1;j<=8;j++)
	{		
		SCLK_1302 = 1;//產(chǎn)生一個下降沿
		SCLK_1302 = 0;

		flag = IO_1302;//讀取DS1302發(fā)出的一位數(shù)據(jù)
		dat=(dat >>1)|(flag< 7);//讀出的值最低位在前面
	}
	return dat;	
}
//單字節(jié)寫模式
void WrSingle_1302(uchar addr,uchar dat)
{
	CE_1302 = 1;//拉高片選
	WrByte_1302(addr);//寫入地址及控制指令
	WrByte_1302(dat);//寫入數(shù)據(jù)
	CE_1302 = 0;//拉低片選
	SCLK_1302 = 0;//釋放始終總線,滿足下次操作時序要求(非常重要)

}
//單字節(jié)讀模式
uchar RdSingle_1302(uchar addr)
{
	uchar dat;

	CE_1302 = 1;//拉高片選
	WrByte_1302(addr);//寫入地址及控制指令
	dat = RdByte_1302();//讀取一個字節(jié)數(shù)據(jù)
 	CE_1302 = 0;//拉低片選

	return dat;
}
//突發(fā)寫模式
void WrBurst_1302(uchar *SetTime)
{
	uchar j;

	CE_1302 = 1;//拉高片選
	WrByte_1302(0xBE);//Burst模式寫專用指令
	for(j=0;j<=6;j++)
	{
		WrByte_1302(SetTime[j]);//寫入7位時鐘數(shù)據(jù)
	}
	CE_1302 = 0;//拉低片選	
}
//突發(fā)讀模式
void RdBurst_1302(uchar *CurrentTime)
{
	uchar j;

	CE_1302 = 1;//拉高片選
	WrByte_1302(0xBF);//Burst模式讀專用指令
	for(j=0;j<=6;j++)
	{
		*CurrentTime = RdByte_1302();//讀取一個字節(jié)數(shù)據(jù);
		CurrentTime++;
	}
	CE_1302 = 0;//拉低片選	
}
//1302初始化
void Init_1302(uchar *SetTime)
{
	  uchar j;

	  CE_1302 = 0;//初始化通信引腳
	SCLK_1302 = 0;

	WrSingle_1302(0x8E,0x00);//解除寫保護(hù)(WP=0)
	
	for(j=0;j<=6;j++)
	{
		WrSingle_1302(0x80+2*j,SetTime[j]);//寫入7個時鐘數(shù)據(jù)
	}
	//WrBurst_1302(SetTime);//當(dāng)采用Burst模式時,使用此語句替代上面for循環(huán)語句
}
//獲取當(dāng)前時間值
void GetTime(uchar *CurrentTime)
{
	  uchar j;

	  CE_1302 = 0;//初始化通信引腳
	SCLK_1302 = 0;

	for(j=0;j<=6;j++)
	{
		 *CurrentTime = RdSingle_1302(0x81+2*j);//讀取7個時鐘數(shù)據(jù)
		 CurrentTime++;
	}
	
	//RdBurst_1302(CurrentTime); //當(dāng)采用Burst模式時,使用此語句替代上面for循環(huán)語句
}

下面我們利用上面編寫的函數(shù)以及學(xué)習(xí)的單片機的知識,開始編寫一個小的時鐘顯示綜合應(yīng)用程序。程序的功能為:上電時由單片機對 DS1302 進(jìn)行初始化,設(shè)置時間為 2017 年、星期日、12 月 31 日、23 時 58 分 56 秒,初始化完成后,每隔 500ms 獲取 DS1302 的時間,并將時間顯示到 1602 液晶顯示器上,主函數(shù)程序如下所示:

#include< reg52.h >
#include"Drive_1602.h"
#include"Drive_DS1302.h"

#define uchar unsigned char
#define  uint unsigned int

#define FOSC 11059200 //單片機晶振頻率
#define T_1ms (65536 - FOSC/12/1000)  //定時器初始值計算

sbit DU = P2^7;//數(shù)碼管段選、位選引腳定義
sbit WE = P2^6;
sbit DU_L = P2^3;
	
uchar T_flag  = 0;//定時500ms標(biāo)志位
uchar str[23]=0;  //字符臨時存儲變量
unsigned char code SetTime[7]={//2017年,星期日,12月31日,23時58分56秒,時間初始值
	 			0x56,0x58,0x23,0x31,0x12,0x07,0x17};
uchar CurrentTime[7]={0};//存儲時間變量

void main()
{
 	Init_1602();//1602初始

	P0 = 0xff;//關(guān)閉所有數(shù)碼
	WE = 1;
	WE = 0;
	DU_L = 0;

	TMOD = 0x01;	 //定時器工作模式配置
	TL0  = T_1ms;	//裝載初始值
	TH0  = T_1ms >>8;
	TR0  = 1;		 //啟動定時器
	ET0  = 1;		 //允許定時器中斷
	EA   = 1;		 //開總中斷


	Init_1302(SetTime);//1302初始化

	while(1)
	{
		if(T_flag)//500ms定時
		{
			T_flag = 0;
			GetTime(CurrentTime);//獲取時間

			str[0] = '2';	 
			str[1] = '0';	 
			str[2] = (CurrentTime[6] >>4)+'0';	 //年
			str[3] = (CurrentTime[6]& 0x0F)+'0';
			str[4] = '-';
			str[5] = (CurrentTime[4] >>4)+'0';	 //月
			str[6] = (CurrentTime[4]& 0x0F)+'0';
			str[7] = '-';
			str[8] = (CurrentTime[3] >>4)+'0';	 //日
			str[9] = (CurrentTime[3]& 0x0F)+'0';
		   str[10] = '?';
		   str[11] = (CurrentTime[2] >>4)+'0';	 //時
		   str[12] = (CurrentTime[2]& 0x0F)+'0';
		   str[13] = ':';
		   str[14] = (CurrentTime[1] >>4)+'0';	 //分
		   str[15] = (CurrentTime[1]& 0x0F)+'0';
		   str[16] = ':';	   
		   str[17] = (CurrentTime[0] >>4)+'0';	 //秒
		   str[18] = (CurrentTime[0]& 0x0F)+'0';
		   str[19] = ' ';
		   str[20] = (CurrentTime[5] >>4)+'0';	 //星期
		   str[21] = (CurrentTime[5]& 0x0F)+'0';
		   str[22] = '?';
		    
		  	Disp_1602_str(1,4,str);	//將獲得的時間分別顯示到1602的第一二行
			Disp_1602_str(2,3,str+11);	
		}
	}
}

//定時器0中斷子程序,定時1ms
void timer0() interrupt 1
{
	static uint T_500ms = 0;

	TL0 = T_1ms;//重裝初始值
	TH0 = T_1ms >>8;	

	T_500ms++;
	if(T_500ms >=500)//500ms,置位T_flag
	{
		T_500ms = 0;
		T_flag = 1;	
	}
}

將程序下查看結(jié)果是否與預(yù)想的一致吧。

15.3 突發(fā)操作模式

上面我們講解的是以單字節(jié)的模式,從 1302 中連續(xù)讀取時間數(shù)據(jù)。仔細(xì)的同學(xué)可能會發(fā)現(xiàn)一個問題,就是我們連續(xù)讀 7 個時間寄存器是有先后順序的,會有讀錯數(shù)據(jù)的風(fēng)險。例如我們要讀的時間為 23 時 59 分 59 秒,最開始時我們把 59 秒讀出來了,如果剛好在你讀完的時候 59 秒變成了 00 秒,59 分變成了 00 分,23 時變成了 00 時,接下來把分、時依次讀出來,因此我們讀出來的時間為 00 時 00 分 59 秒,很顯然這個時間是不對的。下面我們講解的突發(fā)操作模式有效的解決了這個問題。

在突發(fā)操作讀模式下,當(dāng) DS1302 收到突發(fā)讀數(shù)據(jù)指令,DS1302 首先會把 8 個時間寄存器的數(shù)據(jù)同時讀出存放在 8 個二級時間寄存器中,然后依次把 8 個二級時間寄存器的數(shù)據(jù)輸出給單片機,突發(fā)讀專用指令為 0xBF。同樣,當(dāng)我們需要寫 DS1302 時,當(dāng)收到突發(fā)寫指令后,DS1302 將接收到的 8 個連續(xù)數(shù)據(jù)存儲到 8 個二級時間寄存器中,然后同時將 8 個數(shù)據(jù)寫到時間寄存器中,突發(fā)寫專用指令為 0xBE。根據(jù)上述原理,編寫突發(fā)寫模式和突發(fā)讀模式函數(shù)如下代碼所示。

//突發(fā)寫模式
void WrBurst_1302(uchar *SetTime)
{
	uchar j;

	CE_1302 = 1;//拉高片選
	WrByte_1302(0xBE);//Burst模式寫專用指令
	for(j=0;j<=6;j++)
	{
		WrByte_1302(SetTime[j]);//寫入7位時鐘數(shù)據(jù)
	}
	CE_1302 = 0;//拉低片選	
}
//突發(fā)讀模式
void RdBurst_1302(uchar *CurrentTime)
{
	uchar j;

	CE_1302 = 1;//拉高片選
	WrByte_1302(0xBF);//Burst模式讀專用指令
	for(j=0;j<=6;j++)
	{
		*CurrentTime = RdByte_1302();//讀取一個字節(jié)數(shù)據(jù);
		CurrentTime++;
	}
	CE_1302 = 0;//拉低片選	
}

如上圖所示,首先為向 DS1302 寫入突發(fā)讀或者寫指令,然后緊接著是讀取或?qū)懭?7 個時間數(shù)據(jù)。前面講解的都是 8 個連續(xù)的數(shù)據(jù),我們這里寫 7 個的原因是,時間顯示這 7 個就足夠了。上述完整代碼詳見完整代碼"Drive_DS1302.h"、"Drive_DS1302.c"中。

突發(fā)模式的應(yīng)用與單字節(jié)模式類似,只需將如下代碼中的for循環(huán)語句替換成“RdBurst_1302(CurrentTime)”即可。

//獲取當(dāng)前時間值
void GetTime(uchar *CurrentTime)
{
	  uchar j;

	  CE_1302 = 0;//初始化通信引腳
	SCLK_1302 = 0;

	for(j=0;j<=6;j++)
	{
		 *CurrentTime = RdSingle_1302(0x81+2*j);//讀取7個時鐘數(shù)據(jù)
		 CurrentTime++;
	}
	
	//RdBurst_1302(CurrentTime); //當(dāng)采用Burst模式時,使用此語句替代上面for循環(huán)語句
}

15.4 本章小結(jié)

本章詳細(xì)介紹了實時時鐘芯片DS1302的工作原理,驅(qū)動程序的編寫,以及DS1302的簡單應(yīng)用。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機
    +關(guān)注

    關(guān)注

    6058

    文章

    44821

    瀏覽量

    644570
  • 微處理器
    +關(guān)注

    關(guān)注

    11

    文章

    2358

    瀏覽量

    83591
  • 時鐘芯片
    +關(guān)注

    關(guān)注

    2

    文章

    257

    瀏覽量

    40432
  • DS1302
    +關(guān)注

    關(guān)注

    8

    文章

    450

    瀏覽量

    51343
收藏 人收藏

    評論

    相關(guān)推薦

    實時時鐘芯片DS1302應(yīng)用

    時鐘程序 完整內(nèi)容下載: 實時時鐘芯片DS1302應(yīng)用.docx
    發(fā)表于 07-05 10:09

    實時時鐘芯片DS1302有哪些性能

    實時時鐘 DS1302一、實時時鐘芯片DS13021、DS1302的主要性能指標(biāo)(1)
    發(fā)表于 12-10 08:01

    DS1302實時時鐘電路說明

    37種傳感器(三十二)DS1302模塊+Stduino Nano&UNO本文轉(zhuǎn)載自::51、stm32、arduino、stduino單片機、stduino UNO&Nano
    發(fā)表于 01-17 09:04

    DS1302實時時鐘芯片介紹

    DS1302電子時鐘DS1302如上圖所示,它是由美國DALLAS公司推出的具有涓細(xì)電流充電能力的低功耗實時時鐘芯片
    發(fā)表于 01-17 06:44

    DS1302實時時鐘芯片介紹

    文章目錄實時時鐘芯片 DS1302 介紹DS1302 的特點實時時鐘芯片
    發(fā)表于 02-18 07:57

    實時時鐘芯片DS1302應(yīng)用資料

    子函數(shù)供讀者調(diào)用。本章最后通過一個具體的實例,講解了如何使用51系列單片機來操作實時時鐘芯片DS1302
    發(fā)表于 09-26 08:27

    實時時鐘DS1302程序列子

    實時時鐘DS1302程序列子     /*********************************************************************//* 實時時鐘
    發(fā)表于 07-08 16:26 ?143次下載

    實時時鐘電路DS1302的原理及應(yīng)用

    實時時鐘電路DS1302的原理及應(yīng)用 現(xiàn)在流行的串行時鐘電路很多,如DS1302DS1307、PCF8485等。這些電路的接口簡單、
    發(fā)表于 01-01 00:19 ?5768次閱讀
    <b class='flag-5'>實時時鐘</b>電路<b class='flag-5'>DS1302</b>的原理及應(yīng)用

    ds1302實時時鐘

    ds1302實時時鐘 現(xiàn)在流行的串行時鐘電路很多,如DS1302DS1307、PCF8485等。這些電路的接口簡單、價格低廉、使用方便,
    發(fā)表于 10-09 09:34 ?3889次閱讀
    <b class='flag-5'>ds1302</b><b class='flag-5'>實時時鐘</b>

    基于單片機的1602液晶顯示的DS1302實時時鐘

    基于單片機的1602液晶顯示的DS1302實時時鐘
    發(fā)表于 11-25 14:57 ?39次下載

    單片機制作RTC實時時鐘(DS1302)程序【C語言版】

    單片機制作RTC實時時鐘(DS1302)程序【C語言版】,感興趣的可以看看。
    發(fā)表于 12-30 13:48 ?0次下載

    基于51單片機ds1302實時時鐘數(shù)碼管程序

    基于51單片機ds1302實時時鐘數(shù)碼管程序,帶按鍵調(diào)時,整點報時 和勿擾時段。可以修改 親測通過
    發(fā)表于 10-16 09:26 ?20次下載

    基于實時時鐘模塊 時鐘芯片DS1302

    基于實時時鐘模塊 時鐘芯片DS1302
    發(fā)表于 10-16 11:35 ?40次下載
    基于<b class='flag-5'>實時時鐘</b>模塊 <b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b><b class='flag-5'>DS1302</b>

    51單片機DS1302實時時鐘驅(qū)動程序

    本文首先闡述了ds1302引腳及功能,其次介紹了DS1302的控制字節(jié)及電路圖,最后詳細(xì)介紹了51單片機DS1302實時時鐘驅(qū)動程序。
    發(fā)表于 05-15 08:45 ?9825次閱讀
    51<b class='flag-5'>單片機</b><b class='flag-5'>DS1302</b><b class='flag-5'>實時時鐘</b>驅(qū)動程序

    實時時鐘芯片 DS1302 介紹

    文章目錄實時時鐘芯片 DS1302 介紹DS1302 的特點實時時鐘芯片
    發(fā)表于 12-23 19:47 ?11次下載
    <b class='flag-5'>實時時鐘</b><b class='flag-5'>芯片</b> <b class='flag-5'>DS1302</b> 介紹
    主站蜘蛛池模板: 国产精品资源网 | 黄色在线视频免费看 | 在线观看一级片 | 免费精品 | 中文天堂在线www | 三级网址在线 | 欧美不卡视频在线 | 中文字幕二区 | 秋霞一级特黄真人毛片 | 久久久精品午夜免费不卡 | 乱人伦精品一区二区 | 日韩欧美卡一卡二卡新区 | 美女把尿口扒开让男人桶出水 | 视频一区二区在线 | 男人天堂网在线视频 | 日本大黄在线观看 | 欧美性猛交xxxx乱大交高清 | 亚洲国产一区二区三区在线观看 | 狠狠干欧美 | 激情久久婷婷 | 男女免费观看视频 | 一级特黄a 大片免费 | 痴女在线播放免费视频 | 日本a级片免费 | 国产天堂网 | 天天色天天搞 | 女女色综合影院 | 婷婷激情久久 | 久久综合中文字幕 | 香蕉久久夜色精品国产2020 | 手机看片三级 | 四虎影永久在线观看精品 | 国产亚洲综合一区 柠檬导航 | 黄色高清视频网站 | 欧美性猛交xxxx乱大交 | 国产伦精品一区二区三区网站 | 国产亚洲精品久久久极品美女 | 国模啪啪一区二区三区 | 永久免费人成网ww555kkk手机 | 四虎看黄| 午夜手机福利 |