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

帶時鍾的單片機

發布時間:2023-08-01 00:22:39

⑴ 怎樣利用51單片機實現時鍾功能程序

#define uchar unsigned char // (先定義一下方便使用)

#define uint unsigned int

#define ulong unsigned long

#include <reg52.h> //包括一個52標准內核的頭文件

uchar code zixing[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};

uchar code ziwei[]={0x10,0x20,0x40,0x80};

uchar *h,*m;

uchar hour=12,min=0,sec=0,h_ding,m_ding,count=0,ms_50,ms_10,miaobiao_sec;

sbit dp=P0^7;

sbit k1=P3^2;

sbit k2=P3^3;

sbit k3=P3^4;

sbit sound=P2^3;

sfr ZIXING=0x80; //p0口輸出字形

sfr ZIWEI=0xa0; //P2口輸出字位

typedef enum //枚舉類型:4種狀態//

{

CLOCK,

SET_RING1,

SET_RING2,

MIAOBIAO_RUN,

}STATE;

STATE status;

typedef struct //定時時間的數據結構//

{

uchar hour;

uchar min;

}DINGSHI_TIME;

DINGSHI_TIME dingshi_time[2];

#define NO_KEY -1 //定義一下方便使用

#define KEY_1 1

#define KEY_2 2

#define KEY_3 3

bit show_on_flag;

//#######定時器T0中斷服務程序########//

Timer0() interrupt 1

{

TH0=0x3c;TL0=0xb4; //50ms

ms_50++;

if(ms_50==20) {sec++;ms_50=0;}

if(sec==60) {sec=0;min++;}

if(min==60) {min=0;hour++;}

if(hour==24) {hour=0;}

}

//#######定時器T1中斷服務程序########//

Timer1() interrupt 3

{

TH1=0xd8;TL1=0xf4; //10ms

ms_10++;

if(ms_10==100)

{

miaobiao_sec++;

ms_10=0;

}

if(miaobiao_sec==60)

miaobiao_sec=0;

}

//##############數碼管顯示#####################//

show(uchar time_high,uchar time_low)

{

uchar m;

uint n,k;

k=time_high*1000/10+time_low;

for(m=0;m<4;m++)

{

ZIXING=zixing[k%10];

if(ms_50<10)

dp=0;

ZIWEI=~ziwei[m];

for(n=0;n<500;n++);

ZIXING=0xff;

for(n=0;n<100;n++);

k=k/10;

}

}

//顯示 on 定時編號//

show_on(uchar id) //id:定時編號//

{

uchar m;

uint n;

for(m=0;m<2;m++)

{

ZIXING=zixing[id%10];

dp=0;

ZIWEI=~ziwei[m];

for(n=0;n<500;n++);

ZIXING=0xff;

for(n=0;n<80;n++);

id=id/10;

}

ZIXING=0xc8; //字母n//

ZIWEI=~ziwei[2];

for(n=0;n<500;n++);

ZIXING=0xff;

for(n=0;n<200;n++);

ZIXING=0xc0; //字母0//

ZIWEI=~ziwei[3];

for(n=0;n<500;n++);

ZIXING=0xff;

for(n=0;n<200;n++);

}

/*************啟動秒錶***************/

void run_miaobiao()

{

ms_10=0;

miaobiao_sec=0;

TH1=0xd8; //標準是0xd8e4

TL1=0xf4;

// TR1=1; //啟動定時器1

}

⑵ 單片機中時鍾、晶振分別是起什麼作用的

晶振用來提供時鍾頻率,時鍾頻率決定了單片機執行的快慢。沒有晶振,就沒有時鍾周期,沒有時鍾周期,就無法執行程序代碼,單片機就無法工作。

單片機工作時,是一條一條地從RoM中取指令,然後一步一步地執行。單片機訪問一次存儲器的時間,稱之為一個機器周期,這是一個時間基準。一個機器周期包括12個時鍾周期。如果一個單片機選擇了12MHz晶振,它的時鍾周期是1/12us, 它的一個機器周期是12X (1/12)us,也就是1us。


(2)帶時鍾的單片機擴展閱讀

每個單片機系統里都有晶振,全程是叫晶體震盪器,在單片機系統里晶振的作用非常大,他結合單片機內部的電路,產生單片機所必須的時鍾頻率,單片機的一切指令的執行都是建立在這個基礎上的,晶振的提供的時鍾頻率越高,那單片機的運行速度也就越快。

晶振通常與鎖相環電路配合使用,以提供系統所需的時鍾頻率。如果不同子系統需要不同頻率的時鍾信號,可以用與同一個晶振相連的不同鎖相環來提供。

⑶ 關於單片機內部時鍾和外部時鍾的問題

答:當單片機有內部時鍾的時候。其工作的時候是可以用內部時鍾和自己接外部時鍾。
這個是沒有硬性要求的,但是一般都用外部時鍾,因為外部時鍾比較穩定可靠。但是如果你想電路簡單也可用內部時鍾,不接外部時鍾。這個也是可以的。使用起來沒有什麼差別。

閱讀全文

與帶時鍾的單片機相關的資料

熱點內容
linux查找rpm包 瀏覽:112
怎麼把安卓手機繁體字改為現代字 瀏覽:894
pdf簽名如何刪除 瀏覽:408
按摩解壓腿部足部 瀏覽:291
app切圖用什麼軟體 瀏覽:3
訂購命令英語 瀏覽:659
java正則網址 瀏覽:777
程序員上班可不可以自學 瀏覽:428
空調壓縮機排空氣視頻 瀏覽:283
centos72nginxphp 瀏覽:184
游戲平台用什麼伺服器好 瀏覽:753
保密櫃里的圖片是加密文件嗎 瀏覽:909
php判斷最後一個字元 瀏覽:635
pdf腦區 瀏覽:635
at命令已棄用 瀏覽:490
買點賣出指標源碼 瀏覽:612
36位單片機 瀏覽:428
英雄聯盟山東伺服器地址 瀏覽:214
sd伺服器什麼意思 瀏覽:619
thinkphp去indexphp 瀏覽:64