本文根據(jù)AT89S52單片機具有的在系統(tǒng)編程功能,整合了一套成本低廉、取材容易、制作快捷、操作方便的單片機實驗開發(fā)系統(tǒng)。該系統(tǒng)非常適合于課堂上或課堂外使用。
硬件電路
硬件電路分為單片機的最小系統(tǒng)和下載器兩大部分。
最小系統(tǒng)原理:最小系統(tǒng)是沒有外圍器件及外設(shè)接口擴展的單片機系統(tǒng)。它是單片機應(yīng)用系統(tǒng)的設(shè)計基礎(chǔ),包括最小系統(tǒng)結(jié)構(gòu)選擇、時鐘系統(tǒng)設(shè)計和復(fù)位系統(tǒng)設(shè)計。通常情況下,單片機最小系統(tǒng)分三種結(jié)構(gòu):①總線型總線應(yīng)用的最小系統(tǒng)結(jié)構(gòu),該結(jié)構(gòu)由總線型單片機、復(fù)位電路、時鐘電路、I/O口及并行擴展總線組成。②總線型非總線應(yīng)用的最小系統(tǒng)結(jié)構(gòu),只有單片機、復(fù)位電路構(gòu)成的最簡單的電路,并行總線不用于外圍擴展,可作為應(yīng)用系統(tǒng)的I/O口使用。③非總線型單片機的最小系統(tǒng)結(jié)構(gòu)。
這里介紹的最小系統(tǒng)屬于第②種,由單片機AT89S52和ISP編程接口組成,其原理如圖1所示。圖中P0~P3口和CN104留給實驗或?qū)嵱?xùn)時作為I/O口或連接擴展電路用。CON101是在下載或讀取芯片內(nèi)部程序時用的ISP編程接口,操作時,需要去掉跳線J101。(ISP即英文In-System Programmable,意為在系統(tǒng)編程。)
![]() |
下載器:下載器由接口板和連接電纜組成。接口板的原理圖見圖2(a)。圖中U201是8緩沖器74HC244電路,用作計算機并口和單片機的緩沖隔離。連接器CN202是通用的DB25針形插頭,與上位機連接,進行通信;其中4、5腳控制U201芯片,在其低電平時允許數(shù)據(jù)正常傳輸,高電平時74HC244的輸出呈高阻狀態(tài);6腳輸出數(shù)據(jù)到單片機;7腳是時鐘信號;9腳是輸出復(fù)位信號;10腳是接收從單片機讀出的數(shù)據(jù)。連接器CN201是標(biāo)準(zhǔn)的10針I(yè)DC插座,其各項功能見圖2(b)。
![]() |
![]() |
下載電纜采用10芯扁平電纜,兩頭壓有IDC插頭。一端接下載器,另一端接最小系統(tǒng)板上的ISP口。
軟件操作
在這個實驗開發(fā)系統(tǒng)中,軟件使用了keil c和程序下載軟件SLISP。有興趣仿真的讀者可使用proteus軟件。由于應(yīng)用電路和程序在仿真環(huán)境與真實環(huán)境中運行,在某些情況下存在一定的差異,所以在這里不予推薦(所用兩個軟件可到相應(yīng)網(wǎng)站上下載安裝)。
keil c的基本操作:安裝keil c軟件后,電腦的桌面上會有圖標(biāo)顯示。用鼠標(biāo)左鍵雙擊該圖標(biāo)便可進入keil c的工作界面,如圖3所示。該界面與Word界面類似,上邊是菜單欄,接著是快捷按鈕欄等。這里用到的部分菜單及快捷按鈕的中文含義已標(biāo)注在圖3上;用到的功能只是創(chuàng)建一個項目或打開一個已有的項目,創(chuàng)建或打開一個源程序文本等,最后把它編譯成需要的十六進制文件。
其操作步驟如下:
*新建項目或打開已有的項目
*新建文件或打開已有的文件
*目標(biāo)文件選項設(shè)置
*建立目標(biāo)文件,獲得.HEX文件
程序讀取與下載:已經(jīng)安裝有雙龍電子下載軟件的電腦,在其桌面上也有圖標(biāo)顯示。同樣用鼠標(biāo)左鍵雙擊該圖標(biāo)便可進入MCU下載程序的工作界面,如圖4所示。該界面是中文的,且比較清晰。
![]() |
首次使用時將“通信參數(shù)設(shè)置及器件選擇”設(shè)置成圖中所示,即通信口設(shè)為并行通信口“LPT1”,速率設(shè)為“TURBO”加速,器件選擇“AT89S52”。
拔去最小系統(tǒng)板上的跳線J101、J102、J103,插上AT89S52芯片;將下載線的接口板插入電腦的并口上,用連接電纜把最小系統(tǒng)與接口板連好,再在最小系統(tǒng)上接上+9V電源。注意“+”與“-”不能搞錯。打開電源對最小系統(tǒng)供電,就可以讀寫芯片中的程序了。
如果在下載過程中出現(xiàn)錯誤,會在下面的.文本框中出現(xiàn)提示。找到原因后再進行重寫時,需要先把芯片內(nèi)原來的信息擦除掉,然后再寫。
如果對原程序進行了修改,那么要重新進行編譯,即點重建目標(biāo)文件“Rebuild alI target files”按鈕,生成新的.HEX文件;下載時還要重新加載剛生成的同一文件名的新.HEX文件。這樣才能保證本次下載的是已修改的程序。
完成上面的操作后,關(guān)閉+9V電源,拔下連接電纜,插上跳線J101,接上擴展接口電路,就可以檢查程序的運行情況,進行實驗或開發(fā)了。
實訓(xùn)一例
用兩個按鈕分別控制繼電器的吸合和釋放。
基本要求:按一下開關(guān)S1,繼電器J吸合;按一下按鈕S2,繼電器J釋放。如果S2沒有閉合,那么即使按S1,繼電器J也不會吸合。
實現(xiàn)電路:利用單片機89S52的P3.6和P3.7口來控制P1.7的狀態(tài),使繼電器的吸合或釋放;當(dāng)P3.6低電平時使P1.7也低電平,繼電器吸合;當(dāng)P3.7高電平時使P1.7也高電平,繼電器釋放。其原理如圖5所示,電路可以用萬能板搭建而成。
![]() |
編程思路:首先取P3.7,判斷其是否是“1”。是,將P1.7置“1”,返回;不是“1”,則取P3.6。取P3.6,判斷其是否是“0”。是,將P1.7置“0”;不是“0”則返回。其流程見圖6。
![]() |
程序編制:按照流程圖就不難編制出程序。程序可用“記事本”或在“KEIL C”中錄入,并用文件名“rlcontrol.asm”保存。指令的具體含義請參見有關(guān)書籍。
![]() |
程序調(diào)試:具體操作步驟如下:
①用“記事本”或在“KEIL C”中錄入或編制程序,并用一個文件名,如“rlcontrol.asm”保存;
②打開“KEIL C”軟件,新建一個項目。項目名也不妨為“rlcontrol”;
③打開已建立的文件“rlcontrol.asm”,并將該文件添加到“Source Group 1”中;
④在"Options for Target‘Target 1’”中的“Output”標(biāo)簽頁上進行設(shè)置;
⑤點編譯和建立目標(biāo)文件,得到“rlcontrol.hex”文件;
⑥拔去最小系統(tǒng)板上的跳線J101、J102、J103,插上AT89S52芯片,將下載線的接口板插入電腦的并口上,把連接電纜把最小系統(tǒng)與接口板連好,再在最小系統(tǒng)上接上+9V電源;
⑦打開下載軟件,并設(shè)置好有關(guān)參數(shù),加載待寫文件“rlcontrol.hex”,點“編程”按鈕下載程序(必要時須先對芯片進行“擦寫”);
⑧完成上面的操作后,關(guān)閉+9V電源,拔下連接電纜,插上跳線J101,接上擴展接口電路;
⑨供電驗證程序,兩個按鈕的動作是否符合要求,不符合要求則進行修改;
⑩重復(fù)上述步驟直到實現(xiàn)要求的功能。