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

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

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

使用單片機(jī)實(shí)現(xiàn)鬧鐘的程序設(shè)計

Wildesbeast ? 來源:單片機(jī)教程網(wǎng) ? 作者:單片機(jī)教程網(wǎng) ? 2020-06-21 11:04 ? 次閱讀

這個是在之前的電子時鐘上功能的擴(kuò)展,主要加入鬧鐘模塊。即到達(dá)預(yù)定時間響鈴一分鐘,一分鐘后自動停止,也可以按下已設(shè)定的鍵實(shí)現(xiàn)手動停止。

數(shù)碼管方面的學(xué)習(xí)就到此為此吧,下一步是對液晶顯示的學(xué)習(xí)。

單片機(jī)鬧鐘程序設(shè)計如下:

#i nclude《reg51.h》

#define uchar unsigned char

unsigned char code table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82, 0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};//數(shù)碼管數(shù)字編碼

uchar i,j,k,second,tcount,minute,hour,tminute,thour,ring;

sbit beep=P2^6;sbit S2=P3^4;

//---------------------------------------------------延時子程序,大約延時 n MS

delay(uchar n)

{

for(j=n;j》0;j--)

for(k=125;k》0;k--);

}

//---------------------------------------------------中斷子程序

void timer0() interrupt 1 using 0

{

TH0=(65536-50000)/256; //中斷設(shè)置初始化

TL0=(65536-50000)%256;

tcount++;

if(tcount==20) //滿1秒

{tcount=0;second++;beep=0; //秒數(shù)加1

if(second==60) //滿1分

{second=0;minute++; //分?jǐn)?shù)加1,秒數(shù)歸零

if(minute==60) //滿1小時

{

minute=0;hour++; //小時數(shù)加1,分?jǐn)?shù)歸零

if(hour==24)

{hour=0;}

}

}

}

}

void timer1() interrupt 3 using 1

{

TH1=0x3c; //中斷設(shè)置初始化

TL1=0xb0;

if(minute==tminute & hour==thour & ring==1) {beep=0;}//到預(yù)設(shè)時間自動響鈴,持續(xù)一分鐘后自己關(guān)閉

if(S2==0)

{

ring=0; //鈴聲中斷

}

}

//---------------------------------------------------

void main()

{tminute=1;thour=0; //預(yù)置響鈴時間

second=55;minute=0;hour=0; //給電子時鐘賦初值,即啟動時顯示的時間

ring=1; //啟動響鈴功能

TH0=(65536-50000)/256; //中斷設(shè)置初始化

TL0=(65536-50000)%256;

EA=1;ET0=1;TMOD=0x21;TR0=1; //開中斷總開關(guān),計數(shù)器0允許中斷,設(shè)置中斷模式,啟動計數(shù)器0

ET1=1;TR1=1;

while(1) //死循環(huán),進(jìn)入顯示,主要是動態(tài)顯示原理

{

P0=table[(second%10)];

P2=0xdf;

delay(5);

P0=table[(second/10)];

P2=0xef;

delay(5);

P0=table[(minute%10)];

P2=0xf7;

delay(5);

P0=table[(minute/10)];

P2=0xfb;

delay(5);

P0=table[(hour%10)];

P2=0xfd;

delay(5);

P0=table[(hour/10)];

P2=0xfe;

delay(5);

}

}

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

    關(guān)注

    6039

    文章

    44573

    瀏覽量

    636294
  • 計數(shù)器
    +關(guān)注

    關(guān)注

    32

    文章

    2256

    瀏覽量

    94691
  • 數(shù)碼管
    +關(guān)注

    關(guān)注

    32

    文章

    1882

    瀏覽量

    91231
收藏 人收藏

    評論

    相關(guān)推薦

    單片機(jī)怎么寫入程序

    程序通常涉及以下幾個步驟: 選擇單片機(jī)和開發(fā)環(huán)境 : 確定項(xiàng)目需求,選擇合適的單片機(jī)型號。 安裝相應(yīng)的開發(fā)環(huán)境,如Keil、IAR、MPLAB等。 硬件連接 : 將單片機(jī)連接到開發(fā)板或
    的頭像 發(fā)表于 10-21 11:21 ?533次閱讀

    keil可以讀出單片機(jī)程序

    Keil是一款廣泛應(yīng)用于單片機(jī)程序開發(fā)的軟件,它提供了包括C編譯器、宏匯編、連接器、庫管理和一個功能強(qiáng)大的仿真調(diào)試器等在內(nèi)的完整開發(fā)方案。然而,關(guān)于Keil是否能直接“讀出”單片機(jī)程序
    的頭像 發(fā)表于 09-02 10:32 ?1066次閱讀

    單片機(jī)燒錄程序用什么軟件

    單片機(jī)燒錄程序單片機(jī)開發(fā)過程中的一個重要環(huán)節(jié),涉及到將編寫好的程序代碼通過燒錄器寫入單片機(jī)的ROM中,以
    的頭像 發(fā)表于 09-02 10:05 ?1360次閱讀

    單片機(jī)燒錄程序可以重新燒嗎

    單片機(jī)(Microcontroller Unit, MCU)是一種集成電路芯片,它將計算機(jī)的CPU、存儲器、輸入/輸出接口等集成在一塊芯片上,用于控制各種電子設(shè)備。單片機(jī)燒錄程序是指將編寫
    的頭像 發(fā)表于 09-02 10:04 ?1335次閱讀

    單片機(jī)燒錄程序的線比單片機(jī)上的少還能燒錄嗎

    單片機(jī)燒錄原理 單片機(jī)燒錄是指將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)的存儲器中,使其能夠按照程序的指令運(yùn)行。這個過程通常需要使用燒錄器
    的頭像 發(fā)表于 09-02 09:54 ?528次閱讀

    單片機(jī)燒錄程序的基本步驟是什么

    單片機(jī)燒錄程序單片機(jī)開發(fā)過程中非常重要的一步,它涉及到將編寫好的程序代碼通過一定的方式傳輸?shù)?b class='flag-5'>單片機(jī)內(nèi)部的存儲器中,使
    的頭像 發(fā)表于 09-02 09:47 ?1146次閱讀

    stm32單片機(jī)燒錄程序會擦除原來的程序

    在STM32單片機(jī)燒錄程序的過程中, 通常情況下會擦除原來的程序 ,并將新程序寫入單片機(jī)的閃存(Flash)中。這一過程是通過燒錄工具(如S
    的頭像 發(fā)表于 09-02 09:42 ?2155次閱讀

    藍(lán)牙模塊如何實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳

    藍(lán)牙模塊實(shí)現(xiàn)單片機(jī)和手機(jī)端數(shù)據(jù)互傳的過程可以分為以下幾個步驟: 硬件準(zhǔn)備 : 確保你有一個支持藍(lán)牙通信的單片機(jī)開發(fā)板,如Arduino、Raspberry Pi等。 準(zhǔn)備一個兼容的藍(lán)牙模塊,如
    的頭像 發(fā)表于 07-24 17:59 ?2643次閱讀
    藍(lán)牙模塊如何<b class='flag-5'>實(shí)現(xiàn)</b><b class='flag-5'>單片機(jī)</b>和手機(jī)端數(shù)據(jù)互傳

    基于51單片機(jī)數(shù)字時鐘鬧鐘設(shè)計

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)數(shù)字時鐘鬧鐘設(shè)計包含了PDF版本電路圖、C語言程序源代碼(keil軟件打開)、proteus仿真。本資源適合人群:? ? ? 單片機(jī)愛好
    發(fā)表于 06-25 10:17 ?0次下載

    基于51單片機(jī)矩陣鍵盤音樂電子琴電路圖proteus仿真及程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)矩陣鍵盤音樂電子琴電路圖proteus仿真及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開
    發(fā)表于 06-21 14:32 ?4次下載

    基于51單片機(jī)分立器件超聲波測距電路圖及程序元件清單

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)分立器件超聲波測距電路圖及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開)、元件清單
    發(fā)表于 06-20 16:17 ?0次下載

    基于51單片機(jī)8路搶答器電路圖proteus仿真及程序

    本資源內(nèi)容概要:? ? ? ?這是基于51單片機(jī)8路搶答器電路圖proteus仿真及程序設(shè)計包含了電路圖源文件(Altiumdesigner軟件打開)、C語言程序源代碼(keil軟件打開
    發(fā)表于 06-19 14:15 ?1次下載

    單片機(jī)交通燈程序設(shè)計中斷系統(tǒng)

    隨著社會的發(fā)展,交通問題逐漸突出,特別是城市交通問題愈加嚴(yán)重。為了更好地管理和調(diào)控交通,提高交通流暢度和安全性,交通燈系統(tǒng)成為了城市交通管理的重要組成部分。而單片機(jī)交通燈的程序設(shè)計中斷系統(tǒng),則是實(shí)現(xiàn)
    的頭像 發(fā)表于 01-24 16:16 ?1145次閱讀

    基于51單片機(jī)的電子鬧鐘設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的電子鬧鐘設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-12 10:54 ?18次下載

    基于51單片機(jī)的1602顯示帶鬧鐘萬年歷設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)的1602顯示帶鬧鐘萬年歷設(shè)計.rar》資料免費(fèi)下載
    發(fā)表于 01-12 09:34 ?29次下載