導航:首頁 > 操作系統 > 基於51單片機的電子時鍾設計

基於51單片機的電子時鍾設計

發布時間:2025-05-19 20:27:09

Ⅰ C51單片機電子時鍾設計思路

用定時器,設置定時時間為20毫秒,50次累加=1秒,累加秒數據60次=1分,依次類推。每次中斷完成累加和顯示(動態,刷新頻率50HZ,應該不會閃爍)

Ⅱ 關於用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單片機的數碼管設計電子時鍾,可以調時間的,怎麼弄唉,大家幫幫忙...

說一下步驟吧:
1、數碼管驅動電路設計。一般用三極體如9013或者鎖存器如74HC573來驅動,使其能夠正常亮滅。
2、使用動態掃描的方式讓數碼管能夠顯示你想要的數字,這個可以用中斷來掃描也可以不用。
3、使用實時時鍾晶元如DS1302來獲得你想要的時間數據。這種網上有很多源程序,你可以搜索看。你要學會幾點:(1)對晶元初始化;(2)獲得時間數據;(3)知道怎麼修改數據。
4、使用按鍵來修改時間數據。這個方法很多,盡提供參考的。使用三個按鍵,分別是:設置按鍵(這個是復用按鍵,按一次進入設置模式,並讓某一位閃爍,再按則依次讓下一位閃爍,表示被選擇,直到要設置的數字完成再按則確認設置),+鍵和-鍵。這個不僅僅是修改數據那麼簡單,還需要涉及到對DS1302數據的修改,需要關閉DS1302的防寫功能,設置結束後再打開這個功能。
以上字字手打,希望對你有幫助

Ⅳ 哪位大神能幫我寫一個基於單片機C51的電子時鍾設計報告

老師給我的
電子鍾設計
1、 電路圖:

2功能實現:
(1. 把「單片機系統」區域中的P1.0-P1.7埠用8芯排線連接到「動態數碼顯示」區域中的A-H埠上;
(2. 把「單片機系統:區域中的P3.0-P3.7埠用8芯排線連接到「動態數碼顯示」區域中的S1-S8埠上;
(3. 把「單片機系統」區域中的P0.0/AD0、P0.1/AD1、P0.2/AD2埠分別用導線連接到「獨立式鍵盤」區域中的SP3、SP2、SP1埠上;
3、程序框圖:

6. 匯編源程序
HOURK BIT P1.2
MINITEK BIT P1.1
SECONDK BIT P1.0
SECOND EQU 30H
MINITE EQU 31H
HOUR EQU 32H
ORG 00H
LJMP START
ORG 0BH
LJMP INT_T0
ORG 0030H
START:
MOV SECOND,#00H
MOV MINITE,#00H
MOV HOUR,#12
MOV R0,#00H
MOV TMOD,#01H
MOV TH0,#3CH
MOV TL0,#0B0H
SETB EA
SETB ET0
SETB TR0
NEXT: MOV A,#7FH
MOV P3,A
MOV A,HOUR
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
MOV A,#0BFH
MOV P3,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY

MOV A,#0DFH
MOV P3,A
mov p2,#40h
call delay

mov a,#0efh
mov p3,a
MOV A,MINITE
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
MOV A,#0F7H
MOV P3,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY

MOV A,#0FBH
MOV P3,A
mov p2,#40h
call delay

MOV A,#0FDH
MOV P3,A
MOV A,SECOND
MOV B,#10
DIV AB
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY
MOV A,#0FEH
MOV P3,A
MOV A,B
MOV DPTR,#TABLE
MOVC A,@A+DPTR
MOV P2,A
CALL DELAY

WT: JB SECONDK,NK1
LCALL DELY10MS
JB SECONDK,NK1
JNB SECONDK,$
INC SECOND
MOV A,SECOND
CJNE A,#60,NK1
MOV SECOND,#00H
NK1: JB MINITEK,NK2
LCALL DELY10MS
JB MINITEK,NK2
JNB MINITEK,$
INC MINITE
MOV A,MINITE
CJNE A,#60,NK2
MOV MINITE,#00H
NK2: JB HOURK,NK3
LCALL DELY10MS
JB HOURK,NK3
JNB HOURK,$
INC HOUR
MOV A,HOUR
CJNE A,#24,NK3
MOV HOUR,#00
NK3:
MOV A,R0
CJNE A,#20,NEXT1
MOV R0,#0
INC SECOND
MOV A,SECOND
CJNE A,#60,NEXT1
MOV SECOND,#0
INC MINITE
MOV A,MINITE
CJNE A,#60,NEXT1
MOV MINITE,#0
INC HOUR
MOV A,HOUR
CJNE A,#24,NEXT1
MOV HOUR,#0
next1:JMP NEXT
TABLE:DB 3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,6FH,40H
INT_T0: CLR TR0
INC R0
MOV TH0,#3CH
MOV TL0,#0B0H
SETB TR0
RETI
DELAY:
MOV R6,#2
D1: MOV R7,#248
DJNZ R7,$
DJNZ R6,D1
RET
DELY10MS:
MOV R6,#10
DD1: MOV R7,#248
DJNZ R7,$
DJNZ R6,DD1
RET
END

閱讀全文

與基於51單片機的電子時鍾設計相關的資料

熱點內容
宏基手機如何裝安卓系統 瀏覽:743
linuxcp命令實現 瀏覽:668
單片機熱釋紅外報警器 瀏覽:661
單片機原理及介面技術b卷 瀏覽:356
php鏈接正則表達式 瀏覽:966
安卓版蘋果手機怎麼轉手 瀏覽:103
安卓怎麼修改app的名字 瀏覽:139
域名伺服器可將域名地址 瀏覽:723
廣州伺服器機櫃怎麼賣 瀏覽:238
轉讓騰訊雲三年伺服器 瀏覽:254
網易雲音樂加密怎麼處理 瀏覽:389
編譯小視頻軟體 瀏覽:597
盒馬app買東西怎麼送 瀏覽:121
編譯原理國產 瀏覽:694
在線用pdf轉word 瀏覽:426
咪咕app怎麼發表文章 瀏覽:209
phpsftp上傳 瀏覽:936
php可以幹嘛 瀏覽:879
梁箍筋加密區需要滿綁扎嗎 瀏覽:331
程序員半個月工資多少 瀏覽:822