采用實時時鍾芯片DS1302+AT89C2051的紅外遙控LED電子鍾 網友港仔(QQ:19717093 E-mail:gangzi555@sina.com)的作品,發表於電子報2003年第4期上。利用紅外遙控和實時時鍾芯片是這個作品的最大亮點。 采用實時時鍾芯片DS1302+AT89C2051的紅外遙控LED電子鍾 自製LED電(dian)子(zi)鍾(zhong)在(zai)很(hen)多(duo)電(dian)子(zi)報(bao)刊(kan)雜(za)誌(zhi)上(shang)都(dou)可(ke)以(yi)見(jian)到(dao),但(dan)大(da)多(duo)數(shu)在(zai)斷(duan)電(dian)後(hou)都(dou)要(yao)重(zhong)新(xin)設(she)置(zhi)時(shi)間(jian)等(deng)參(can)數(shu),給(gei)使(shi)用(yong)帶(dai)來(lai)很(hen)多(duo)不(bu)便(bian)。也(ye)有(you)用(yong)後(hou)備(bei)電(dian)池(chi)作(zuo)為(wei)備(bei)用(yong)電(dian)源(yuan)的(de),但(dan)往(wang)往(wang)體(ti)積(ji)較(jiao)大(da)。本(ben)文(wen)介(jie)紹(shao)的(de)LEDdianzizhongkefuleyiwangdebiduan,erqiecaiyonglejiadiantongyongdehongwaiyaokongqijinxingkongzhi,fangbianshiyong。youyilunaolingshuchu,keyitongguoyaokongqishezhinaolingshijianjiyunxuyufou。 一.工作原理 DS1302為(wei)達(da)拉(la)斯(si)公(gong)司(si)的(de)一(yi)種(zhong)實(shi)時(shi)時(shi)鍾(zhong)芯(xin)片(pian),主(zhu)要(yao)特(te)點(dian)是(shi)采(cai)用(yong)串(chuan)行(xing)數(shu)據(ju)傳(chuan)輸(shu),可(ke)為(wei)掉(diao)電(dian)保(bao)護(hu)電(dian)源(yuan)提(ti)供(gong)可(ke)編(bian)程(cheng)的(de)充(chong)電(dian)功(gong)能(neng),並(bing)且(qie)可(ke)以(yi)關(guan)閉(bi)充(chong)電(dian)功(gong)能(neng)。采(cai)用(yong)普(pu)通(tong)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口(kou)接(jie)數(shu)碼(ma)管(guan)的(de)八(ba)字(zi)段(duan)。數(shu)碼(ma)管(guan)左(zuo)兩(liang)位(wei)顯(xian)示(shi)小(xiao)時(shi),右(you)兩(liang)位(wei)顯(xian)示(shi)分(fen),當(dang)顯(xian)示(shi)的(de)是(shi)鬧(nao)鈴(ling)時(shi)間(jian)時(shi)閃(shan)動(dong)。第(di)二(er)位(wei)和(he)第(di)三(san)位(wei)的(de)小(xiao)數(shu)點(dian)作(zuo)為(wei)秒(miao)閃(shan)動(dong),注(zhu)意(yi)第(di)三(san)位(wei)數(shu)碼(ma)管(guan)按(an)圖(tu)一(yi)布(bu)好(hao)印(yin)製(zhi)版(ban)後(hou)安(an)裝(zhuang)時(shi)要(yao)旋(xuan)轉(zhuan)180°,以便讓時和分之間出現“:”,最後一位小數點作為鬧鈴開關標誌,亮表示鬧鈴開啟。蜂鳴器B2采用小型自帶音源的。 要特別說明的是備用電源B1,可以用電池或者超級電容(10萬uF以上)。雖然DS1302在主電源掉電後,耗電很小,但如果要長時間保證時鍾正常,最好選用小型充電電池。可以用老式電腦主板上的那種3.6V充電電池。如果斷電時間較短(幾小時或幾天)時,就可以用漏電較小的普通電解電容代替。100uF就可以保證1小時的正常走時。DS1302在第一次加電後,須進行初始化操作。初始化後就可以按正常方法調整時間及鬧鈴。 三.軟件 表 一 遙控器按鍵 遙控器編碼 電子鍾動作 操作方法 菜單 40 BF 0C F3 進入/退出設置狀態 任意 ↑ 40 BF 19 E6 所顯數字增加 進入設置狀態後有效 ↓ 40 BF 1D E2 所顯數字減少 進入設置狀態後有效 ← 40 BF 46 B9 顯示左移 進入設置狀態後有效 → 40 BF 47 B8 顯示右移 進入設置狀態後有效 顯示 40 BF 16 E9 LED顯示關閉/開啟 任意 靜音 40 BF 10 EF 鬧鈴關閉/開啟 任意 日曆 40 BF 44 BB 初始化DS1302 進入設置狀態後有效 軟件部分的重點是對DS1302的操作以及紅外遙控的解碼。單片機解碼可參看其他文章,這裏主要對設置部分作一些說明: 遙控器采用長虹彩電K11F型遙控器,遙控器按照16位地址碼,8位數據碼以及8位數據碼的反碼發送。表一列出了各按鍵的編碼及本電子鍾對應的動作。如果采用其他遙控器,需對程序相應部分的編碼作修改。 操作方法中,任意是指該鍵第一次按後,進入該狀態,再次按後退出該狀態。 時間設置:按“菜單”鍵進入設置狀態,LED隻顯示正常時間的小時,按“↑↓”鍵調整數值,按“←“、”→”鍵可在鬧鈴與正常時間之間移動。任意時刻再次按“菜單”鍵就退出設置。 鬧鈴設置:鬧鈴時間在時間設置中進行。鬧鈴允許和取消可在任意時刻按“靜音”鍵。 顯示開關:可在任意時刻按“顯示”鍵開啟和關閉顯示器。 初始化:在按“菜單”鍵進入設置狀態後任意時刻按“日曆”鍵,初始化後的時間為2002/12/1/12:00:00
|