導航:首頁 > 操作系統 > 單片機一秒的時鍾

單片機一秒的時鍾

發布時間:2022-05-20 17:08:33

單片機時鍾公式

如果是51單片機
時鍾周期是機器周期的12倍
機器周期是晶體振盪器頻率的倒數
1/6MHz=1/6us
51單片機的時鍾周期為12*(1/6us)=2us.

Ⅱ 關於用51單片機做一個電子時鍾的問題


程序中好像還沒有自動加時的部分,並且按鍵處理還沒有消抖措施


不多說了,上程序,俺剛剛為你編寫的,測試的時候使用的埠和你的不一樣


在我的開發板上測試成功後,按照你的板子埠做了修改


如果你直接復制到你的程序中不能使用,檢查及更改一下埠即可


如果滿意記得採納哦,若有疑問可以隨時向我提問


/***************************************************************************/

//#include<stdio.h>

#include<reg51.h>

sbit p20=P2^0; sbit p21=P2^1; sbit led=P2^7;

char dis_2[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//數碼管顯示編碼

unsigned int h,m,s,t,n;

/***************************************************************************/

void delay(char hs)//延時函數

{char hk;for(;hs>0;hs--){for(hk=100;hk>0;hk--);}}

/***************************************************************************/

void XS(unsigned int xh,unsigned int xs) //顯示子函數

{

char d1,d2,d3,d4;

d1=(xs/1)%10; d2=(xs/10)%10;

d3=(xh/1)%10; d4=(xh/10)%10;


P0=dis_2[d1]; P1=0x08; delay(10); P1=0x00;//秒個位

P0=dis_2[d2]; P1=0x04; delay(10); P1=0x00;//秒十位

P0=0x7f; P1=0x04; delay(10); P1=0x00;//小數點

P0=dis_2[d3]; P1=0x02; delay(10); P1=0x00;//時個位

P0=dis_2[d4]; P1=0x01; delay(10); P1=0x00;//時十位

}

/***************************************************************************/

void main(void)

{

TH0=(65536-1000)/256; TL0=(65536-1000)%256;

TMOD=0x01; EA=1; ET0=1; TR0=1;//定時器初始化

while(1)//主循環

{

if(p20==0){delay(10);if(p20==0){h++;if(h>23){h=0;}}while(!p20){XS(h,m);}}

if(p21==0){delay(10);if(p21==0){m++;if(m>59){m=0;}}while(!p21){XS(h,m);}}

XS(h,m);//調用數碼管顯示函數

}

}

/***************************************************************************/

void int1() interrupt 1 //定時器中斷

{

TH0=(65536-1000)/256; TL0=(65536-1000)%256; n++;t++;

if(t>500){t=0;led=~led;}//LED閃爍

if(n>1000){n=0;s++;}//如果達到一秒,秒加一

if(s>59){s=0;m++;}//如果達到一分,分加一

if(m>59){m=0;h++;}//如果達到一小時,小時加一

if(h>23){h=0;}//如果達到24小時,小時清零

}

/***************************************************************************/

Ⅲ 單片機定時器設定一秒

對於51 單片機,11.0592M的多用於有用到波特率的,以提高精度。如果需要定時1 秒的 ,可用6M或12M的晶振。如果用12M的話,則1 個機器周期的1us 。定時器范圍是0~FFFF(即65535us)你可定時50ms一次中斷,共20次就是1秒。

Ⅳ 如何讓一個單片機的定時器計時1秒

首先你要知道你的晶振是多少頻率的,然後知道執行一個延遲命令的時間,然後再估算出需要多少個延時命令才能組成1秒。其實網上有很多這樣的延時程序。

Ⅳ 單片機如何精確定時1秒鍾

採用定時器定時很精確的,如果定時時間為1ms,那循環1000次就是1s。定時初值要看你採用的晶振頻率了,下面是12M晶振,定時器0的定時1ms程序。
timer0() interrupt 1 // 1ms延時(12.0MHz)
{
TR0=0;
ET0=0;
TH0=0xfc;
TL0=0x18;
if(delayTimes1!=0) delayTimes1--;
TR0=1;
ET0=1;
}
當要程序中把delayTimes1賦值1000後,等到delayTimes1為0的時候定時1s鍾到

Ⅵ c51單片機做電子時鍾

主程序如下:
void main(void )//主程序
{
TMOD=0x01;// 定時器1工作方式一
ET0=1;
EA=1;
TH0=(65536-50000)/256;//定時50ms
TL0=(65536-50000)%256;
TR0=1;//啟動定時器
while(1)
{
display();

}
}

//中斷子程序
void Timer0(void) interrupt 1
{
TH0=(65536-50000)/256;
TL0=(65536-50000)%256;
a++;
if(a==20){ a=0;sec++;}
if(sec==60){ sec=0;min++;}
if(min==60){ min=0;hour++;}
if(hour==24){ hour=0;}
}

Ⅶ 單片機時鍾秒是怎麼得出來的

一個機器周期=12*1/f
f為晶振頻率
單片機時鍾用計數模式
TMOD=0x01;
TH0=(65536-45872)/256;//要50ms 則由公式計數個數N=2^16-計數初值得
//初值為65536-45782
//把這個數高位給TH0 因為除有這個功能
//取余會提出低位
TL0=(65536-45872)%256;
EA=1;
ET0=1;
TR0=1;
之後兩個循環就是1s啦

Ⅷ 8051單片機如何設置一秒的時間間隔的時鍾

如果用定時器的話,在12M晶振的環境下,無法直接設置1秒的定時器參數,因為最大也就65535微妙,你可以用定時中斷加一個計數器的方式實現1秒的定時,比如設置50毫秒定時中斷,計數20次,即實現了你得要求,P1.0的狀態1秒變化一次,程序如下:
ORG 0000H
LJMP START
ORG 000BH
LJMP TM0
ORG 0030H
START:
CLR EA
MOV SP,#60H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
MOV R0,#0
SETB ET0
SETB TR0
SETB EA
SJMP $
TM0:
CLR TR0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
INC R0
MOV A,R0
CJNE A,#20,TM01
MOV R0,#0
CPL P1.0
TM01:
RETI

Ⅸ 單片機1秒鍾定時匯編語言怎麼編

可以有兩種方法,設晶振為12M,則
第一種方法:用延時的方法實現
DELAY: MOV R3,#10;延時子程序,延時1秒
D1: MOV R4,#200
D2: MOV R5,#250
D3: DJNZ R5,D3
DJNZ R4,D2
DJNZ R3,D1
RET
END

第二種方法:用定時器的方法實現
————
MOV R1,#20
————
DLY: MOV TMOD,#00000001B;延時子程序,設定定時器的工作方式
D1: SETB TL0,#176(65536-50000); 15536/256 (余數)
SETB TH0,#60;設置初出溢出值50ms,定時2S (商)
SETB TR0 ;啟動定時器
JNB TF0,$;是否溢出,沒有溢出等待,溢出走一條指令
CLR TF0;清零溢出
DJNZ R1,D1;走20次,剛好1秒
RET
END

Ⅹ 單片機系統時鍾是多少

學校裡面使用的51單片機,如89C51系列的單片機一般為11.0592MHZ,12MHZ。時鍾周期就是晶振的頻率,機器周期是12*時鍾周期,指令周期執行一條指令所需要的時間,一般由若干個機器周期組成。
你所說的系統時鍾其實就是時鍾周期,也就是晶振頻率

閱讀全文

與單片機一秒的時鍾相關的資料

熱點內容
郵件附件加密後打開能顯示嗎 瀏覽:723
榮耀x10拍照演算法 瀏覽:569
androidgradle配置簽名 瀏覽:94
文件夾左邊的空心三角符號是什麼 瀏覽:284
app英語音頻試卷掃碼怎麼聽 瀏覽:613
字元串編譯預處理 瀏覽:703
蘋果手機怎麼會顯示多個App 瀏覽:240
不去互聯網程序員 瀏覽:553
電腦qq郵箱解壓的圖片保存在哪裡 瀏覽:546
嵌入命令行 瀏覽:92
檔案為什麼被加密 瀏覽:487
十天學會單片機13 瀏覽:875
榮耀怎麼設置讓app一直運行 瀏覽:994
共享文件夾能在哪裡找到 瀏覽:436
旅遊訂旅店用什麼app 瀏覽:241
一個女程序員的聲音 瀏覽:497
魔術app怎麼用 瀏覽:340
單片機有4個8位的io口 瀏覽:898
win10rar解壓縮軟體 瀏覽:170
plc教程pdf 瀏覽:668