單片機技術(shù)實驗系統(tǒng)說明書_第1頁
單片機技術(shù)實驗系統(tǒng)說明書_第2頁
單片機技術(shù)實驗系統(tǒng)說明書_第3頁
單片機技術(shù)實驗系統(tǒng)說明書_第4頁
單片機技術(shù)實驗系統(tǒng)說明書_第5頁
已閱讀5頁,還剩32頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、單片機技術(shù)實驗系統(tǒng)使用說明書職業(yè)技術(shù)學(xué)院 楊金華2009年5月目 錄實驗一 單片機仿真軟件的使用實驗二 實驗系統(tǒng)的介紹和點亮一只發(fā)光二極管實驗三 簡單流水燈實驗實驗四 p1口轉(zhuǎn)彎燈實驗(查詢法)實驗五 p3.3輸入,p1口輸出(中斷)實驗六 led顯示器的靜態(tài)顯示實驗實驗七 基于ls164的led串行顯示接口實驗八 led顯示器的動態(tài)顯示實驗實驗九 擴展存儲器6264讀寫實驗實驗十 雙機串行通信實驗十一 可編程并行接口芯片8255a 實驗十二 基于掃描法的鍵盤 led顯示接口 附錄1 參考程序附錄2 圖片實驗一:單片機仿真軟件的使用1 實驗?zāi)康?1、掌握keil軟件的使用。 2、掌握prote

2、us軟件的使用。 3、學(xué)習(xí)匯編程序的編寫和proteus仿真。2 實驗內(nèi)容 1、keil軟件的基本用法。 2、proteus軟件的基本用法。 3、p1口做輸出口,編寫程序,使p1口點亮一只發(fā)光二極管(仿真)。3 實驗說明 注意延時子程序的延時計算問題。四實驗步驟 1、學(xué)習(xí)keil軟件的使用。 2、學(xué)習(xí)proteus軟件的使用。 3、p1口點亮一只發(fā)光二極管的仿真。(一):keil軟件的基本用法keil vision是keil公司(arm子公司)開發(fā)的一款用于mcs-51單片機開發(fā)的應(yīng)用十分廣泛的編譯和調(diào)試軟件。該軟件可以編輯、編譯匯編語言、c51語言,連接定位目標文件和庫文件,創(chuàng)建hex文件,

3、調(diào)試目標程序等。keil軟件功能強大,包含很多部分,本文我們主要使用keil vision來開發(fā)c51項目、調(diào)試程序并生成hex文件來用于單片機開發(fā)。keil vision是一款在windows下使用的集成開發(fā)環(huán)境,目前最新版本為v3,本文中我們?yōu)榱撕啽氵x用v2.0。下面我們就來熟悉一下keil軟件。打開軟件,我們可以看到其界面,如下圖所示:下面我們就來使用keil軟件開發(fā)我們的第一個項目。點擊“project”(工程)菜單下面的“new project”(新建工程),我們來新建一個工程。軟件彈出“create new project”(創(chuàng)建新工程)窗口。如下圖所示:我們?yōu)楣こ梯斎胛募?,點

4、擊“保存”按鈕,軟件將彈出“select device for target”(選擇mcu)窗口,如下圖所示。我們只需根據(jù)自己工程的需要選擇相應(yīng)的mcu,然后點擊“確定”按鈕就可以了。在這里我們選擇atmel公司的at89c51,這種類型的單片機與intel的8051單片機完全兼容,但是它內(nèi)含4kb flash存儲器,使用非常方便,而且在我國也較為流行。事實上,目前at89c51已經(jīng)被at89s51所淘汰,因為at89s51加入了isp(在線可編程)功能,通過atmel公司或者自制的下載線就可以對片內(nèi)flash進行編程,使用更為方便。然而at89s51與at89c51除了isp以外完全兼容,而

5、且下面我們要說明的proteus軟件目前只能支持at89c51,所以本文將以at89c51來代替8051使用,請大家注意。選擇好相應(yīng)的mcu,點擊窗口中的“確定”按鈕以后,軟件會彈出一個窗口詢問是否將8051啟動代碼加入工程(如下圖),由于我們不需要這段代碼,所以我們點擊“否”跳過就可以了。 至此,我們完成了整個工程的初步建立。下面我們需要做的就是創(chuàng)建源文件并將我們的源文件加入工程。首先點擊“file”下面的“new”菜單,或者直接點擊工具欄中的新建按鈕,軟件將彈出源文件編輯窗口,我們可以在窗口中編輯源文件。編輯好的源文件如下圖所示。接下來的操作有兩點需要注意:1、加入at89c51的頭文件(

6、當然,如果你選擇了其他的mcu,則加入相應(yīng)的頭文件):在要加入頭文件的地方(一般是文件開頭),點擊右鍵,選擇點擊彈出菜單(如下圖)中的“insert #include ”即完成了頭文件的添加。我們可以看到源文件中多了一行頭文件包含代碼“#include ”。2、 保存源文件:注意保存源文件時所書寫的源文件擴展名決定了源文件的類型(c51文件或者匯編語言源文件)。這里我們將源文件保存為“main.c”。你可以看出在源文件保存以后,文件中的關(guān)鍵字已經(jīng)高亮顯示,可以幫助我們及時發(fā)現(xiàn)錯誤。源文件編輯好以后,我們就可以將其添加到工程中了。如下圖所示,右鍵點擊“project workspace”窗口中的

7、“source group 1”(如果你不能看到這個項目,你可以點擊一下圖中“target 1”前面的“+”號展開文件夾),這時軟件將彈出如圖所示的菜單。我們選擇“add files to group source group 1”,軟件彈出添加源文件窗口,我們就可以將相應(yīng)的源文件加入到工程了。下面我們還需要對工程作一些設(shè)置,以使其滿足我們的要求。右鍵點擊上圖中的“target 1”,軟件將彈出工程菜單,如下圖所示。我們選擇點擊“options for target target1” ,軟件將彈出工程設(shè)置窗口。在工程設(shè)置中其他的我們暫時不管,只需將“output”選項卡下面的“create h

8、ex file”選中就可以了,如下圖所示。這樣,當我們調(diào)試工程項目時,軟件將能夠生成hex文件,用來裝入單片機,使之運行我們的指令。設(shè)置好以后,我們就可以編譯、鏈接、調(diào)試我們的工程項目了。最后讓我們來熟悉一下調(diào)試工具欄。在這個工具欄中我們只需了解左邊的三個按鈕。其中,調(diào)試工具欄中最左側(cè)的按鈕是“translate current file”按鈕,即編譯按鈕,用來編譯當前文件;中間的按鈕是“build target”按鈕,即建立工程按鈕,用來編譯、連接當前的工程,產(chǎn)生相應(yīng)的工程目標文件,比如hex文件;最右側(cè)的按鈕是“rebuild all target files”按鈕,即全部重建按鈕,主要在

9、工程文件有改動時使用,作用是全部重建整個工程,產(chǎn)生相應(yīng)的目標文件。在整個工程生成hex文件以后,我們在keil中的任務(wù)就算完成了。當然,你可以在keil中進行各種調(diào)試。事實上,keil的功能十分強大,它能仿真單片機的各種功能。但是我們在此并不討論它的這些功能。(二):proteus軟件的基本用法proteus軟件是labcenter electronics公司的一款電路設(shè)計與仿真軟件,它包括isis、ares等軟件模塊,ares模塊主要用來完成pcb的設(shè)計,而isis模塊用來完成電路原理圖的布圖與仿真。proteus的軟件仿真基于vsm技術(shù),它與其他軟件最大的不同也是最大的優(yōu)勢就在于它能仿真大

10、量的單片機芯片,比如mcs-51系列、pic系列等等,以及單片機外圍電路,比如鍵盤、led、lcd等等。通過proteus軟件的使用我們能夠輕易地獲得一個功能齊全、實用方便的單片機實驗室。本文中由于我們主要使用proteus軟件在單片機方面的仿真功能,所以我們重點研究isis模塊的用法,在下面的內(nèi)容中,如不特別說明,我們所說的proteus軟件特指其isis模塊。在進行下面的操作前,我先說明一點:我的proteus版本是7.1, 6.9以前的版本,可能你發(fā)現(xiàn)在鼠標操作上會略有不同。這主要表現(xiàn)在6.9以前的版本鼠標左右鍵的作用與一般軟件剛好相反,而7.0以后已經(jīng)完全改過。下面我們首先來熟悉一下p

11、roteus的界面。proteus是一個標準的windows窗口程序,和大多數(shù)程序一樣,沒有太大區(qū)別,其啟動界面如下圖所示:如圖中所示,區(qū)域為菜單及工具欄,區(qū)域為預(yù)覽區(qū),區(qū)域為元器件瀏覽區(qū),區(qū)域為編輯窗口,區(qū)域為對象拾取區(qū),區(qū)域為元器件調(diào)整工具欄,區(qū)域為運行工具條。下面我們就以建立一個和我們在keil簡介中所講的工程項目相配套的proteus工程為例來詳細講述proteus的操作方法以及注意事項。首先點擊啟動界面區(qū)域中的“p”按鈕(pick devices,拾取元器件)來打開“pick devices”(拾取元器件)對話框從元件庫中拾取所需的元器件。對話框如下圖所示:在對話框中的“keywor

12、ds”里面輸入我們要檢索的元器件的關(guān)鍵詞,比如我們要選擇項目中使用的at89c51,就可以直接輸入。輸入以后我們能夠在中間的“results”結(jié)果欄里面看到我們搜索的元器件的結(jié)果。在對話框的右側(cè),我們還能夠看到我們選擇的元器件的仿真模型、引腳以及pcb參數(shù)。這里有一點需要注意,可能有時候我們選擇的元器件并沒有仿真模型,對話框?qū)⒃诜抡婺P秃鸵_一欄中顯示“no simulator model”(無仿真模型)。那么我們就不能夠用該元器件進行仿真了,或者我們只能做它的pcb板,或者我們選擇其他的與其功能類似而且具有仿真模型的元器件。搜索到所需的元器件以后,我們可以雙擊元器件名來將相應(yīng)的元器件加入到我

13、們的文檔中,那么接著我們還可以用相同的方法來搜索并加入其他的元器件。當我們已經(jīng)將所需的元器件全部加入到文檔中時,我們可以點擊“ok”按鈕來完成元器件的添加。添加好元器件以后,下面我們所需要做的就是將元器件按照我們的需要連接成電路。首先在元器件瀏覽區(qū)中點擊我們需要添加到文檔中的元器件,這時我們就可以在瀏覽區(qū)看到我們所選擇的元器件的形狀與方向,如果其方向不符合你的要求,你可以通過點擊元器件調(diào)整工具欄中的工具來任意進行調(diào)整,調(diào)整完成之后在文檔中單擊并選定好需要放置的位置即可。接著按相同的操作即可完成所有元器件的布置,接下來是連線。事實上proteus的自動布線功能是如此的完美以至于我們在做布線時從來

14、都不會覺得這是一項任務(wù),而通常像是在享受布線的樂趣。布線時我們只需要單擊選擇起點,然后在需要轉(zhuǎn)彎的地方單擊一下,按照你所需走線的方向移動鼠標到線的終點單擊即可。本例我們布線的結(jié)果如下圖所示:(仿真我們在上面的keil操作介紹中的簡單例子)。因為該工程十分簡單,我們沒有必要加上復(fù)位電路,所以這點在圖中予以忽略,請大家注意。除此以外,你可能還發(fā)現(xiàn),單片機系統(tǒng)沒有晶振,這一點你需注意。事實上在proteus中單片機的晶振可以省略,系統(tǒng)默認為12mhz,而且很多時候,當然也為了方便,我們只需要取默認值就可以了。下面我們來添加電源。先說明一點,proteus中單片機芯片默認已經(jīng)添加電源與地,所以我們可以

15、省略。然后在添加電源與地以前,我們先來看一下上面第一個圖中區(qū)域的對象拾取區(qū),我們在這里只說明本文中可能會用得到的以及比較重要的工具。:(selection mode)。選擇模式,通常情況下我們都需要選中它,比如布局時和布線時。:(component mode)。組件模式,點擊該按鈕,能夠顯示出區(qū)域中的元器件,以便我們選擇。 :(wire label mode)。線路標簽?zāi)J?,選中它并單擊文檔區(qū)電路連線能夠為連線添加標簽。經(jīng)常與總線配合使用。:(text script mode)。文本模式,選中它能夠為文檔添加文本。 :(buses mode)。總線模式,選中它能夠在電路中畫總線。關(guān)于總線畫法的

16、詳細步驟與注意事項我們在下面會進行專門講解。:(terminals mode)。終端模式,選中它能夠為電路添加各種終端,比如輸入、輸出、電源、地等等。:(virtual instruments mode)。虛擬儀器模式,選中它我們能夠在區(qū)域中看到很多虛擬儀器,比如示波器、電壓表、電流表等等。關(guān)于它們的用法我們會在后面的相應(yīng)章節(jié)中詳細講述。好了,下面我們就來添加電源。首先點擊,選擇終端模式,然后在元器件瀏覽區(qū)中點擊power(電源)來選中電源,通過區(qū)域中的元器件調(diào)整工具進行適當?shù)恼{(diào)整,然后就可以在文檔區(qū)中單擊放置電源了。放置并連接好線路的電路圖一部分如下圖:連接好電路圖以后我們還需要做一些修改。

17、由上圖我們可以看出,圖中的r1電阻值為10k,這個電阻作為限流電阻顯然太大,將使發(fā)光二極管d1亮度很低或者根本就不亮,影響我們的仿真結(jié)果。所以我們要進行修改。修改方法如下:首先我們雙擊電阻圖標,這時軟件將彈出“edit component”對話框(見下圖所示的對話框),對話框中的“component referer”是組件標簽之意,可以隨便填寫,也可以取默認,但要注意在同一文檔中不能有兩個組件標簽相同;“resistance”就是電阻值了,我們可以在其后的框中根據(jù)需要填入相應(yīng)的電阻值。填寫時需注意其格式,如果直接填寫數(shù)字,則單位默認為;如果在數(shù)字后面加上k或者k,則表示k之意。這里我們填入27

18、0,表示270。修改好各組件屬性以后就要將程序(hex文件)載入單片機了。首先雙擊單片機圖標,系統(tǒng)同樣會彈出“edit component”對話框,如下圖。在這個對話框中我們點擊“program files”框右側(cè)的,來打開選擇程序代碼窗口,選中相應(yīng)的hex文件后返回,這時,按鈕左側(cè)的框中就填入了相應(yīng)的hex文件,我們點擊對話框的“ok”按鈕,回到文檔,程序文件就添加完畢了。裝載好程序,我們就可以進行仿真了。首先來熟悉一下上面第一個圖中區(qū)域的運行工具條。工具條從左到右依次是“play”、“step”、“pause”、“stop”按鈕,即運行、步進、暫停、停止。下面我們點擊“play”按鈕來仿真

19、運行,效果如下圖所示,可以看到系統(tǒng)按照我們的程序在運行著,而且我們還能看到其高低電平的實時變化。如果我們已經(jīng)觀察到了結(jié)果就可以點擊“stop”來停止運行。實驗二 實驗系統(tǒng)的介紹和點亮一只發(fā)光二極管一實驗?zāi)康?1、了解實驗系統(tǒng)各個模塊的功能。 2、掌握keil軟件的使用。 3、學(xué)習(xí)匯編程序的編寫。 4、掌握下載器的使用。二實驗內(nèi)容 1、了解實驗系統(tǒng)各個模塊的功能,掌握各個功能模塊之間的連接使用。 2、使用keil軟件編寫匯編程序,并生成正確的hex文件。 3、p1口做輸出口,使p1.0口點亮一只發(fā)光二極管。三實驗說明 注意延時子程序的延時計算問題。4 實驗線路圖 1、下載系統(tǒng)的連接。 2、p1.

20、0接任意一個發(fā)光二極管的輸入端,發(fā)光二極管的公共端接vcc。 3、主電路示意圖如下:五 實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用usb下載器將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,觀察發(fā)光二極管閃爍情況。六思考 改變延時常數(shù),使發(fā)光二極管閃亮?xí)r間改變。實驗三 簡單流水燈實驗一實驗?zāi)康?1、學(xué)習(xí)p1口的使用方法。 2、學(xué)習(xí)延時子程序的編寫。2 實驗預(yù)備知識 1、p1口是準雙向口,每一位都可獨立地定義為輸入或輸出。 2、本實驗中的延時子程序采用指令循環(huán)實驗,機器周期*指令所需機器周期數(shù)*循環(huán)次數(shù),在系統(tǒng)時間允許的情況下可以采用此方法。 三實驗內(nèi)容 1、使用k

21、eil軟件編寫匯編程序,并生成正確的hex文件。 2、p1口作為輸出口,接8只發(fā)光二極管,使發(fā)光二極管循環(huán)點亮。四實驗說明 注意延時子程序的延時計算問題。5 實驗線路圖 1、下載系統(tǒng)的連接。 2、p1.0p1.7用排線至接任意8只發(fā)光二極管的輸入端,發(fā)光二極管的公共端接vcc。 3、主電路示意圖如下: 六實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,觀察8只發(fā)光二極管閃爍移位情況。七思考 改變延時常數(shù),使發(fā)光二極管閃亮?xí)r間改變。 修改程序,使發(fā)光二極管閃亮移位方向改變。 使用其他i/o口作為輸出口,又該做哪些修

22、改?實驗四 p1口轉(zhuǎn)彎燈實驗(查詢法)一實驗?zāi)康?進一步了解p1口的使用,學(xué)習(xí)匯編語言編程方法與調(diào)試技巧。二實驗內(nèi)容 p1.0接5v時,右轉(zhuǎn)彎燈閃亮,p1.1接5v時左轉(zhuǎn)彎燈閃亮,p1.0、p1.1同時接5v或接地時,轉(zhuǎn)彎燈均不閃亮。三實驗線路圖 1、下載系統(tǒng)的連接。 2、p1.0、p1.1接vcc或接地,p1.4p1.7接四只發(fā)光二極管,發(fā)光二極管的公共端接vcc。 3、主電路示意圖如下: 四實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序,應(yīng)看到轉(zhuǎn)彎燈正確閃亮。五思考 改變延時常數(shù),使發(fā)光二極管閃亮?xí)r

23、間改變。 修改程序,用4只發(fā)光二極管的左移和右移來表示左轉(zhuǎn)彎和右轉(zhuǎn)彎。 實驗五 p3.3輸入,p1口輸出(中斷)一實驗?zāi)康?1、學(xué)習(xí)p3口、p1口的使用方法。 2、學(xué)習(xí)延時子程序的編寫和使用。2 實驗內(nèi)容 1、p3口做輸入口,外接一脈沖,每輸入一個脈沖,p1口按十六進制加一。 2、p1口做輸出口,編寫程序,使p1口接的8個發(fā)光二極管按16進制加一方式點亮。 3、使用keil軟件編寫匯編程序,并生成正確的hex文件。3 實驗說明 1、p3口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同;當p3口作為輸入口時,必須先對它置高電平,時內(nèi)部mos管截止,才能讀入正確的數(shù)據(jù)。 2、注意延時子程序的

24、延時計算問題。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、p1.0p1.7用排線至接任意8只發(fā)光二極管的輸入端,發(fā)光二極管的公共端接vcc。 3、p3.3接u1模塊右下角的獨立按鍵輸出端。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序。按鍵每按動一次,8只發(fā)光二極管按16進制加一方式點亮。六思考 1、使用p3.2作為輸入口,該做哪些修改? 1、使用p3.4或p3.5作為輸入口,又該做哪些修改?實驗六 led顯示器的靜態(tài)顯示實驗一實驗?zāi)康?1、學(xué)習(xí)p0口的使用方法。 2、學(xué)習(xí)le

25、d顯示器的靜態(tài)顯示和編程應(yīng)用。二實驗內(nèi)容 1、p0口做輸出口,連接到一個led顯示器(共陰)的a-h段。 2、編程使七段數(shù)碼管循環(huán)顯示0-9。三實驗說明 1、p0口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同。 2、注意數(shù)碼管的共陰共陽問題及對應(yīng)的段碼表。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、p0.0p0.7用排線至接到u6模塊中的led顯示器的8段,led顯示器公共端接地。 3、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序。觀察led顯示器循環(huán)顯示0-9。六、思考:

26、如果使用共陽的led數(shù)碼管,電路連接和程序該做哪些修改?實驗七 基于ls164的led串行顯示接口一實驗?zāi)康?1、學(xué)習(xí)74ls164串并轉(zhuǎn)換芯片(u4模塊)的使用方法。 2、進一步學(xué)習(xí)led顯示器(u6模塊)的使用方法和編程應(yīng)用。 3、進一步學(xué)習(xí)p3口第二功能使用。二實驗內(nèi)容 1、74ls164芯片的串行并出,芯片的輸出連接到一個led顯示器(共陰)的a-h段。 2、編程使七段數(shù)碼管循環(huán)顯示0-9。三實驗說明 1、p3口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同。 2、注意數(shù)碼管的共陰共陽問題及對應(yīng)的段碼表。3、74ls164的原理:它是串行輸入,并行輸出,其中管腳1和2為串行輸入端

27、,qa-qh為輸出端,清除管腳和時鐘管腳為控制管腳,當清除管腳為高電平時,時鐘管腳為上升沿時,才會有輸出.因此,在為了實現(xiàn)這個程序的要求,我們只需要將單片機中的數(shù)據(jù)送到sbuf中,再將硬件按照相應(yīng)的制作好,這樣就可以實現(xiàn)數(shù)據(jù)的傳送了,然后通過查表就能得到需要顯示的數(shù)據(jù)了。根據(jù)需要顯示的方式的不同,我們可以編不同的程序。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、p3.0和p3.1用排線接到74ls64的1腳和8腳,74ls164的輸出接七段數(shù)碼管的a-h段。 3、led顯示器(共陰)的公共端接地。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用

28、下載線軟件將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序。觀察led顯示器循環(huán)顯示0-9。六、思考1、如果使用共陽的led數(shù)碼管,電路連接和程序該做哪些修改?2、n個164和led數(shù)碼管同時使用,該如何連線和編程?實驗八 led顯示器的動態(tài)顯示實驗一實驗?zāi)康?1、學(xué)習(xí)p0口、p2口的使用方法。 2、進一步學(xué)習(xí)led顯示器(u6模塊)的使用方法和編程應(yīng)用。二實驗內(nèi)容 1、使用4個led顯示器(共陽),動態(tài)顯示2009。 2、p0口送出段選碼,p2.0-p2.3送出位選碼。三實驗說明 1、p0口、p3口是準雙向口,它作為輸出口時與一般的雙向口使用方法相同。 2、注意數(shù)碼管的共陰共陽問題及

29、對應(yīng)的段碼表。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、p0口作為段選碼輸出連接到4只led數(shù)碼管的a-h段。 3、p2.0-p2.3分別接4只led數(shù)碼管的公共端,送出位控信號。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序。觀察led顯示器動態(tài)顯示2009。六、思考:動態(tài)顯示是如何實現(xiàn)的?實驗九 擴展存儲器6264讀寫實驗一實驗?zāi)康?1、學(xué)習(xí)片外存儲器擴展方法。 2、學(xué)習(xí)數(shù)據(jù)存儲器,不同的讀寫方法。二實驗內(nèi)容 先把0-f(16個數(shù))寫入到片外數(shù)據(jù)存儲器6264的0000h

30、-000fh(16個)存儲單元,再把這16個數(shù)據(jù)讀出,依次從p1口送到led顯示器顯示。三實驗說明 1、單片機采用的是統(tǒng)一編址方式。p0口是低8位地址線和數(shù)據(jù)線分時復(fù)用,p2口是高8位地址。 2、6264的存儲容量是8kb(13根地址線)。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、p0作為數(shù)據(jù)線直接接到6264對應(yīng)的數(shù)據(jù)端口,p0口同時作為低8位地址線通過74ls573鎖存器接6264的a0-a7。 3、p2.0-p2.4分別接6264的a8-a12。6264芯片的片選接p2.7。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將h

31、ex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序。觀察led顯示器依次顯示0-f。六、思考:1、6264的片選端改接p2.6,6264的地址如何變化?2、74ls573和74ls373都是常用的鎖存器,他們有何區(qū)別?實驗十 雙機串行通信一實驗?zāi)康?、掌握串行口工作方式的程序設(shè)計,掌握單片機通訊的編制。 2、了解實現(xiàn)串行通訊的硬環(huán)境,數(shù)據(jù)格式的協(xié)議,數(shù)據(jù)交換的協(xié)議。二實驗內(nèi)容1、利用單片機串行口,實現(xiàn)兩片單片機(主機和從機)之間的通信。2、本實驗實現(xiàn)以下功能:從主機的p1口輸入數(shù)據(jù),通過主從機的串行通信,將數(shù)據(jù)傳送到從機,再利用從機的p2口將數(shù)據(jù)送到8只發(fā)光二極管顯示。 三實驗說明mcs-5

32、1系列單片機內(nèi)部有一個可編程全雙工串行通信接口,具有uart(universal asynchronous receiver/transmitter,通用異步收發(fā)器)功能。它有四種工作方式,可由軟件設(shè)定;它的波特率也可由軟件設(shè)置片內(nèi)的定時器/計數(shù)器來進行控制。與串口相關(guān)的特殊功能寄存器主要有串口控制寄存器scon和電源控制寄存器pcon。其中需要注意的是pcon不可位尋址。51系列單片機的串口主要用來進行串口數(shù)據(jù)通信,除此以外,它還可以用來非常方便地擴展并行io口,可以擴充輸入或者輸出。本實驗就是單片機的串口在串行數(shù)據(jù)通信的一個簡單應(yīng)用。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、主機的p1口通

33、過排線接vcc或接地,從機的p2口接8只發(fā)光二極管。 3、主機的p3.0接從機的p3.1,主機的p3.1接從機的p3.0。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫兩個匯編程序,并生成對應(yīng)的hex文件。 2、使用下載線軟件將兩個hex文件下載到對應(yīng)的單片機中。 3、點擊復(fù)位按鈕,運行程序。改變主機p1口的高低電平,觀察從機發(fā)光二極管的亮滅變化。六、思考:動態(tài)顯示在程序上是如何實現(xiàn)的?實驗十一 8255 pa.pb.pc口輸出方波一實驗?zāi)康?1、掌握可編程io接口芯片8255的接口原理使用,熟悉對8255初始化編程和輸入、輸出軟件的設(shè)計方法。 2、進一步學(xué)習(xí)單片機與擴展芯片的

34、連接和使用。二實驗內(nèi)容 8255 pa.pb.pc口24根線的任意一根接發(fā)光二極管,觀察發(fā)光二極管的亮滅變化。三實驗說明 1、8255有三個并行口,既可以輸入,也可以輸出。使用時,通過寫入命令控制字到命令寄存器來設(shè)置。 2、8255芯片的功能是把一個io口擴展成3個io口。四、實驗線路圖 1、下載系統(tǒng)的連接。 2、單片機p0作為數(shù)據(jù)線直接接8255芯片的數(shù)據(jù)線,同時通過74ls573鎖存器接8255的a1、a0。 3、p2.7接8255芯片的片選端。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載線軟件將hex文件下載到單片機中。 3、點

35、擊復(fù)位按鈕,運行程序。觀察發(fā)光二極管的亮滅變化。六、思考1、8255芯片的地址如何確定?2、8255芯片命令控制字的格式如何? 實驗十二 基于掃描法的鍵盤 led顯示接口一實驗?zāi)康?1、了解行列式鍵盤的工作原理(u5模塊)。 2、進一步學(xué)習(xí)led數(shù)碼管(u6模塊)的顯示方式及工作原理。二實驗內(nèi)容 1、設(shè)計一個4*4行列式鍵盤。p1.4-p1.7作為行列式的列線,p1.0-p1.3作為行列式的行線。 2、從行列式鍵盤輸入信息,led數(shù)碼管顯示對應(yīng)按鍵鍵碼。段選碼由p2口輸出到數(shù)碼管。三實驗說明 1、本實驗的去抖動采用軟件延時法。 2、注意數(shù)碼管的共陰共陽問題及對應(yīng)的段碼表。四、實驗線路圖 1、下

36、載系統(tǒng)的連接。 2、p2口作為段選碼輸出連接到led數(shù)碼管的a-h段,對應(yīng)led數(shù)碼管的公共端接有效電平。 3、p1.4-p1.7分別接4*4鍵盤的4根列線,p1.0-p1.3接鍵盤的4根行線。 4、主電路示意圖如下: 五實驗步驟 1、使用keil軟件編寫匯編程序,并生成hex文件。 2、使用下載器將hex文件下載到單片機中。 3、點擊復(fù)位按鈕,運行程序。按下鍵盤中的任意按鈕,觀察led數(shù)碼管的顯示情況。六、思考:行列式鍵盤的工作原理? 附錄1 參考程序?qū)嶒炓?、?點亮一只發(fā)光二極管org 0000hljmp mainorg 0030hmain: mov a,#0ffhmov p1,aloop

37、: setb p1.0lcall delayclr p1.0 lcall delaysjmp loopsjmp $delay:mov r4,#10dl1: mov r5,#0aahdl2: mov r6,#40hdjnz r6,$djnz r5,dl2djnz r4,dl1retend實驗三 簡單流水燈實驗org 0000hljmp mainorg 0030hmain: mov a,#0ffhmov p1,alcall delaymov a,#0fehloop: mov p1,alcall delayrl asjmp loopsjmp $delay:mov r4,#10dl1: mov r5,

38、#0aahdl2: mov r6,#40hdjnz r6,$djnz r5,dl2djnz r4,dl1retend實驗四 p1口轉(zhuǎn)彎燈實驗(查詢法)org 0c30hpx00: mov p1,#0ffh ;初始化px03: mov a,p1 mov b,a anl a,#03h cjne a,#01h,px01 ;滿足只是p1.0為高條件嗎? jb 00h,px04 ;閃爍標志位 clr p1.4 clr p1.5 ;開右燈 setb p1.6 setb p1.7 ;關(guān)左燈 mov r2,#20h lcall dely ;延時 setb 00h ;置標志位 ljmp px03 ;繼續(xù)查狀態(tài)p

39、x04: setb p1.4 setb p1.5 setb p1.6 ;關(guān)燈 setb p1.7 mov r2,#20h lcall dely ;延時 clr 00h ;清標志位 ajmp px03 ;繼續(xù)查狀態(tài)px01: cjne a,#02h,px02 ;滿足只是p1.1為高條件嗎? jb 01h,px05 ;判標志位 setb p1.4 setb p1.5 ;開左燈 clr p1.6 clr p1.7 ;關(guān)右燈 mov r2,#20h ;延時 lcall dely setb 01h ;置標志位 ljmp px03 ;繼續(xù)查狀態(tài)px05: setb p1.4 setb p1.5 setb

40、p1.6 ;關(guān)燈 setb p1.7 mov r2,#20h lcall dely ;延時 clr 01h ;清標志位 ljmp px03 ;繼續(xù)查狀態(tài)px02: setb p1.4 setb p1.5 setb p1.6 ;關(guān)燈 setb p1.7 ljmp px03 ;繼續(xù)實驗五 p3.3輸入,p1口輸出(中斷)org 0000hljmp mainorg 0003hljmp loop1org 0020hmain: mov a,#0ffhmov p0,aclr it0setb ex0setb eaclr asjmp $loop1: inc apush acccpl amov p0,apop

41、acclcall loopretiloop:mov r2,#00hdel1:mov r3,#00hdel2:djnz r3,del2djnz r2,del1retend實驗六 led顯示器的靜態(tài)顯示實驗org 0000hljmp mainorg 0100hmain: mov a, #0ffhmov p0,amov r1,#00hmov dptr,#tab1l1: mov a, r1movc a, a+dptrmov p0,alcall delaylcall delaylcall delayinc r1cjne r1,#0ah,l1sjmp maintab1: db 0c0h,0f9h,0a4h

42、,0b0h,99hdb 92h,82h,0f8h,80h,90hdelay: mov r3,#00hdl1: mov r4,#00hdl2: djnz r4,dl2djnz r3,dl1retend實驗七 基于ls164的led串行顯示接口timer equ 30horg 0000hajmp startorg 000bhajmp intt0org 0040hstart:mov scon,#0mov a,#0fehclr timov sbuf,amov sp,#60hmov tmod,#01hmov tl0,#0mov th0,#4bhmov r0,#0mov timer,#20mov scon

43、,#0setb tr0setb et0setb easjmp $intt0: push accpush pswclr eaclr tr0mov tl0,#0mov th0,#4bhsetb tr0djnz timer,exitmov timer,#20mov dptr,#tablemov a,r0movc a,a+dptrclr ticpl amov sbuf,ainc r0cjne r0,#0ah,exitmov r0,#0exit: setb eapop pswpop accretiorg 3000htable: db 0fch,60h,0dah,0f2h,66hdb 0b6h,0beh,

44、0e0h,0feh,0f6hend實驗八 led顯示器的動態(tài)顯示實驗d0 equ 30hd1 equ 31hd2 equ 32hd3 equ 33hb1 bit 00horg 0000hmain:mov d0,#09hmov d1,#00hmov d2,#00hmov d3,#02hsetb b1lcall disp0lcall disp0lcall dely03mov d0,#06hmov d1,#00hmov d2,#05hmov d3,#00hclr b1lcall disp0lcall disp0lcall dely03ljmp maindisp0:mov r0,#0ffhdisp:

45、mov p0,#0ffhclr p2.0mov a,d0mov dptr,#tabmovc a,a+dptrmov p0,alcall dely1msclr p2.1setb p2.0mov a,d1mov dptr,#tabmovc a,a+dptrmov p0,alcall dely1msclr p2.2setb p2.1setb p2.0mov a,d2jnb b1,disp3mov dptr,#tabajmp disp2disp3:mov dptr,#tab2disp2: movc a,a+dptrmov p0,alcall dely1msclr p2.3setb p2.2setb p

46、2.1setb p2.0mov a,d3mov dptr,#tabmovc a,a+dptrmov p0,alcall dely1msmov p0,0ffhsetb p2.3djnz r0,dispretdely03: mov r0,#03h dl3:mov r1,#64h dl2:mov r2,#7dhdl1:nopnop djnz r2,dl1djnz r1,dl2djnz r0,dl3retdely1ms: push 00h ;延時子程序mov r0,#125del1: nopnopdjnz r0,del1pop 00hrettab: db 0c0h,0f9h,0a4h,0b0h,99h

47、,92h,82h,0f8h,80h,90h ;段選碼tab2:db 040h,079h,24h,30h,19h,12h,02h,78h,00h,10h;end實驗九 擴展存儲器6264讀寫實驗參考程序:org 0000hljmp mainorg 0030hmain: clr amov dptr,#0000hl1: movx dptr,ainc ainc dptrcjne a,#10h,l1l3: mov dptr,#0000hl2: movx a,dptrcpl amov p1,alcall delaylcall delaylcall delaylcall delayinc dptrcjne a,#0fh,l2sjmp l3delay: mov r2,#00hdel1: mov r3,#00hdel2: djnz r3,del2djnz r2,del1retend實驗十 雙機串行通信主機:org 0000hljmp mainorg 0030hmain:mov scon,#40hmov tmod,#20hmov pcon,#0mov th1,#0fahmov tl1,#0fahsetb tr1mov 20h,#0ffhscan:mov a,p1cjne a,20h,nextljmp scannext:mov 20h,amov sbuf,await:jbc ti,scanljm

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論