李 航
遼寧軌道交通職業學院 電氣工程系 沈陽 110023
近些年來,作為嵌入式系統基礎的單片機技術得到了飛速發展,受到人們的廣泛青睞。單片機產品在工業、軍事、汽車、醫療、智能用品、家居等領域的普及程度已經遠遠超出人們的預期。Proteus軟件是設計單片機系統和開發單片機產品最常用的電路仿真軟件之一,既擁有和其它電子設計自動化軟件相同的仿真功能,也可以開發單片機和其它外圍器件[1-4]。Proteus軟件受到國內外廣大單片機技術愛好者、單片機技術教學教師和單片機開發人員的推崇,筆者基于Proteus軟件對流水燈系統單片機硬件電路進行設計。
利用AT89C51單片機和其它外圍器件實現流水燈系統硬件電路,這一流水燈系統由HL1、HL2、HL3、HL4、HL5、HL6、HL7、HL8共八盞彩燈構成,采用直線形排列方式,如圖1所示。
圖1 流水燈系統排列
流水燈系統的控制要求為:當系統通電啟動工作時,從HL1開始向右每隔1 s點亮下一盞彩燈,同時熄滅前一盞彩燈;當HL8點亮1 s后,HL1點亮,HL8熄滅;如此周而復始;若系統斷電,則停止工作。
流水燈系統的工作過程如下:① 任意時刻通電,流水燈系統開始工作;② 首先八盞彩燈中只有HL1點亮;③ 1 s后,HL2點亮,同時熄滅HL1;④ 1 s后,HL3點亮,同時熄滅HL2;⑤ 1 s后,HL4點亮,同時熄滅HL3;⑥ 1 s后,HL5點亮,同時熄滅HL4;⑦ 1 s后,HL6點亮,同時熄滅HL5;⑧ 1 s后,HL7點亮,同時熄滅HL6;⑨ 1 s后,HL8點亮,同時熄滅HL7;⑩ 1 s后,HL1點亮,同時熄滅HL8。流水燈按以上規律不斷重復點亮、熄滅,任意時刻斷電,則流水燈系統停止工作。
流水燈系統以AT89C51單片機為控制核心,以外圍硬件電路為輔助。要使單片機正常工作,需要搭建起單片機最小系統,即使用最少的元器件組成一個可以使單片機工作的系統[5-6]。單片機最小系統至少包括電源電路、時鐘電路、復位電路和下載電路[7]。
電源電路主要負責向單片機和其它外圍器件可靠供電,保證系統的正常運行[8]。采用單9 V電源適配器供電,既能滿足單片機的供電要求,又可滿足外圍硬件電路的需求。AT89C51單片機的電源由40號引腳Vcc接入,由20號引腳Vss接地。
時鐘電路提供單片機工作的時間基準[9]。單片機的時鐘電路可以使用有源晶振或無源晶振,筆者設計時使用無源晶振提供12 MHz時鐘,能夠滿足單片機的工作要求。AT89C51單片機的時鐘輸入引腳是18號引腳XTAL2和19號引腳XTAL1,需要兩個30 pF電容和一個12 MHz晶振作為外圍器件。
復位電路可以保證系統在出現問題時重新啟動,對系統調試起至關重要的作用[10]。復位方式一般分為通電自動復位和手動復位兩種。本系統以手動復位方式為主,可以人為控制單片機的復位,必要時也可采用通電自動復位。復位電路需要一個10μF電解電容、一個手動按鍵和一個4.7 kΩ電阻作為外圍器件,接入單片機的9號引腳RST。
下載電路用于將計算機開發的單片機軟件程序傳輸至單片機,實現計算機和單片機的通信[11]。下載電路采用典型的RS232接口,需要使用MAX232芯片。
八位流水燈電路是本系統產生流水燈現象的重要外圍電路。使用AT89C51單片機的P1并行口(P1.0~P1.7)連接八位流水燈電路。P1并行口是單片機提供給用戶的通用數據輸入輸出接口,結構簡單,在外圍器件中不需要上拉電阻即可工作。單片機的輸入輸出接口電路分為拉電流和灌電流兩種,拉電流指電流從單片機的內部流出到外部,灌電流指電流從單片機的外部流入到內部。拉電流方式要求單片機具有強大的驅動能力,由于單片機輸入輸出接口的驅動能力非常有限,因此本系統采用灌電流方式。使用八個發光二極管實現八位流水燈的點亮、熄滅效果,需要為每個發光二極管搭配一個限流電阻。限流電阻阻值的要求比較嚴格,如果阻值太小,那么發光二極管的工作電流可能大于自身允許的最大電流,有可能燒毀;如果阻值較大,那么會影響發光二極管的亮度,不容易直觀地看到流水燈效果。限流電阻阻值一般選擇為300~1 000 Ω,本系統選用八個560 Ω限流電阻。
在設計流水燈系統時,電源電路選用電源適配器,下載電路選用RS232接口,其余硬件電路器件見表1。
表1 流水燈系統硬件電路器件
打開Proteus ISIS軟件,新建設計并保存。選擇適當的保存路徑,取名為流水燈系統單片機硬件電路。
點擊“從庫中選取”,在關鍵詞欄中輸入“AT89C51”,并點擊確定,然后將單片機放置到合適的位置,如圖2所示。由圖2不難看出單片機的20號引腳Vss接地和40號引腳Vcc電源被隱藏起來了,說明軟件已經默認接好了電源和接地[12]。
點擊“從庫中選取”,在關鍵詞一欄中輸入“CAP”,并點擊確定,然后將電容放置到合適的位置,同時修改參數。重復操作,選取另一個電容[13-14]。點擊“從庫中選取”,在關鍵詞一欄中輸入“CRYSTAL”,并點擊確定,然后將晶振放置到合適的位置。在工具欄中找到接地并放置,再將以上元件連接起來,如圖3所示。
圖2 AT89C51單片機
圖3 時鐘電路
點擊“從庫中選取”,在關鍵詞一欄中輸入“CAP-ELEC”,并點擊確定,然后將電解電容放置到合適的位置,同時修改參數。點擊“從庫中選取”,在關鍵詞一欄中輸入“RES”,并點擊確定,然后將電阻放置到合適的位置,同時修改參數。點擊“從庫中選取”,在關鍵詞一欄中輸入“JUMPER”,并點擊確定,然后將按鈕放置到合適的位置。在工具欄中找到電源和接地并放置,再將以上元件連接起來,如圖4所示。
點擊“從庫中選取”,在關鍵詞一欄中輸入“LED-RED”,并點擊確定,然后將紅色發光二極管放置到合適的位置。重復操作,選取另外七個紅色發光二極管。點擊“從庫中選取”,在關鍵詞一欄中輸入“RES”,并點擊確定,然后將電阻放置到合適的位置,同時修改參數。重復操作,選取另外七個電阻。在工具欄中找到電源并放置,再將以上元件連接起來,如圖5所示。
圖4 復位電路
圖5 八位流水燈電路
在完成以上電路的搭建后,整個流水燈系統單片機硬件電路就設計完成了,如圖6所示。
流水燈系統以AT89C51單片機為控制核心,同時需要外圍硬件電路的協同配合。在分析流水燈系統控制要求的基礎上,基于Proteus軟件設計了流水燈系統單片機硬件電路。這一硬件電路為流水燈系統的開發奠定了基礎,可供單片機初學者和單片機課程授課教師參考。
圖6 流水燈系統單片機硬件電路