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

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

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

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

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

這個是在之前的電子時鐘上功能的擴(kuò)展,主要加入鬧鐘模塊。即到達(dá)預(yù)定時間響鈴一分鐘,一分鐘后自動停止,也可以按下已設(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)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 單片機(jī)
    +關(guān)注

    關(guān)注

    6023

    文章

    44376

    瀏覽量

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

    關(guān)注

    32

    文章

    2241

    瀏覽量

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

    關(guān)注

    31

    文章

    1869

    瀏覽量

    90518
收藏 人收藏

    評論

    相關(guān)推薦

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    基于51單片機(jī)的電子鬧鐘設(shè)計(實物)
    發(fā)表于 01-02 09:58 ?4次下載

    STM32單片機(jī)實現(xiàn)固件在線升級(IAP)

    1,固件升級方案綜述單片機(jī)的固件升級方式有很多種。1、ICP:簡單說就是在單片機(jī)開發(fā)時使用燒錄器升級程序,比如使用J-Link燒錄單片機(jī)程序
    的頭像 發(fā)表于 12-16 08:00 ?3777次閱讀
    STM32<b class='flag-5'>單片機(jī)</b><b class='flag-5'>實現(xiàn)</b>固件在線升級(IAP)

    pic單片機(jī)匯編程序實例

    以下是一個簡單的PIC單片機(jī)匯編程序示例,這個程序實現(xiàn)一個LED閃爍的功能。 首先,我們需要了解PIC單片機(jī)的結(jié)構(gòu)和指令集。PIC
    的頭像 發(fā)表于 12-14 11:01 ?1399次閱讀

    使用單片機(jī)如何實現(xiàn)0 ~ 10V的信號輸出?

    使用單片機(jī)如何實現(xiàn)0 ~ 10V的信號輸出? 要實現(xiàn)0~10V的信號輸出,我們需要使用單片機(jī)來控制模擬電路輸出一定電壓值。本文將詳細(xì)講解如何實現(xiàn)
    的頭像 發(fā)表于 10-26 17:37 ?2912次閱讀

    基于51單片機(jī)PWM波實現(xiàn)拖尾燈的程序

    電子發(fā)燒友網(wǎng)站提供《基于51單片機(jī)PWM波實現(xiàn)拖尾燈的程序.doc》資料免費下載
    發(fā)表于 10-24 10:00 ?1次下載
    基于51<b class='flag-5'>單片機(jī)</b>PWM波<b class='flag-5'>實現(xiàn)</b>拖尾燈的<b class='flag-5'>程序</b>

    51單片機(jī)定時器LCD顯示鬧鐘程序

    電子發(fā)燒友網(wǎng)站提供《51單片機(jī)定時器LCD顯示鬧鐘程序.doc》資料免費下載
    發(fā)表于 10-24 09:26 ?5次下載
    51<b class='flag-5'>單片機(jī)</b>定時器LCD顯示<b class='flag-5'>鬧鐘</b>的<b class='flag-5'>程序</b>

    基于VB的PC機(jī)單片機(jī)間串口通訊及程序設(shè)計

    電子發(fā)燒友網(wǎng)站提供《基于VB的PC機(jī)單片機(jī)間串口通訊及程序設(shè)計.pdf》資料免費下載
    發(fā)表于 10-23 14:10 ?2次下載
    基于VB的PC<b class='flag-5'>機(jī)</b>與<b class='flag-5'>單片機(jī)</b>間串口通訊及<b class='flag-5'>程序設(shè)計</b>

    單片機(jī)C語言程序設(shè)計實訓(xùn)100例

    單片機(jī)C語言程序設(shè)計實訓(xùn)100例51 Proteus仿真本書基于Keil μVision程序設(shè)計平臺和Proteus硬件仿真平臺,精心編寫了100余個8051單片機(jī)C語言
    發(fā)表于 09-27 06:16