一,、電路原理
本電路采用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鍵有效,此鍵具有連擊功能,。當按鍵時問超過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聲。當走時到了設(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)當反裝,以使小數(shù)點位和前一位小數(shù)點位交叉,。安裝時請先按照先低后高的原則,,首先安裝頂層跳線,數(shù)碼管安裝高度要適當高于三極管和集成電路,,以便于加裝外殼,。測試前用編程器將C程序編譯成目標文件即(hex文件),用專用的編程器寫人89C2051中,。單片機安裝在DIP20的腳插座上,。