劉賓 趙艷東
(青島科技大學自動化與電子工程學院 266042)
基于單片機的數字鐘設計研究
劉賓 趙艷東
(青島科技大學自動化與電子工程學院 266042)
本文基于AT89C51單片機的最小系統,進行了數字鐘的設計。通過多功能數字鐘的設計思路,詳細講述了系統的具體實現過程。在此次設計中,電路具有顯示時間的其本功能,還可以實現對時間的調整。
單片機;最小系統;數字鐘
1.1 電源引腳
工作電壓為5V,另有AT89LV51工作電壓則是2.7-6V,引腳功能一樣。
1.2 外接晶體引腳
XTAL1是片內振蕩器的反相放大器輸入端,XTAL2則是輸出端,使用外部振蕩器時,外部振蕩信號應直接加到XTAL1,而XTAL2懸空。內部方式時,時鐘發生器對振蕩脈沖二分頻,如晶振為12MHz,時鐘頻率就為6MHz。晶振的頻率可以在1~24MHz內選擇。電容取30PF左右。系統的時鐘電路設計是采用的內部方式,即利用芯片內部的振蕩電路。AT89單片機內部有一個用于構成振蕩器的高增益反相放大器。引腳XTAL1和XTAL2分別是此放大器的輸入端和輸出端。這個放大器與作為反饋元件的片外晶體諧振器一起構成一個自激振蕩器。外接晶體諧振器以及電容C1和C2構成并聯諧振電路,接在放大器的反饋回路中。對外接電容的值雖然沒有嚴格的要求,但電容的大小會影響震蕩器頻率的高低、震蕩器的穩定性、起振的快速性和溫度的穩定性。因此,此系統電路的晶體振蕩器的值為12MHz,電容應盡可能的選擇陶瓷電容,電容值約為22μF。在焊接刷電路板時,晶體振蕩器和電容應盡可能安裝得與單片機芯片靠近,以減少寄生電容,更好地保證震蕩器穩定和可靠地工作。
1.3 復位
在振蕩器運行時,有兩個機器周期(24個振蕩周期)以上的高電平出現在此引腿時,將使單片機復位,只要這個腳保持高電平,51芯片便循環復位。復位后P0-P3口均置1引腳表現為高電平,程序計數器和特殊功能寄存器SFR全部清零。當復位腳由高電平變為低電平時,芯片為ROM的00H處開始運行程序。復位是由外部的復位電路來實現的。片內復位電路是復位引腳RST通過一個斯密特觸發器與復位電路相連,斯密特觸發器用來抑制噪聲,它的輸出在每個機器周期的S5P2,由復位電路采樣一次。復位電路通常采用上電自動復位和按鈕復位兩種方式,此電路系統采用的是上電與按鈕復位電路。當時鐘頻率選用6MHz時,C取22μF,Rs約為200Ω,Rk約為1K。復位操作不會對內部RAM有所影響。
1.4 輸入輸出引腳
她大概不會成為科學家,我卻決定繼續給她或買或借“科學小實驗”“趣味數學”——一切都是本性,父母想力挽狂瀾,恐怕不現實。但推波助瀾,總歸是可以的。她盡情發揮自我,而我負責小小修正。
(1)P0端口[P0.0-P0.7]P0是一個8位漏極開路型雙向I/O端口,端口置1(對端口寫1)時作高阻抗輸入端。作為輸出口時能驅動8個TTL。
對內部Flash程序存儲器編程時,接收指令字節;校驗程序時輸出指令字節,要求外接上拉電阻。
在訪問外部程序和外部數據存儲器時,P0口是分時轉換的地址(低8位)/數據總線,訪問期間內部的上拉電阻起作用。
(2)P1端口[P1.0-P1.7]P1是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。
對內部Flash程序存儲器編程時,接收低8位地址信息。
(3)P2端口[P2.0-P2.7]P2是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。對內部Flash程序存儲器編程時,接收高8位地址和控制信息。
在訪問外部程序和16位外部數據存儲器時,P2口送出高8位地址。而在訪問8位地址的外部數據存儲器時其引腳上的內容在此期間不會改變。
(4)P3端口[P3.0-P3.7]P2是一個帶有內部上拉電阻的8位雙向I/0端口。輸出時可驅動4個TTL。端口置1時,內部上拉電阻將端口拉到高電平,作輸入用。
對內部Flash程序存儲器編程時,接控制信息。除此之外P3端口還用于一些專門功能。
顯示器普遍地用于直觀地顯示數字系統的運行狀態和工作數據,按照材料及產品工藝,單片機應用系統中常用的顯示器有:發光二極管LED顯示器、液晶LCD顯示器、CRT顯示器等。LED顯示器是現在最常用的顯示器之一。
發光二極管(LED)由特殊的半導體材料砷化鎵、磷砷化鎵等制成,可以單獨使用,也可以組裝成分段式或點陣式LED顯示器件(半導體顯示器)。分段式顯示器(LED數碼管)由7條線段圍成8字型,每一段包含一個發光二極管。外加正向電壓時二極管導通,發出清晰的光。只要按規律控制各發光段亮、滅,就可以顯示各種字形或符號。LED數碼管有共陽、共陰之分。
顯示電路顯示模塊需要實時顯示當前的時間,即時、分、秒,因此需要6個數碼管,另需兩個數碼管來顯示橫。采用動態顯示方式顯示時間,硬件連接如下圖所示,時的十位和個位分別顯示在第一個和第二個數碼管,分的十位和個位分別顯示在第四個和第五個數碼管,秒的十位和個位分別顯示在第七個和第八個數碼管,其余數碼管顯示橫線。LED顯示器的顯示控制方式按驅動方式可分成靜態顯示方式和動態顯示方式兩種。
數碼管使用條件:
(1)段及小數點上加限流電阻;
(2)使用電壓:段:根據發光顏色決定;小數點:根據發光顏色決定;
(3)使用電流:靜態:總電流80mA(每段10mA);動態:平均電流4~5mA峰值電流100mA。
數碼管使用注意事項說明:
(1)數碼管表面不要用手觸摸,不要用手去弄引角;
(2)焊接溫度:260℃;焊接時間:5s;
(3)表面有保護膜的產品,可以在使用前撕下來。
該設計需要校對時間,所以用三個按鍵來實現。按khour來調節小時的時間,按kmin來調節分針的時間,按ksec來調節秒的時間。
當用手按下一個鍵時,往往按鍵在閉合位置和斷開位置之間跳幾下才穩定到閉合狀態的情況;在釋放一個鍵時,也回會出現類似的情況。這就是抖動。抖動的持續時間隨鍵盤材料和操作員而異,不過通常總是不大于10ms。很容易想到,抖動問題不解決就會引起對閉合鍵的識別。用軟件方法可以很容易地解決抖動問題,這就是通過延遲10ms來等待抖動消失,這之后,在讀入鍵盤碼。
TP368.1
A
1004-7344(2016)07-0280-01
2016-2-25