音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費注冊 首頁 | 行業(yè)黑名單 | 幫助
維庫電子市場網(wǎng)
技術交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術 | 電源技術 | 測控之家 | EMC技術 | ARM技術 | EDA技術 | PCB技術 | 嵌入式系統(tǒng)
驅動編程 | 集成電路 | 器件替換 | 模擬技術 | 新手園地 | 單 片 機 | DSP技術 | MCU技術 | IC 設計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

小小電子鬧鐘 生活學習良伴

作者:liuli9230 欄目:單片機
小小電子鬧鐘 生活學習良伴


———  一款電路極簡的單片機電子鐘設計詳解


電路特點


這里介紹的電子鐘,電路可稱得上極簡,它僅使用單片的20引腳單片機完成電子鐘的全部功能,而筆者見到的其它設計方案均采用二片以上的多片IC實現(xiàn)。


電路見圖1。



一片20引腳的單片機AT89C2051為電子鐘主體,其顯示數(shù)據(jù)從P1口分時輸出,P3.0~3.3則輸出對應的位選通信號。由于LED數(shù)碼管點亮時耗電較大,故使用了四只PNP型晶體管VT1~VT4進行放大。本來筆者還有一種更簡的設計方案(見圖2),可省去VT1~VT4及R1~R4八個元件,但這種設計由于單片機輸出口的灌入電流有限(約20mA),數(shù)碼管亮度較暗而不向讀者介紹,除非你采用了高亮度的發(fā)光數(shù)碼管。



P3.4、P3.5、3.7外接了三個輕觸式按鍵,這里我們分別命名為:模式設定鍵set(P3.4)、時調整鍵hour(P3.5)、分調整鍵min(P3.7)。C1、R13組成上電復位電路。VT5及蜂鳴器Bz為鬧時訊響電路。三端穩(wěn)壓器7805輸出的5V電壓供整個系統(tǒng)工作。此電子鐘可與任何9~20V/100mA的交直流電源適配器配合工作,適應性強。


電子鐘功能


1.走時:通過模式設定鍵set選擇為走時,U1、U2顯示小時,U3、U4顯示分。U2的小數(shù)點為秒點,每秒閃爍一次。


2.走時調整:通過模式設定鍵set選擇為走時調整,按下hour鍵對U1、U2的走時“時”顯示進行調整(每0.2秒遞加1)。按下min鍵對U3、U4的走時“分”顯示進行調整(每0.2秒遞加1)。


3.鬧時調整:通過模式設定鍵set選擇為鬧時調整,按下hour鍵對U1、U2的鬧時“時”顯示進行調整(每0.2秒遞加1)。按下min鍵對U3、U4的鬧時“分”顯示進行調整(每0.2秒遞加1)。


4.鬧時啟/停設定:通過模式設定鍵set選擇為鬧時啟/停設定,按下min鍵U3的小數(shù)點點亮,鬧時功能啟動;按下hour鍵U3的小數(shù)點熄滅,鬧時功能關停。


由于電路設計得極其簡單,因此豐富的功能只能由軟件完成,這里軟件設計成為了關鍵。下面介紹軟件設計要點。


圖3為主程序狀態(tài)流程。




圖3



運行時建立的主要狀態(tài)標志如下:


flag—掉電標志。掉電后,flag內(nèi)為一隨機數(shù);重新設定時間后flag內(nèi)寫入標志數(shù)55H。


set—工作模式設定標志。


hour—走時“時”單元。


min—走時“分”單元。


sec—走時“秒”單元。


deda—走時5mS計數(shù)單元


t_hour—鬧時“時”單元。


t_min—鬧時“分”單元。


d_05s—0.5秒位標志。每秒鐘的前0.5秒置1,后0.5秒置0,以使秒點閃爍。


o_f—鬧時啟/停位標志。鬧時啟動置1,鬧時關停置0。


另外將定時器T0設定為5mS的定時中斷。這里晶振頻率為12MHZ,因此5mS的初值為-5000,但實際上程序還要作其它運算,使得時間偏長,經(jīng)調整為-4800后試驗剛好。計時單元deda每次中斷均加1。走時函數(shù)判斷deda>=200時即令秒單元sec加1。同理秒單元sec滿60后令分單元min加1。分單元min滿60后令時單元hour加1。時單元hour滿24后清0。


上電后,首先進行初始化,對各狀態(tài)標志、輸入輸出口及定時器T0進行初始化工作,以適應后面程序的要求。


隨后程序判斷有無set鍵按下,如按下,則set鍵值從0起加1。set鍵值只能從0加到3,然后又回到0。


接下來,根據(jù)鍵值進行散轉。若set=0,運行走時程序;若set=1,進入調整鬧時時間程序;若set=2,進入調整走時時間程序;若set=3,顯示已調好的鬧時時間,同時進入啟/停鬧時程序。


散轉完后,進行判斷掉電標志flag是否等于55H。若不等,說明剛開機上電或運行過程中掉過電,這時四個數(shù)碼管以1Hz的頻率閃爍四個8字,提示時間不準;若相等,說明未掉電,RAM區(qū)內(nèi)容未變化,時間準確。


再下來程序又轉回到初始化之后進行循環(huán)運行。


由于使用了四只數(shù)碼管密集排列,因此只能采用雙面印刷板設計,圖4、5分別為正面(元件面)、反面的印板圖。尺寸3000milx4000mil(7.62cmx10.16cm)。圖6為計算機輸出的三維仿真印制板。



圖4




圖5




圖6


元件選用


為了走時準確,晶振X最好選用溫漂小的。四個數(shù)碼管U1~U4可選用發(fā)綠光的,這樣光澤較柔和。蜂鳴器Bz要購買繞線型的電動式蜂鳴器(市場上有一種加電壓即工作的蜂鳴器這里不適用),因驅動信號為脈沖信號。其它元件一般無特殊要求。


使用方法


上電后,四個LED數(shù)碼管閃爍四個8字。


按一下set鍵,閃爍現(xiàn)象消失(此時set=1),U1的小數(shù)點亮,說明此刻可以調整鬧時時間。按下hour鍵,U1、U2作加法;按下min鍵,U3、U4作加法。這些調整好的數(shù)據(jù)被同時送入RAM區(qū)的鬧時記憶“時”單元t_hour和鬧時記憶“分”單元t_min。


再按一下set鍵,set=2,U2的小數(shù)點亮,此刻可以調整走時時間。按下hour鍵,U1、U2作加法;按下min鍵,U3、U4作加法。這些調整好的數(shù)據(jù)也被同步送入RAM區(qū)的“時”記憶單元hour和“分”記憶單元min。


再按一下set鍵,set=3,顯示剛才調整的鬧時時間,此刻可以選擇啟動/關停鬧時。按下min鍵,o_f位標志置1,U3的小數(shù)點亮,鬧時啟動;按下hour鍵,o_f位標志置0,U3的小數(shù)點滅,鬧時關閉。


若再按一下set鍵,set=0,電路進入走時狀態(tài),U1、U2顯示小時,U3、U4顯示分。U2的小數(shù)點作秒點閃爍。


在鬧時啟動的情況下,走時到達設定鬧時,則蜂鳴器Bz鳴響一分鐘進行提醒。


附:用C51編寫的源程序清單(已由實驗板運行通過)


#include                        /*包含器件配置文件*/


#define uCHAR unsigned CHAR


#define uint unsigned int


CHAR DATA_7SEG[10]={0xC0,0xF9,0xA4,0xB0,0x99,


                    0x92,0x82,0xF8,0x80,0x90,};/*0~9的數(shù)碼管段碼*/


uCHAR hour=0,min=0,sec=0;                /*時、分、秒單元清零*/


uCHAR deda=0;                                  /*5mS計數(shù)單元清零*/


uCHAR t_hour=0,t_min=0;                   /*鬧時時、分單元清零*/


bit d_05s=0;                             /*0.5秒標志*/


bit o_f=0;                
2樓: >>參與討論
liuli9230

大家都來看看,, 對自己的制作有很大的幫助啊,,,

3樓: >>參與討論
gche

樓主,圖片看不到,可不可以放上去讓人下載啊,thx。!

參與討論
昵稱:
討論內(nèi)容:
 
 
相關帖子
請教中斷的問題
[分享]功能齊全的單片機音樂程序
雙路計數(shù)器加比較程序
[轉帖]自制無源RS232-485轉換器
[分享]溫控器的編程
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號