采用實時時鐘芯片DS1302+AT89C2051的紅外遙控LED電子鐘,LED clock
關鍵字:電子鐘,紅外遙控,DS1302,89C2051,LED電子鐘
自制LED電子鐘在很多電子報刊雜志上都可以見到,但大多數在斷電后都要重新設置時間等參數,給使用帶來很多不便。也有用后備電池作為備用電源的,但往往體積較大。本文介紹的LED電子鐘克服了以往的弊端,而且采用了家電通用的紅外遙控器進行控制,方便使用。有一路鬧鈴輸出,可以通過遙控器設置鬧鈴時間及允許與否。
一.工作原理
DS1302為達拉斯公司的一種實時時鐘芯片,主要特點是采用串行數據傳輸,可為掉電保護電源提供可編程的充電功能,并且可以關閉充電功能。采用普通32768Hz晶振。
AT89C2051作為主控芯片,一是對接收到的紅外遙控編碼進行判斷識別,并執行相應的處理;第二就是定期的讀取時鐘芯片DS1302中的時間并把小時和肥以示在4位LED中;第三就是對設置的鬧鈴時間與實時時間進行比較,如果時間相同且鬧鈴允許,那么蜂鳴器就會以1秒的周期鳴響一分鐘,提醒使用者。如果要停止鳴鬧,只要按遙控器相應鍵就可以關閉鬧鈴。鬧鈴時間保存在DS1302自帶的RAM中,不需要單獨的EEPROM。
二.硬件電路
圖一為電子鐘的原理圖,IC2為DS1302,電子愛好者可以向MAXIM公司索取免費樣品。Y2為32768 Hz石英晶振,可以用普通電子表里的。IC3為三腳的塑封一體化紅外接收頭。LED1-4 為高亮度共陽數碼管。89C2051所用的晶振Y1如果沒有10MHz也可以用其他12M以內的代替,只要修改程序中YS1和YS2的延時參數,讓其保持延時長度不變就行。調整R2可以改變數碼管亮度。P1口接數碼管的八字段。數碼管左兩位顯示小時,右兩位顯示分,當顯示的是鬧鈴時間時閃動。第二位和第三位的小數點作為秒閃動,注意第三位數碼管按圖一布好印制版后安裝時要旋轉180°,以便讓時和分之間出現“:”,最后一位小數點作為鬧鈴開關標志,亮表示鬧鈴開啟。蜂鳴器B2采用小型自帶音源的。
要特別說明的是備用電源B1,可以用電池或者超級電容(10萬uF以上)。雖然DS1302在主電源掉電后,耗電很小,但如果要長時間保證時鐘正常,最好選用小型充電電池?梢杂美鲜诫娔X主板上的那種3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容代替。100uF就可以保證1小時的正常走時。DS1302在第一次加電后,須進行初始化操作。初始化后就可以按正常方法調整時間及鬧鈴。
三.軟件
軟件部分的重點是對DS1302的操作以及紅外遙控的解碼。單片機解碼可參看其他文章,這里主要對設置部分作一些說明:
遙控器采用長虹彩電K11F型遙控器,遙控器按照16位地址碼,8位數據碼以及8位數據碼的反碼發送。表一列出了各按鍵的編碼及本電子鐘對應的動作。如果采用其他遙控器,需對程序相應部分的編碼作修改。
操作方法中,任意是指該鍵第一次按后,進入該狀態,再次按后退出該狀態。
時間設置:按“菜單”鍵進入設置狀態,LED只顯示正常時間的小時,按“↑↓”鍵調整數值,按“←“、”→”鍵可在鬧鈴與正常時間之間移動。任意時刻再次按“菜單”鍵就退出設置。
鬧鈴設置:鬧鈴時間在時間設置中進行。鬧鈴允許和取消可在任意時刻按“靜音”鍵。
顯示開關:可在任意時刻按“顯示”鍵開啟和關閉顯示器。
初始化:在按“菜單”鍵進入設置狀態后任意時刻按“日歷”鍵,初始化后的時間為2002/12/1/12:00:00
附件為本文芯片內程序
2007615193243.rar
|