用AT89C2051單片機制作電子萬年曆

電子數碼萬年曆怎樣調時間

很多用AT89C205l製作電子萬年曆的文章,介紹的都是採用微控制器內部定時計數器作定時計時,難免受到停電的影響而需要經常調整,為此,筆者設計製作了用AT89C20Sl+DSl302的電子萬年曆。

該萬年曆的特點是;動態顯示、遙控操作;能按多位數碼管或多點輸出I採用DSl302時鐘模組,走時準確、停電能繼續計時(精度±5秒/日左右若採用有源晶報,如DS32Hz,走時精度甚至可達到年誤差小於2分鐘)。

一、功能顯示年、月、日、星期、時、分。遙控操作、整點報時、定時報時及定時顯示、停電自動計時等。

二、硬體電路設計AT89C2051作為資料處理,DSl302作為計時處理及停電繼續走時,用13只LED數碼管顯示年、月、日、星期、時、分。採用1838V為遙控接收,74LS595作為數碼管筆畫顯示選擇移位。

三。工作原理電路見附圖。初始化後,DSl302開始走時。

AT89C205l讀取時間資料並處理後,透過2級8位移位暫存器(74LS595)將數碼管的選通資料送至顯示驅動,srcLK是移位脈衝,上升沿有效;RCLK是輸出鎖存器的鎖存訊號,其上升沿將移位暫存器的輸出鎖存到輸出鎖存器;e是選通訊號,只有e為低電平時鎖存器的輸出才開放。

所有數碼管的同一筆圓是連在一起的,由AT89C205l對DSl302讀回的時間資料進行拆分處理,然後轉換成要顯示的數字程式碼。再由SER(AT89C205l的P3。5腳)逐位輸出到ICl的(14)腳。以完成對需要顯示筆畫的數碼管選擇,P1。1對每一個數碼管的同一筆畫進行掃描。第一筆畫點亮延時,繼續把第二筆畫的程式碼移位至74LS595進行第二個筆畫的掃描,直至七個筆畫全部顯示完為止。

例如,要顯示的時間為07-02-23,則各數的程式碼分別為3FH、07H、3FH、5BH、BH、4FH。先透過74LS595把3F、07、3F、5B、5B、4F的DO,即低位右移一位,透過74LS595送至驅動三極體的基極。如果某位為0,則相應的位就不點亮。然後從P1。1輸出O,那麼該筆畫中相應為1的筆畫就被點亮。各數桐應程式碼就變為:3FH-1FF、07H-3H、3FH-1FH、5BH-2DH、5BH-2DH、4FH-27H。

繼續透過74LS595把lF、3、lF、2D、2D、27的最低位送至三極體的基極。然後P1。2輸出O,數碼管的第二筆畫相應的位被點亮。各數程式碼則變為:FH、1 H、FH、16H、16H、l 3H。重複上面的移位及掃描,直至7個筆畫的顯示完成。就完成了07-02-03的全部顯示。

這種顯示電路的特點是能夠同屏顯示多位數碼管及多他輸出。

圖中還可增加秒閃爍和驅動報時蜂嗚器等電路功能。

遙控器採用HA622l系列,遙控接收使用1838V紅外接收模組。接AT89C205l的P3。2(外中斷0)。當1838V接收到遙控訊號時,產生中斷。處理遙控資料,處理完後返回。

電路中用了一塊鈕釦電池作為停電走時。

需要注意的是,本電路使用的晶振是4MHz的。如果使用其他頻率的晶振,應重新調整遙控解碼部分延時的迴圈次數。另外。遙控器不一樣,其鍵值也需要重新定義。

用AT89C2051單片機制作電子萬年曆