徐尚輝
(廣東省佛山市高明區(qū)高級技工學校,廣東佛山,528500)
目前,技工院校機電一體化、電氣自動化設備安裝與維修、工業(yè)機器人應用與維護等專業(yè)都開設了《單片機技術(shù)》這門課程,很多同學畢業(yè)設計也選擇了基于單片機控制的設計項目。本文介紹的這個設計項目,具有思路明確,定時時間長,功能實用,制作容易等特點。學生通過運用所學的專業(yè)知識,用單片機語言編程實現(xiàn)插座定時通斷電功能,完成好這個項目,對學生系統(tǒng)掌握單片機技術(shù)有非常大的幫助,因此,設計和制作這個定時插座是一個很不錯的畢業(yè)設計項目。
本插座以STC89C52單片機為控制核心,內(nèi)含數(shù)碼管、按鍵、蜂鳴器、繼電器等,兩組4位數(shù)碼管分別顯示兩個定時時間:預約時間和通電時間,最小時間為00.00,最大為99.60(即100小時),4個功能按鍵完成時間的設定。通過用C語言對單片機編程實現(xiàn)插座的定時通斷電功能。
使用操作:插座加電后,預約時間和通電時間數(shù)碼管均顯示0.0。按面板“設置”鍵,預約時間中“小時”數(shù)碼管閃動,此時可按“增加”或“減少”鍵來設置預約時間的小時數(shù),設置量從0至99小時;再次按“設置”鍵,此時預約時間中的“分鐘”數(shù)碼管閃動,同樣再按“增加”或“減少”鍵來設置預約時間的分鐘數(shù),設置量從0-60分鐘;依此類推,設置好通電時間中的“小時”和“分鐘”數(shù)后第五次按“設置”鍵,預約時間和通電時間就都設置完成。此時,按“啟動”鍵,預約時間進行倒計時,達到零后,繼電器接通,同時通電時間也開始倒計時,它到達零后,繼電器關(guān)閉。當插座按“啟動”鍵啟動后,“設置”、“增加”、“減小”三個鍵被鎖住,按動無效。如果中途需要暫停或修改時間,可再次按“啟動”鍵,此時倒計時停止,接通的繼電器也會斷開,這時就可重新設置時間,完成后再次按“啟動”鍵繼續(xù)工作。當我們按動按鍵時蜂鳴器會短鳴一聲,預約時間或通電時間倒計時為零時,蜂鳴器會長鳴一聲。另外,當?shù)褂嫊r,相應的數(shù)碼管小時與分鐘數(shù)之間的小數(shù)點會按秒閃動。插座面板圖如圖1所示。
圖1 插座面板圖
本定時插座電路包含有:一片STC89C52單片機用作主控;兩片74HC595芯片用于驅(qū)動數(shù)碼管;兩塊4位共陰數(shù)碼管用于時間顯示;一個繼電器用于控制插座的通斷電;一個蜂鳴器用作按鍵響應及時間終了響應;四個輕觸按鍵用于時間設置等;一個DC5V電源供控制板使用??刂齐娐穲D如圖2所示。
本插座對單片機要求不高,采用廉價的國產(chǎn)宏晶公司的STC89C52普通單片機芯片,晶振選用12MHz。其中10k電阻和10μF電容兩個元件完成單片機上電復位。單片機最小系統(tǒng)見圖3。
本裝置顯示部分選用兩塊4位共陰數(shù)碼管,由兩片74HC595芯片驅(qū)動,分別顯示預約時間和通電時間的小時數(shù)和分鐘數(shù)。
74HC595是一個8位串行輸入、并行輸出的位移緩存器:并行輸出為三態(tài)輸出。在SCK 的上升沿,串行數(shù)據(jù)由SDL輸入到內(nèi)部的8位位移緩存器,并由Q7’輸出,而并行輸出則是在LCK的上升沿將在8位位移緩存器的數(shù)據(jù)存入到8位并行輸出緩存器。當串行數(shù)據(jù)輸入端OE的控制信號為低使能時,并行輸出端的輸出值等于并行輸出緩存器所存儲的值。而當OE為高電位,也就是輸出關(guān)閉時,并行輸出端會維持在高阻抗狀態(tài)。74HC595常用于驅(qū)動數(shù)碼管或點陣顯示屏。
圖2 控制電路圖
圖3 單片機最小系統(tǒng)
74HC595使用方法:
(1)<74HC595的數(shù)據(jù)端:
Q0--Q7:八位并行輸出端,可以直接控制數(shù)碼管的8個段或位。
Q7’:級聯(lián)輸出端。將它接下一個595的DS端。
DS:串行數(shù)據(jù)輸入端,級聯(lián)的話接上一級的Q7。
(2)<74HC595的控制端說明:
/MR(10腳):低電平時將移位寄存器的數(shù)據(jù)清零,通常將它接Vcc。
SH_CP(11腳):上升沿時數(shù)據(jù)寄存器的數(shù)據(jù)移位。Q0-->Q1-->Q2-->Q3-->...-->Q7;下降沿移位寄存器數(shù)據(jù)不變。
圖4 顯示電路
ST_CP(12腳):上升沿時移位寄存器的數(shù)據(jù)進入數(shù)據(jù)存儲寄存器,下降沿時存儲寄存器數(shù)據(jù)不變。通常我們將ST_CP置為低電平,當移位結(jié)束后,在ST_CP端產(chǎn)生一個正脈沖,更新顯示數(shù)據(jù)。
本顯示電路采用兩片74HC595芯片,一片驅(qū)動8個數(shù)碼管的段碼,另一片驅(qū)動8個數(shù)碼管的位碼。與單片機連接只需要三個端口,此處與單片機P3.4、P3.5、P3.6口連接。
插座通斷電控制采用5V繼電器控制,由單片機P2.7端口控制,如圖5所示。
圖5 插座通斷電控制電路
為了響應按鍵操作及時間終了,本插座設計有蜂鳴器控制電路。采用有源蜂鳴器,由單片機P2.6端口控制。按鍵操作響應采用一聲短鳴聲,時間終了響應采用一聲長鳴聲。
圖6 蜂鳴器控制電路
本插座需要用到4個功能按鍵,分別是S1設置鍵,S2增加鍵,S3減小鍵,S4啟動或停止鍵。選用單片機的P2.0-P2.3四個端口來控制信號的輸入,所以把按鍵開關(guān)和P2.0-P2.3口連接起來,當按下相應開關(guān)時,相當于給對應的I/O口一個低電平,然后通過單片機實現(xiàn)相應的操作,如圖7所示。
電源電路采用傳統(tǒng)的變壓器降壓、橋堆整流、電容濾波電路,再利用三端穩(wěn)壓芯片LM7805得到5V電源電壓,提供給單片機等相關(guān)電路。
圖7 按鍵電路
圖8 直流5V電源電路
本插座軟件系統(tǒng)采用模塊化編程,主要包括按鍵掃描程序、74HC595驅(qū)動程序、數(shù)碼管顯示程序、按鍵處理程序、定時器T0中斷程序及倒計時程序等,其中按鍵掃描程序、倒計時程序及74HC595驅(qū)動程序放入定時器T0中斷程序中,定時器T0設置為每500微秒產(chǎn)生一次中斷。主程序中包含按鍵處理程序及數(shù)碼管顯示程序。程序流程圖如圖9所示。
圖9 程序流程圖
(1)按鍵掃描程序的主要任務:每500微秒掃描判斷是否有鍵按下,如果有鍵按下,判斷是哪個鍵按下。
(2)倒計時程序的主要任務:對時間進行累加,對分鐘和小時數(shù)進行倒計時處理。
(3)74HC595驅(qū)動程序的主要任務:每500微秒,單片機通過74HC595芯片把數(shù)碼管顯示的段碼和位碼數(shù)據(jù)傳過去,同時完成數(shù)碼管的掃描顯示。
(4)按鍵處理程序的主要任務:當某個鍵按下后,完成相應按鍵所對應功能的處理。
(5)數(shù)碼管顯示程序的主要任務:實時更新數(shù)碼管顯示數(shù)據(jù)。
本定時插座采用兩組數(shù)碼管實時顯示時間,通過4個按鍵實現(xiàn)了所有操控,功能簡單實用。而且定時時間長,方便給需要長時間定時控制的用戶。技工院校學生通過完成這個項目的設計與制作,能極大提升自身專業(yè)技能。