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

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

圖2 控制電路圖

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

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

圖5 插座通斷電控制電路
為了響應(yīng)按鍵操作及時(shí)間終了,本插座設(shè)計(jì)有蜂鳴器控制電路。采用有源蜂鳴器,由單片機(jī)P2.6端口控制。按鍵操作響應(yīng)采用一聲短鳴聲,時(shí)間終了響應(yīng)采用一聲長(zhǎng)鳴聲。

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

圖7 按鍵電路

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

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