一、電路原理
本電路采用89C20單片機" title="51單片機" target="_blank">51單片機設(shè)計硬件電路如圖1所示。AT89C2051具有2k字節(jié)閃速可編程可擦除只讀存儲器(FLASH EEPROM)和128bytes的隨機存取數(shù)據(jù)存儲器(RAM),可重復(fù)擦寫10000次,數(shù)據(jù)保存時間10年,工作電壓范圍:2.7V~6V,工作頻率:0~24MHz,15根可編程I/0引線,2個16位定時器/計數(shù)器,一個5向量兩級中斷結(jié)構(gòu),—個全雙工串行口,一個精密模擬比較器,兩級程序加密,輸出口可直接驅(qū)動LED顯示,低功耗的閑置和調(diào)電保護工作方式,以及片內(nèi)振蕩器和時鐘電路。本電路的設(shè)計,充分利用了單片機的硬件資源,結(jié)構(gòu)簡單。
89C2051單片機端口設(shè)置:Pl口分別接數(shù)碼管的段碼口(a~h);P3.0、P3.1、P3.2、P3.3、分別接LED數(shù)碼管的位驅(qū)動;P3.4接按鍵51,P3.5接按鍵52;P3,7驅(qū)動蜂鳴器。C3、R15構(gòu)成上電復(fù)位電路。Q1~Q4為數(shù)碼管顯示驅(qū)動三極管。電路中沒有畫出電源部分,電路中的電源可以利用手機萬用充電器作為本電路的供電部分。
圖1 采用89C2051單片機設(shè)計硬件電路
二、電路功能
本時鐘電路采用24小時制,使用四位LED數(shù)碼管顯示時問,DO、Dl兩位數(shù)碼管顯示分鐘,D2、D3兩位數(shù)碼管顯示小時。電路利用D2,D3兩數(shù)碼管的小數(shù)點位做秒閃爍。
本電路只有兩個操作鍵S1、S2。S2鍵為設(shè)置按鍵,每按一下,實現(xiàn)功能切換。S1鍵為加1鍵,僅在設(shè)置模式時,S1鍵有效,此鍵具有連擊功能。當(dāng)按鍵時問超過1s后能實現(xiàn)自動連加。
電路具有設(shè)置時間分鐘模式,設(shè)置時間小時模式,設(shè)置鬧鐘分鐘模式,設(shè)置鬧鐘小時模式,走時等五個模式。不同的模式采用數(shù)碼管閃爍來區(qū)分:正常走時顯示,D2、D3兩位數(shù)碼管的小數(shù)點閃爍;在設(shè)置時間分鐘模式和設(shè)置小時模式時,相應(yīng)的數(shù)碼管不帶小數(shù)點以0,5s的速度閃爍;在設(shè)置時問分鐘模式和設(shè)置鬧鐘小時模式時,相應(yīng)的數(shù)碼管帶小數(shù)點以0.5s的速度閃爍。
電路不僅具有時鐘顯示功能,還具有整點報時和鬧鐘功能。每到一個整點時間,蜂鳴器以1Hz頻率報時,幾點響幾聲。如:中午12點,蜂鳴器響12聲。當(dāng)走時到了設(shè)定的鬧鐘時間,蜂鳴器以0.5Hz頻率報警,蜂鳴器響24聲停止。
三、程序設(shè)計
主程序流程圖如圖2所示,編程采用C語言編寫。
圖2 流程圖
程序由主程序、定時中斷子程序,鍵盤子程序組成。定時中斷子程序要產(chǎn)生Imo日刂鐘標志位,用于數(shù)碼管掃描髖示;20ms時鐘標志位,用于鍵盤掃描、消抖;0,5s的時鐘佶號,用于鬧鐘報瞥;1s時鐘標志位,用于時間更新;1s的時鐘信號,用于整點報時;及報騖時更新蜂鳴器鳴響次數(shù),以下是該電子鐘的部分程序。
主程序如下:
四、安裝和調(diào)試
PCB板大小為68mm×78mm,采用單面板設(shè)計,細線為頂層跳線,D2數(shù)碼管應(yīng)當(dāng)反裝,以使小數(shù)點位和前一位小數(shù)點位交叉。安裝時請先按照先低后高的原則,首先安裝頂層跳線,數(shù)碼管安裝高度要適當(dāng)高于三極管和集成電路,以便于加裝外殼。測試前用編程器將C程序編譯成目標文件即(hex文件),用專用的編程器寫人89C2051中。單片機安裝在DIP20的腳插座上。