徐尚輝
(廣東省佛山市高明區高級技工學校,廣東佛山,528500)
目前,技工院校機電一體化、電氣自動化設備安裝與維修、工業機器人應用與維護等專業都開設了《單片機技術》這門課程,很多同學畢業設計也選擇了基于單片機控制的設計項目。本文介紹的這個設計項目,具有思路明確,定時時間長,功能實用,制作容易等特點。學生通過運用所學的專業知識,用單片機語言編程實現插座定時通斷電功能,完成好這個項目,對學生系統掌握單片機技術有非常大的幫助,因此,設計和制作這個定時插座是一個很不錯的畢業設計項目。
本插座以STC89C52單片機為控制核心,內含數碼管、按鍵、蜂鳴器、繼電器等,兩組4位數碼管分別顯示兩個定時時間:預約時間和通電時間,最小時間為00.00,最大為99.60(即100小時),4個功能按鍵完成時間的設定。通過用C語言對單片機編程實現插座的定時通斷電功能。
使用操作:插座加電后,預約時間和通電時間數碼管均顯示0.0。按面板“設置”鍵,預約時間中“小時”數碼管閃動,此時可按“增加”或“減少”鍵來設置預約時間的小時數,設置量從0至99小時;再次按“設置”鍵,此時預約時間中的“分鐘”數碼管閃動,同樣再按“增加”或“減少”鍵來設置預約時間的分鐘數,設置量從0-60分鐘;依此類推,設置好通電時間中的“小時”和“分鐘”數后第五次按“設置”鍵,預約時間和通電時間就都設置完成。此時,按“啟動”鍵,預約時間進行倒計時,達到零后,繼電器接通,同時通電時間也開始倒計時,它到達零后,繼電器關閉。當插座按“啟動”鍵啟動后,“設置”、“增加”、“減小”三個鍵被鎖住,按動無效。如果中途需要暫停或修改時間,可再次按“啟動”鍵,此時倒計時停止,接通的繼電器也會斷開,這時就可重新設置時間,完成后再次按“啟動”鍵繼續工作。當我們按動按鍵時蜂鳴器會短鳴一聲,預約時間或通電時間倒計時為零時,蜂鳴器會長鳴一聲。另外,當倒計時,相應的數碼管小時與分鐘數之間的小數點會按秒閃動。插座面板圖如圖1所示。

圖1 插座面板圖
本定時插座電路包含有:一片STC89C52單片機用作主控;兩片74HC595芯片用于驅動數碼管;兩塊4位共陰數碼管用于時間顯示;一個繼電器用于控制插座的通斷電;一個蜂鳴器用作按鍵響應及時間終了響應;四個輕觸按鍵用于時間設置等;一個DC5V電源供控制板使用。控制電路圖如圖2所示。
本插座對單片機要求不高,采用廉價的國產宏晶公司的STC89C52普通單片機芯片,晶振選用12MHz。其中10k電阻和10μF電容兩個元件完成單片機上電復位。單片機最小系統見圖3。
本裝置顯示部分選用兩塊4位共陰數碼管,由兩片74HC595芯片驅動,分別顯示預約時間和通電時間的小時數和分鐘數。
74HC595是一個8位串行輸入、并行輸出的位移緩存器:并行輸出為三態輸出。在SCK 的上升沿,串行數據由SDL輸入到內部的8位位移緩存器,并由Q7’輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數據存入到8位并行輸出緩存器。當串行數據輸入端OE的控制信號為低使能時,并行輸出端的輸出值等于并行輸出緩存器所存儲的值。而當OE為高電位,也就是輸出關閉時,并行輸出端會維持在高阻抗狀態。74HC595常用于驅動數碼管或點陣顯示屏。

圖2 控制電路圖

圖3 單片機最小系統
74HC595使用方法:
(1)<74HC595的數據端:
Q0--Q7:八位并行輸出端,可以直接控制數碼管的8個段或位。
Q7’:級聯輸出端。將它接下一個595的DS端。
DS:串行數據輸入端,級聯的話接上一級的Q7。
(2)<74HC595的控制端說明:
/MR(10腳):低電平時將移位寄存器的數據清零,通常將它接Vcc。
SH_CP(11腳):上升沿時數據寄存器的數據移位。Q0-->Q1-->Q2-->Q3-->...-->Q7;下降沿移位寄存器數據不變。

圖4 顯示電路
ST_CP(12腳):上升沿時移位寄存器的數據進入數據存儲寄存器,下降沿時存儲寄存器數據不變。通常我們將ST_CP置為低電平,當移位結束后,在ST_CP端產生一個正脈沖,更新顯示數據。
本顯示電路采用兩片74HC595芯片,一片驅動8個數碼管的段碼,另一片驅動8個數碼管的位碼。與單片機連接只需要三個端口,此處與單片機P3.4、P3.5、P3.6口連接。
插座通斷電控制采用5V繼電器控制,由單片機P2.7端口控制,如圖5所示。

圖5 插座通斷電控制電路
為了響應按鍵操作及時間終了,本插座設計有蜂鳴器控制電路。采用有源蜂鳴器,由單片機P2.6端口控制。按鍵操作響應采用一聲短鳴聲,時間終了響應采用一聲長鳴聲。

圖6 蜂鳴器控制電路
本插座需要用到4個功能按鍵,分別是S1設置鍵,S2增加鍵,S3減小鍵,S4啟動或停止鍵。選用單片機的P2.0-P2.3四個端口來控制信號的輸入,所以把按鍵開關和P2.0-P2.3口連接起來,當按下相應開關時,相當于給對應的I/O口一個低電平,然后通過單片機實現相應的操作,如圖7所示。
電源電路采用傳統的變壓器降壓、橋堆整流、電容濾波電路,再利用三端穩壓芯片LM7805得到5V電源電壓,提供給單片機等相關電路。

圖7 按鍵電路

圖8 直流5V電源電路
本插座軟件系統采用模塊化編程,主要包括按鍵掃描程序、74HC595驅動程序、數碼管顯示程序、按鍵處理程序、定時器T0中斷程序及倒計時程序等,其中按鍵掃描程序、倒計時程序及74HC595驅動程序放入定時器T0中斷程序中,定時器T0設置為每500微秒產生一次中斷。主程序中包含按鍵處理程序及數碼管顯示程序。程序流程圖如圖9所示。

圖9 程序流程圖
(1)按鍵掃描程序的主要任務:每500微秒掃描判斷是否有鍵按下,如果有鍵按下,判斷是哪個鍵按下。
(2)倒計時程序的主要任務:對時間進行累加,對分鐘和小時數進行倒計時處理。
(3)74HC595驅動程序的主要任務:每500微秒,單片機通過74HC595芯片把數碼管顯示的段碼和位碼數據傳過去,同時完成數碼管的掃描顯示。
(4)按鍵處理程序的主要任務:當某個鍵按下后,完成相應按鍵所對應功能的處理。
(5)數碼管顯示程序的主要任務:實時更新數碼管顯示數據。
本定時插座采用兩組數碼管實時顯示時間,通過4個按鍵實現了所有操控,功能簡單實用。而且定時時間長,方便給需要長時間定時控制的用戶。技工院校學生通過完成這個項目的設計與制作,能極大提升自身專業技能。