導航:首頁 > 電器電路 > 實時時鍾電路

實時時鍾電路

發布時間:2022-01-02 16:58:21

A. 時鍾電路基本原理

一、時鍾電路原理- -簡介
時鍾電路,就是產生象時鍾一樣准確的振盪電路。時鍾電路主要由晶體振盪器、晶震控制晶元和電容三部分構成,具有價格低廉、介面簡單、使用方便等特點,目前已有了很廣泛的應用,如電子表的時鍾電路、電腦的時鍾電路、MP3/4的時鍾電路等。目前流行的串列時鍾電路有DS1302、DS1307、PCF8485等,其中,DS1302是DALLAS公司的一種具有涓細電流充電能力的電路,採用串列數據傳輸,並為掉電保護電源提供可編程的充電功能。本文我們就以DS1302為例來對時鍾電路原理進行詳細的講解。



二、時鍾電路原理- -引腳
實時時鍾電路DS1302包括VCC1、VCC2、X1、X2、SCLK、I/O、RST、GND八個引腳。其中,VCC1用作主電源,VCC2用作備用電源,當滿足VCC1>VCC2時,由主電源向DS1302供電,當滿足VCC2>VCC1+0.2時,由備用電源向DS1302進行供電;X1和X2是32867Hz的晶振管腳,主要用於為晶元提供時鍾脈沖;SCLK為串列時鍾,主要用於提供時鍾信號以控制數據的輸入與輸出;I/O為輸入輸出設備,用作三線介面時的雙向數據線;RST主要提供復位功能,其在數據的讀寫過程中,必須保持為高電位;GND引腳用於和大地相連。



三、時鍾電路原理
DS1302的控制位元組的最高有效位即位7必須是邏輯1,若該位為0,則不能把該數據寫入進DS1302中;位6為1表示存取RAM數據,為0表示存取日歷時鍾數據;位5至位1表示操作單元的地址;最低有效位即位0為1表示要進行讀操作,為0表示要進行寫操作;其控制位元組總是從最低位開始進行輸出。

在控制指令字輸入後的下一個SCLK時鍾的上升沿時,數據被寫入DS1302,數據輸入從最低有效位即位0開始。同樣,在緊跟8位的控制指令字後的下一個SCLK脈沖的下降沿讀出DS1302的數據,數據輸出時也是從最低有效位即位0開始。

B. RTC實時時鍾電路不工作,用的晶元是 STM32F101 外部晶振是 32.768 諧振電容是 10PF 沒有外接電阻,望求救

MCU的RTC工作原理其實都一致,
1.首先供電需要正常,也就是在系統上電的時候給予3.3V,或者無論何時的小電池或大電容供電。
2.其次你的電路接法按照其TYPE電路來,諧振電容選10PF也沒問題,但是你必須保證你的元器件是好的。
3.線路板上焊接是否有問題?或者其實你的MCU RTC供電電路已經被幹掉了?換個晶元試試。
基本以上三點保證,肯定沒問題的。

C. cmos與rtc實時時鍾電路是怎麼一回事,分不請呀

cmos時鍾就是南橋與14.318晶振為主板產生的時間啦!

RTC的英文全程是Real-Time Clock,翻譯過來是實時時鍾晶元. RTC是PC主板上的晶振及相關電路組成的時鍾電路的生成脈沖,RTC經過8254電路的頻產生一個頻率較低一點的OS(系統)時鍾TSC,系統時鍾每一個cpu周期加一,每次系統時鍾在系統初起時通過RTC初始化。8254本身工作也需要有自己的驅動時鍾(PIT)。 它的主要作用就是提供穩定的時鍾信號給後續電路用.主要功能有:時鍾&日歷,鬧鍾,周期性中斷輸出,32KHz時鍾輸出. RTC的主要性能指標有: 控制方式:二線制,三線制,四線制. ...... 詳細內容>>

D. 求電子實時時鍾/萬年日歷系統的報告 (電路圖和代碼)

好的,我來幫你搞定

E. 主板中時鍾電路晶元的作用

主板中時鍾電路晶元的作用:給硬體設備一個運行頻率。

時鍾晶元是一回種時鍾電路答

時鍾晶元是一種高性能、低功耗、帶RAM的實時時鍾電路,時鍾晶元可以對年、月、日、周日、時、分、秒運行計時,具有閏年補償功能,工作電壓為2.5V~5.5V。它使用三線介面與CPU運行同步通信,並可使用突發方式一次傳送多個位元組的時鍾信號或RAM數值。

數據輸入輸出(I/O)

在控制指令字輸入後的下一個SCLK時鍾的上升沿時,數據被寫入DS1302,數據輸入從低位即位0開始。同樣,在緊跟8位的控制指令字後的下一個SCLK脈沖的下降沿讀出DS1302的數據,讀出數據時從低位0位到高位7。

F. 什麼是時鍾電路

在電子電路中,實時時鍾電路通常簡稱時鍾電路,實時時鍾的縮寫是RTC(Real_Time Clock).實時時鍾電路內通常由一個容時鍾集成電路和外圍的32.768KHZ晶體、匹配電容組成。實時時鍾集成電路內部實現自動計時,產生年月日及鬧鈴等相關數據,通過IIC介面和單片機等中央處理系統連接。常用的實時時鍾集成電路型號:DS1302,HT1380,HT1381,PCF8563等。還有的廠家直接把集成電路、晶體、電容、電池等做成一個小電路板,然後封裝起來,行成一個模塊,通常稱為時鍾模塊。

G. 實時時鍾電路是什麼

實時時鍾是一來款帶自56個位元組用戶非易失性SRAM(NV SRAM)低功耗、全BCD碼的時鍾/日歷電路。地址和數據通過串列I2C匯流排傳遞。時鍾/日歷提供秒、分、小時、周、日、月和年信息。對小於31天的月,月末的日期自動進行調整,還具有閏年矯正的功能。時鍾可以工作在24小時格式或帶AM/PM標志的12小時格式。

已經生產的有HYM1307,有一個內置的電壓判斷電路,具有電源掉電檢測功能,在電源掉電時,可自動切換到備用電源(電池)供電。

H. 實時時鍾電路產生的正弦波形時鍾信號頻率為多少

輯電路的主時鍾通常有13M、26M、和19.5M等;實時時鍾一般為32.768KHz。

I. 求單片機 實時時鍾 電路 圖和配套代碼

實時的話肯定要用DS1302了,給你發個吧,用STC89c52寫的:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
//引腳定義
sbit TIMERCLK=P3^2; //DS1302同步串列時鍾引腳
sbit TIMERIO=P3^3; //DS1302數據輸入輸出引腳
sbit TIMERRST=P3^4; //DS1302RST引腳
sbit P2_0=P2^0;
sbit P2_1=P2^1;
sbit P2_2=P2^2;
sbit P2_3=P2^3;
sbit P2_4=P2^4;
sbit P2_5=P2^5;
sbit P2_6=P2^6;
sbit P2_7=P2^7;
sbit P3_5=P3^5;
sbit P3_6=P3^6;
sbit P3_7=P3^7;
//sbit SEC_7=SEC^7;
//sbit WDT=P1^3; //看門狗"喂狗"引腳
uchar code TABLE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};
//#define DIGPORT

//全局變數聲明
uchar bdata DS1302dat; //DS1302讀寫過程中的命令或數據
sbit ds1302datHbit=DS1302dat^7; //位定義,用於數據寫入
sbit ds1302datBit=DS1302dat^0; //位定義,用於數據讀出
uchar bdata DS1302adr; //DS1302讀寫過程中所訪問的單元地址
sbit ds1302adrBit=DS1302adr^0; //
uchar idata SEC;
uchar MIN;
uchar HR;
uchar DATE;
uchar MONTH;
uchar DAY;
uchar YEAR;
uchar disp1;
uchar disp2;
uchar disp3;
uchar disp4;
uchar disp5;
uchar disp6;
uchar disp7;
uchar disp8;
uchar tiao;
uchar tt;
uchar flag;

// sbit SEC_7=SEC^7;
void delay(uchar time)
{
uchar i,j;
for(i=0;i<time;i++)
{
for(j=0;j<time;j++)
{
// WDT=~WDT;

}
}
}

void writeDS1302(uchar dsRamAdr,uchar ds1302data)
{
uchar i;
TIMERCLK=0;
delay(2);
TIMERRST=1;
delay(2);
DS1302adr=dsRamAdr;
DS1302dat=ds1302data;
for(i=0;i<8;i++)
{
CY=0;
TIMERCLK=0;
CY=ds1302adrBit;
TIMERIO=CY;
delay(2);
TIMERCLK=1;
DS1302adr=DS1302adr>>1;
}
for(i=0;i<8;i++)
{
CY=0;
TIMERCLK=0;
CY=ds1302datBit;
TIMERIO=CY;
delay(2);
TIMERCLK=1;
DS1302dat=DS1302dat>>1;
}
TIMERRST=0;
delay(2);
TIMERRST=0;
}

uchar readDS1302(uchar DS1302Adr)
{
uchar i;
TIMERCLK=0;
delay(2);
TIMERRST=1;
delay(2);
DS1302adr=DS1302Adr;
for(i=0;i<8;i++)
{
TIMERCLK=0;
TIMERIO=ds1302adrBit;
delay(2);
TIMERCLK=1;
DS1302adr=DS1302adr>>1;
}
TIMERIO=1;
for(i=0;i<7;i++)
{
TIMERCLK=0;
ds1302datHbit=TIMERIO;
delay(2);
TIMERCLK=1;
DS1302dat=DS1302dat>>1;
TIMERCLK=0;
ds1302datHbit=TIMERIO;
}
TIMERRST=0;
delay(2);
TIMERCLK=0;
return DS1302dat;
}

void DS1302Inital(void)
{
uchar ds1302st;
TIMERCLK=0;
TIMERRST=0;
ds1302st=readDS1302(0x0c1);
if(ds1302st!=0x55)
{

writeDS1302(0x8e,0x00);
//writeDS1302(0x80,0x00);
writeDS1302(0x82,0x00);
writeDS1302(0x84,0x16);
writeDS1302(0x86,0x19);

writeDS1302(0x88,0x09);
writeDS1302(0x8a,0x02);
writeDS1302(0x8c,0x00);

writeDS1302(0x90,0xa6);
writeDS1302(0x0c0,0x55);
writeDS1302(0x80,0x00);
}
}

void readRTC(void)
{
MONTH=readDS1302(0x89);
DATE=readDS1302(0x87);
HR=readDS1302(0x85);
MIN=readDS1302(0x83);
SEC=readDS1302(0x81);
}

void disp(void)
{
if(MIN==10)writeDS1302(0x82,0x10);
if(MIN==26)writeDS1302(0x82,0x20);
if(MIN==42)writeDS1302(0x82,0x30);
if(MIN==58)writeDS1302(0x82,0x40);
if(MIN==74)writeDS1302(0x82,0x50);
if(MIN==90)writeDS1302(0x82,0x00);
if(HR==10)writeDS1302(0x84,0x10);
if(HR==26)writeDS1302(0x84,0x20);
if(HR==36)writeDS1302(0x84,0x00);
//if(HR==58)writeDS1302(0x82,0x40);
//if(HR==74)writeDS1302(0x82,0x50);
//if(HR==90)writeDS1302(0x82,0x00);
if(DATE==10)writeDS1302(0x86,0x10);
if(DATE==26)writeDS1302(0x86,0x20);
if(DATE==42)writeDS1302(0x86,0x30);
if(DATE==50)writeDS1302(0x86,0x01);
//if(DATE==74)writeDS1302(0x82,0x50);
//if(DATE==90)writeDS1302(0x82,0x00);
disp2=SEC/16;
disp1=SEC%16;
//if(flag1==0)
//if(MIN==10||MIN==26||MIN==42||MIN==58||MIN==74){MIN=MIN+6;}

disp4=MIN/16;
disp3=MIN%16;//flag1=0;
disp6=HR/16;
disp5=HR%16;
disp8=DATE/16;
disp7=DATE%16;
P2_0=0;
P0=TABLE[disp1];
delay(12);
P2_0=1;
P2_1=0;
P0=TABLE[disp2];
delay(12);
P2_1=1;
P2_2=0;
P0=TABLE[disp3];
delay(12);
P2_2=1;
P2_3=0;
P0=TABLE[disp4];
delay(12);
P2_3=1;
P2_4=0;
P0=TABLE[disp5];
delay(12);
P2_4=1;
P2_5=0;
P0=TABLE[disp6];
delay(12);
P2_5=1;
P2_6=0;
P0=TABLE[disp7];
delay(12);
P2_6=1;
P2_7=0;
P0=TABLE[disp8];
delay(12);
P2_7=1;
}

void dispA(void)
{
if(SEC==10||SEC==26||SEC==42||SEC==58||SEC==74){SEC=SEC+6;}
//if(SEC==74||SEC==58||SEC==42||SEC==26||SEC==10){SEC=SEC+6;}
disp2=SEC/16;
disp1=SEC%16;
//disp4=MIN/16;
//disp3=MIN%16;
//disp6=HR/16;
//disp5=HR%16;
//disp8=DATE/16;
//disp7=DATE%16;
if(SEC==90)SEC=0;
P2_0=0;
P0=TABLE[disp1];
delay(12);
P2_0=1;
P2_1=0;
P0=TABLE[disp2];
delay(12);
P2_1=1;
P2_2=0;
P0=TABLE[disp3];
delay(5);
P2_2=1;
P2_3=0;
P0=TABLE[disp4];
delay(5);
P2_3=1;
P2_4=0;
P0=TABLE[disp5];
delay(5);
P2_4=1;
P2_5=0;
P0=TABLE[disp6];
delay(5);
P2_5=1;
P2_6=0;
P0=TABLE[disp7];
delay(5);
P2_6=1;
P2_7=0;
P0=TABLE[disp8];
delay(5);
P2_7=1;
}

void dispB(void)
{
if(MIN==10||MIN==26||MIN==42||MIN==58||MIN==74){MIN=MIN+6;}
//if(MIN==74||MIN==58||MIN==42||MIN==26||MIN==10){MIN=MIN+6;}
//disp2=SEC/16;
//disp1=SEC%16;
disp4=MIN/16;
disp3=MIN%16;
//disp6=HR/16;
//disp5=HR%16;
//disp8=DATE/16;
//disp7=DATE%16;
if(MIN==90)MIN=0;
P2_0=0;
P0=TABLE[disp1];
delay(5);
P2_0=1;
P2_1=0;
P0=TABLE[disp2];
delay(5);
P2_1=1;
P2_2=0;
P0=TABLE[disp3];
delay(12);
P2_2=1;
P2_3=0;
P0=TABLE[disp4];
delay(12);
P2_3=1;
P2_4=0;
P0=TABLE[disp5];
delay(5);
P2_4=1;
P2_5=0;
P0=TABLE[disp6];
delay(5);
P2_5=1;
P2_6=0;
P0=TABLE[disp7];
delay(5);
P2_6=1;
P2_7=0;
P0=TABLE[disp8];
delay(5);
P2_7=1;
}

void dispC(void)
{
if(HR==10||HR==26||HR==42||HR==58||HR==74){HR=HR+6;}
//if(HR==74||HR==58||HR==42||HR==26||HR==10){HR=HR+6;}
//disp2=SEC/16;
//disp1=SEC%16;
//disp4=MIN/16;
//disp3=MIN%16;
disp6=HR/16;
disp5=HR%16;
if(HR==36)HR=0;
//disp8=DATE/16;
//disp7=DATE%16;
P2_0=0;
P0=TABLE[disp1];
delay(5);
P2_0=1;
P2_1=0;
P0=TABLE[disp2];
delay(5);
P2_1=1;
P2_2=0;
P0=TABLE[disp3];
delay(5);
P2_2=1;
P2_3=0;
P0=TABLE[disp4];
delay(5);
P2_3=1;
P2_4=0;
P0=TABLE[disp5];
delay(12);
P2_4=1;
P2_5=0;
P0=TABLE[disp6];
delay(12);
P2_5=1;
P2_6=0;
P0=TABLE[disp7];
delay(5);
P2_6=1;
P2_7=0;
P0=TABLE[disp8];
delay(5);
P2_7=1;
}
void dispD(void)
{
if(DATE==10||DATE==26||DATE==42||DATE==58||DATE==74){DATE=DATE+6;}
//if(DATE==74||DATE==58||DATE==42||DATE==26||DATE==10){DATE=DATE+6;}
//disp2=SEC/16;
//disp1=SEC%16;
//disp4=MIN/16;
//disp3=MIN%16;
//disp6=HR/16;
//disp5=HR%16;
disp8=DATE/16;
disp7=DATE%16;
if(DATE==50)DATE=1;

P2_0=0;
P0=TABLE[disp1];
delay(5);
P2_0=1;
P2_1=0;
P0=TABLE[disp2];
delay(5);
P2_1=1;
P2_2=0;
P0=TABLE[disp3];
delay(5);
P2_2=1;
P2_3=0;
P0=TABLE[disp4];
delay(5);
P2_3=1;
P2_4=0;
P0=TABLE[disp5];
delay(5);
P2_4=1;
P2_5=0;
P0=TABLE[disp6];
delay(5);
P2_5=1;
P2_6=0;
P0=TABLE[disp7];
delay(12);
P2_6=1;
P2_7=0;
P0=TABLE[disp8];
delay(12);
P2_7=1;
}

void main(void)
{
DS1302Inital();
while(1)
{
readRTC();
disp();
tt=0;
flag=0;
tiao=0;
while(P3_7==0||tt==1)
{
tt=1;
if(flag==0)
{
tiao++;
flag=1;
}
if(tiao==1)
{
while(P3_7==0);
dispA();
if(P3_6==0)
{
while(P3_6==0);
writeDS1302(0x80,++SEC);
}
if(P3_5==0)
{
while(P3_5==0);
writeDS1302(0x80,--SEC);
}
if(P3_7==0)
flag=0;
}
if(tiao==2)
{
while(P3_7==0);
dispB();
if(P3_6==0)
{
while(P3_6==0);
writeDS1302(0x82,++MIN);
}
if(P3_5==0)
{
while(P3_5==0);
writeDS1302(0x82,--MIN);
}
if(P3_7==0)
flag=0;
}
if(tiao==3)
{
while(P3_7==0);
dispC();
if(P3_6==0)
{
while(P3_6==0);
writeDS1302(0x84,++HR);
}
if(P3_5==0)
{
while(P3_5==0);
writeDS1302(0x84,--HR);
}
if(P3_7==0)
flag=0;
}
if(tiao==4)
{
while(P3_7==0);
dispD();
if(P3_6==0)
{
while(P3_6==0);
writeDS1302(0x86,++DATE);
}
if(P3_5==0)
{
while(P3_5==0);
writeDS1302(0x86,--DATE);
}
if(P3_7==0)
flag=0;
}
if(tiao==5)
tt=0;
}
}
}
你自己用keil軟體調就行了!

閱讀全文

與實時時鍾電路相關的資料

熱點內容
北京家居電子商務有限公司 瀏覽:253
蘋果指紋保修嗎 瀏覽:270
木質傢具摔裂怎麼固定 瀏覽:296
防水塗料如何用滾筒刷 瀏覽:563
華苑冠華維修電話 瀏覽:698
頂樓雨棚多久需要維修 瀏覽:864
海爾空調武漢維修點 瀏覽:603
北碚長安4s店維修電話號碼 瀏覽:924
小米售後維修大概需要多久 瀏覽:949
電腦保修鍵盤進水保修嗎 瀏覽:398
維修車子需要帶什麼 瀏覽:829
維修電腦與家電怎麼辦理執照 瀏覽:518
瑞士珠寶保修單 瀏覽:284
中式古典傢具質量怎麼樣 瀏覽:296
合肥傢具除甲醛如何處理 瀏覽:457
樓頂開裂用什麼防水材料 瀏覽:441
蘋果廣西售後維修點嗎 瀏覽:739
廣州市蘋果維修電話 瀏覽:46
家電的市場部活動怎麼寫 瀏覽:535
開平二手家電市場在哪裡 瀏覽:202