多功能智能電子鐘的設計_第1頁
多功能智能電子鐘的設計_第2頁
多功能智能電子鐘的設計_第3頁
多功能智能電子鐘的設計_第4頁
多功能智能電子鐘的設計_第5頁
已閱讀5頁,還剩3頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、兵工自動化 測控技術 O. I. Automation 2005年第24卷第4期 Measurement and Control Technique 2005, Vol. 24, No. 4文章編號:1006-1576(2005)04-0082-03多功能智能電子鐘的設計何宏森(西南科技大學 信息工程學院,四川 綿陽 621010)摘要:多功能智能電子鐘以AT89C2051芯片為核心,采用靜態(tài)與動態(tài)相結合的掃描方式顯示。系統(tǒng)軟件包括主程序和中斷模塊,基本時間、總天數(shù)、星期、公歷、陰歷等日歷算法模塊。其顯示模塊采用單片機串行輸出,以分時動態(tài)掃描方式點亮21塊LED數(shù)碼管和4個發(fā)光二極管。關鍵詞:

2、電子鐘;單片機;日歷算法;動態(tài)顯示 中圖分類號:TP216.2 文獻標識碼:ADesign of Intellectual Electronic-Clock of MultifunctionHE Hong-sen(College of Information Engineering, Southwest University of Science & Technology, Mianyang 621010, China) Abstract: The chip of AT89C2051 is based on as the core of intellectual electronic-

3、clock, and the scanning mode is applied to display by combining dynamic scan with static scan. The system software includes: main program, interrupt program and the programmed algorithm about calendar of basic time, total days, week, the Gregorian calendar and the lunar calendar. The displaying modu

4、le is designed with serial output of one chip computer, 21 pieces of LED nixie light and 4 pieces of LBDs were lighted up by the way of dynamic time-sharing scan.Keywords: Electronic-clock; Chip computer; Calendar algorithm; Dynamic display1 引言萬年歷陰歷算法以往都使用數(shù)據(jù)表。通過查詢實現(xiàn),但所占空間較大。故從公農歷間的關系入手,設計電子萬年歷,時間長度是

5、100年(即從20002100年)。主程序對各單元初始化,計數(shù)器溢出后進入中斷程序。調用子程序,中斷返回后又繼續(xù)計數(shù),再次溢出后再進入中斷程序,如此周而復始執(zhí)行。進入中斷程序(圖2)后,先重新對T0賦初值,再調用各算法子程序,記數(shù)初值保證子程序執(zhí)行完后不發(fā)生第二次中斷。2 硬件電路設計圖1 電子鐘的硬件框圖3.2 日歷算法采用AT89C2051芯片為核心,具有自動計算和顯示公農歷日歷、星期、時間和氣溫。顯示部分用分時動態(tài)掃描方式點亮LED數(shù)碼管,單片機通過P1口發(fā)出位碼并經PNP三極管驅動對需顯示的LED供電,顯示數(shù)據(jù)由單片機從串口發(fā)出經74LS164進行串并轉換,采用靜態(tài)與動態(tài)相結合的掃描方

6、式顯示。溫度監(jiān)測電路采用熱敏電阻和555定時器及輔助電路構成多諧振蕩器,根據(jù)熱敏電阻阻值隨溫度變化的曲線,單片機可以根據(jù)1s內555定時器輸出的方波個數(shù)來計算氣溫值。(1) 基本時間算法設定4ms中斷一次,即一秒要中斷250次。通過判斷預定數(shù)據(jù)緩沖單元的值,此值一到250,秒單元就加一,否則中斷返回繼續(xù)計數(shù)。判斷秒單元,只要秒單元到60,分單元就加一,否則中斷返回繼續(xù)計數(shù)。再判斷分單元,只要分單元到60,小時單元就加一,否則中斷返回繼續(xù)計數(shù)。然后再判斷小時單元,小時單元一滿24,那么天單元就加一,否則中斷返回繼續(xù)計數(shù)。如循環(huán)計算如圖3。(2) 總天數(shù)算法為實現(xiàn)公歷向農歷的轉換須進行總天數(shù)計算。

7、公歷3 軟件實現(xiàn)3.1 主程序及中斷模塊收稿日期:2005-02-19;修回日期:2005-03-25 作者簡介:何宏森,作者未提供。·82·兵工自動化 測控技術 O. I. Automation 2005年第24卷第4期 Measurement and Control Technique 2005, Vol. 24, No. 4計算定義2000年1月1日為起始年,總天數(shù)計為Day1。農歷計算中定義農歷1999年1月1日為起始年(即公歷1999年2月16日,相差319天),總天數(shù)計為Day2Day1319天。 低8位不夠除的時候,就要向高8位借位。此時,高8位減1,低8位就

8、可以加4再除7(因為256/7余4),同時要判斷高8位是不是小于0。如果是則完成除法,如果不是則繼續(xù)除到真正不夠除為止。表1 余數(shù)與星期信息對照表余數(shù) 星期信息(5) 農歷算法農歷算法基本上和公歷一樣,也是逐月遞減的方法(此處是減一個的天數(shù),比如29天或者30天)。要保存一年的信息,只要三個信息:農歷每月,是否有閏月,閏幾月以及閏月的大小。用相鄰的兩個內存單元來保存這些信息。農歷算法如圖4。圖3 基本時間的程序流程如要計算今天2004.6.1距2000.1.1的總天數(shù),只要從內存單元提出年份的十位和個位的信息,用它減去0(00年)。得X104。提取月份信息X26-15??伤愠銮?個月經過的天數(shù)

9、X2。日信息X31-10。還需要考慮閏年的年份信息和月份信息,如果有閏年就需要把多出的天數(shù)加上。因此,總天數(shù)TOTLE(X1×365X11)X2(每年基本上是一樣的只有閏年和非閏年差一天)X3。用年份信息除以4,令商為K,余數(shù)為M。M0時為閏年,那么X11K。如果M0,說明不是閏年,那么X11K1。這樣Day1就求得。設計中預留兩個內存單元(即高8位和低8位)存放總天數(shù)。(3) 公歷算法公歷算法基本上和農歷一樣都用逐月遞減法(每減12個月存放年份信息的單元的內容就加1)。這個年份信息加上“起始年信息”就是現(xiàn)在的年份信息,月和日的信息在根據(jù)公農歷不同而得到不同的結果。每年各月份的天數(shù)基

10、本上是固定的如下表,除了2月可能有28天或者29天。設置兩個標識,一個R1內存放即將減的月號,一個R0存放當前年信息,當R1到12時R0就加1。當R1為2時,判斷當時的R0內的年份信息是否閏年了。如果是閏年就減29天,反之則減28天。其余月份則就減相應的30和31。(4) 星期算法星期算法有兩種。一種是當小時信息滿24時,存放星期信息的內存單元就加1,滿7歸1,如此循環(huán)獲得某天為星期幾。另外一種算法是:總天數(shù)(初始值1)/7的余數(shù),就是當天的星期信息,見表1。但該算法要考慮除法的高8位借位問題,當圖4 農歷算法流程3.3 顯示模塊顯示部分用分時動態(tài)掃描方式點亮LED數(shù)碼管,故需分時點亮21塊L

11、ED數(shù)碼管和4個發(fā)光二極管。用單片機串行輸出,一次傳送數(shù)據(jù)給三塊74LS164(一組點亮三塊LED),74LS164再并行輸出進行動態(tài)掃描。三塊74LS164首尾相接,前面164的Q7腳連接在下一個164的A,B輸入腳。掃描一次就需要送三組數(shù)據(jù)到三塊164中,前8個周期送最后一塊164的信息,中間8個周期送中間一塊164的信息,最后一個8個周期就完成排在最前面的164的信息的傳送。此時再通過單片機的P1口給相應要點亮的LED的驅動電路的三極管的基極送低電平即可。在每組LED點亮后稍微的延時·83·兵工自動化 測控技術 O. I. Automation 2005年第24卷第4

12、期 Measurement and Control Technique 2005, Vol. 24, No. 4(如延時80us),然后立即關斷以解決殘影問題。表2是程序中用到的內存單元中對應的信息表2 顯示程序中用到的內存單元內存單元信息 信息 30H 31H 公歷年的前兩位 公歷年的后兩位 32H 33H 公歷月 公歷日 34H 35H 公歷星期 算出的總天數(shù)高位36H 37H 算出的總天數(shù)高位 356的高位(1H)38H 356的低位(6DH) 40H 天的進位42H 43H 運算時月份信息高低位44H 45H 運算時日信息 作乘法暫用 46H 47H 作乘法暫用 48H 4AH 319

13、的高位(1H)4BH 319的低位(3FH) R0 顯示移位指針(60H)50H 53H 55H 60H 62H農歷月 小時 秒運算時總天數(shù)高位溫度高位公歷年前兩位高位51H 54H 56H 61H 63H農歷日分 百分秒運算時總天數(shù)低位小時的高位 溫度低位66H 68H 6AH 6CH 72H 74H 76H 小時低位 農歷月高位 公歷年后兩位高位分高位 農歷日高位公歷月高位 秒高位 隨機數(shù) 公歷日高位 四個二極管 67H 69H 6BH 6DH 73H 75H 77H 公歷年前兩位低位星期 農歷月低位 公歷后兩位低位分低位農歷日低位公歷月低位 秒低位 隨機數(shù) 公歷日低位4 結論在電子鐘硬件

14、電路基礎上,用匯編語言編寫程序寫入芯片后,成品已交付使用,達到了預期效果。參考文獻:1 李朝青. PC機與單片機&DSP數(shù)據(jù)通信技術選編2M.北京: 北航出版社, 2003.2 呂能元, 孫育才. MCS-51單片機原理/接口技術/應用實例M. 北京: 科學出版社, 1996.*(上接第81頁)圖7 2通道方式字若寫驅動板地址為300H30FH,8253端地址為300303H,要求定時0通道輸出端OUT。得到250Hz的方波信號,并輸出65535個脈沖,震蕩器提供0通道計數(shù)脈沖頻率為125kHz。 確定工作方式:要求OUT0端輸出的是連續(xù)方波,所以定時器0通道應工作在方式3。OUT1輸

15、出接0通道GATE0,OUT0輸出65535個脈沖后就由OUT1封鎖,停止輸出。所以1通道計數(shù)器設置初始值為65535,工作方式為0。 計算初值:8253的0通道工作在方式3,OUT0端輸出信號的頻率是由CLK0端的信號經定時器分頻得到的,而分頻系數(shù)就是從計數(shù)器初值開始減1時所計得的時鐘周期數(shù)。因此初值分頻系數(shù)fclk/fout。采用二進制計數(shù),定時器0:Nfclk0/fout0125000/250500?;癁槭M制數(shù)01F4H,控制字如圖8。0 二進制計數(shù)MOV AL,01OUT DX,AL;寫定時器0計數(shù)初值高8位 MOV DX,303HMOV AL,70H;寫定時器1控制字 OUT DX,AL MOV DX,301HMOV AL,OFFH;寫定時器1計數(shù)初值低8位 OUT DX,AL MOV AL,OFFHOUT DX,AL;寫定時器1計數(shù)初值高8位 MOV DX,304H MOV AL,01HOUT DX,AL;把定時器1的控制條件GATE1通過304H口地址送到74LS273鎖存器3 結束語該項目的控制系統(tǒng)已用于低速風洞流場校測中,無論從安全性能上還是精度上都達到了標準。參考文獻:1 施洪昌. CS16100高速高精度數(shù)據(jù)采集與處理系統(tǒng)J.測控系統(tǒng), 1998.2 李大友.

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論