景維斌
(江蘇省徐州醫藥高等職業學校,江蘇徐州,221116)
圖1是利用AT89C51單片機構成數字時鐘的邏輯電路及其仿真圖。圖中數碼管為共陽極結構,共陽極接高電平,段碼低電平驅動。4位一體八段數碼管高兩位顯示分,低兩位顯示秒。4個顯示位的8個相同段(A、B、C、D、E、F、G、DP)并聯接入同一位I/O口(P01~P07),各位的共陽極分別接入不同的I/O(P24~P27)口形成各位的分時選通。由于位電流較大,而單片機輸出電流有限,故加一級反相器。欲顯示哪一位,則其位選線應為高電平,即反相器輸出高電平,輸入低電平,也即單片機對應的I/O口輸出低電平。段碼及位選線均由程序適時提供有效電平。欲調節時間,可通過按鍵進行,也是利用程序控制。

圖1 AT89C51單片機構成數字時鐘的邏輯電路及仿真
可見,同樣可實現顯示60分60秒和時間的調整。AT89C51單片機構成的數字時鐘電路比傳統數字時鐘電路需要的元器件少得多,電路結構簡單得多。加上蜂鳴器,還可以實現報時功能。
(1)硬件電路的原理框圖
AT89C51時鐘電路的構成框圖如圖2所示。

圖2 AT89C51單片機時鐘電路的功能模塊圖
(2)單片機的選擇
單片機是整個電路的核心,主要用于對顯示、聲音等電路進行控制。采用AT89C51作為系統控制器的CPU方案。單片機算術運算功能強,軟件編程靈活、自由度大,可以用軟件編程實現各種算法和邏輯控制,并且由于其功耗低、體積小、技術成熟和成本低等優點,使其在各個領域得到廣泛應用。
(3)顯示模塊的選擇與連接

圖3 AT89C51單片機時鐘電路的系統硬件原理總圖
顯示模塊用于顯示時間。筆者使用八段數碼管顯示(小數點算為一段),通常,顯示方法一般包括兩種:一種是靜態顯示,一種是動態顯示。其中,靜態顯示的特點是顯示穩定不閃爍,程序編寫簡單,但占用端口資源多;動態顯示的特點是顯示穩定性沒靜態好,程序編寫復雜,但是相對靜態顯示而言占用端口資源少。在本設計中根據實際情況采用動態顯示方法。4位八段數碼管顯示電路如圖4所示。

圖4 AT89C51單片機時鐘電路的顯示模塊圖
圖中數碼管采用的是4位一體八段共陽數碼管,其中a~g段以及dp分別接到單片機的P0口,由單片機輸出的P0口數據來決定段碼值,位選碼分別接到單片機的P2.4~P2.7,由單片機來決定當前該顯示的是哪一位。圖中電阻R1~R8,連接在P0口上,用作P0口的上拉電阻,保證P0口沒有數據輸出時候處于高電平狀態。
通過查表法,將當前時間在數碼管上顯示出來,其中P0口為字型碼輸入端,P2口的4位為字選段輸入端。在這里通過查表將字型碼送給八段數碼管顯示的數字。圖中的三極管Q1~Q4組成反相器,目的是提高驅動能力。其基極通過R13~R16接至P2.4~P2.7,射極接電源,集電極輸出分別接到數碼管的共陽極D4~D1端,作為位碼。當P2.4~P2.7中哪一端輸出低電平,則三極管集電極輸出高電平,對應的位選碼有效,于是該位在段碼作用下顯示相應的字型。
(4)時鐘頻率電路的設計
單片機必須在時鐘的驅動下才能工作。在單片機內部有一個時鐘振蕩電路,只需要外接一個振蕩源就能產生一定頻率的時鐘信號送到單片機內部的各個單元,決定單片機的工作速度。
一般選用石英晶體振蕩器。此電路在加電大約延遲10ms后振蕩器起振,在XTAL2引腳產生幅度為3V左右的正弦波時鐘信號,其振蕩頻率主要由石英晶振的頻率確定。電路中兩個電容C1、C2的作用有兩個:一是幫助振蕩器起振;二是對振蕩器的頻率進行微調。
(5)復位電路的設計
單片機的第9腳Reset為硬件復位端,只要將該端持續4個機器周期的高電平即可實現復位,復位后單片機的各狀態都恢復到初始化狀態,其電路如圖5所示,其中R18和S1實現手動復位。
(6)報時電路
利用程序來控制單片機某個口線的“高”電平或“低”電平,接上蜂鳴器就能發出聲音,若再利用延時程序控制“高”電平或“低”電平的持續時間,就能改變蜂鳴器鳴叫的時間。如圖6所示。圖中利用單片機的I/O端口P2.0,單片機通過設定該端口的高、低電平使蜂鳴器發聲,可以實現整時報時或其他報警。

圖5 復位電路

圖6 報時電路
模擬計時器(采用正計時方式),4位數碼管分別顯示“分”和“秒”。流程圖如圖7所示。

圖7 60分60秒程序流程圖
電子線路的設計、制作與調試是一個極其復雜、綜合性很強的過程,涉及到本專業的各門學科,應用到很多新的知識與技能,包含單片機、Protel DXP和Multisim、Proteus仿真軟件等等。在設計、制作與調試過程中,理論聯系實際,將所學知識綜合運用,這是提高自身的專業技能與各種能力、積累經驗、為今后的工作打下扎實基礎的重要途徑。