單片機(jī)試驗(yàn)指導(dǎo)書_第1頁
單片機(jī)試驗(yàn)指導(dǎo)書_第2頁
單片機(jī)試驗(yàn)指導(dǎo)書_第3頁
單片機(jī)試驗(yàn)指導(dǎo)書_第4頁
單片機(jī)試驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

本文格式為Word版,下載可任意編輯——單片機(jī)試驗(yàn)指導(dǎo)書

單片機(jī)試驗(yàn)指導(dǎo)書

指導(dǎo)老師:李念強(qiáng)

電子信息與通信工程系

2023-3-6

第一部分單片機(jī)下載軟件使用說明

使用AT89S5X系列單片機(jī)必需使用該下載軟件,使用STC系列單片機(jī)則不需要使用該軟件。

progisp是超強(qiáng)的AT系列芯片下載軟件,它支持所有的AVR芯片的編程,支持AT89S51/AT89S52,支持自定義并口下載編程器,支持自定義串口的下載編程器,支持USBASP編程器,支持并口的并行編程器,支持USBProg編程器,支持自定義編程芯片,支持自定義編程熔絲信息提醒信息,支持USBProg的在線升級,支持USBProg-C實(shí)現(xiàn)脫機(jī)下載,支持自定義漢化信息提醒,支持工程管理--可以將所有的配置數(shù)據(jù)與編程數(shù)據(jù)打包為單一文件。

1、如何安裝?

progisp是一個(gè)綠色軟件,直接解壓縮即可使用,進(jìn)入軟件主目錄,運(yùn)行“progisp.exe〞(將該文件設(shè)為桌面快捷方式,便利以后操作)即可運(yùn)行程序。

2、如何使用?

運(yùn)行“progisp.exe〞后,進(jìn)入以下界面:

按以下步驟進(jìn)行操作:①選擇芯片:AT89S52。

②②點(diǎn)擊“調(diào)入Flash〞,選擇要下載的HEX文件。③點(diǎn)擊“自動(dòng)〞即可完成下載。

其次部分Keil軟件使用說明

利用KeilSoftware可以開發(fā)所有8051系列單片機(jī)的嵌入式應(yīng)用。KeilSoftware的8051開發(fā)工具提供以下程序,可以用它們來編譯C源碼,匯編源程序,連接和重定位目標(biāo)文件和庫文件,創(chuàng)立HEX文件,調(diào)試目標(biāo)程序。

一、uVision2集成開發(fā)環(huán)境

uVision2IDE是一個(gè)基于Window的開發(fā)平臺,包含一個(gè)高效的編輯器,一個(gè)項(xiàng)目管理器和一個(gè)MAKE工具。

uVision2支持所有的KEIL8051工具,包括C編譯器,6過程:

?全功能的源代碼編輯器。

?器件庫用來配置開發(fā)工具設(shè)置。?項(xiàng)目管理器用來創(chuàng)立和維護(hù)項(xiàng)目o

?集成的MAKE工具可以匯編,編譯和連接嵌入式應(yīng)用。?所有開發(fā)工具的設(shè)置都是對話框形式的。

?真正的源代碼級的對CPU和外圍器件的調(diào)試器。

?高級GDI(AGDl)接口用來在目標(biāo)硬件上進(jìn)行軟件調(diào)試,以及和Monitor-51進(jìn)行通信。

?與開發(fā)工具手冊和器件數(shù)據(jù)手冊和用戶指南有直接的鏈接。

二、關(guān)于開發(fā)環(huán)境

uVision2界面提供一個(gè)菜單,一個(gè)工具條以便快速選擇命令按鈕,另外還有源代碼的顯示窗口,對話框和信息顯示。uVision2允許同時(shí)開啟瀏覽多個(gè)源文件。

1、項(xiàng)目管理

工程(project)是由源文件、開發(fā)工具選項(xiàng)以及編程說明三部分組成的。一個(gè)單一的uVision2工程能夠產(chǎn)生一個(gè)或多個(gè)目標(biāo)程序。產(chǎn)生目標(biāo)程序的源文件構(gòu)成“組〞。開發(fā)工具選項(xiàng)可以對應(yīng)目標(biāo),組或單個(gè)文件。

uVision2包含一個(gè)器件數(shù)據(jù)庫(devicedatabase),可以自動(dòng)設(shè)置匯編器、編譯器、連接定位器及調(diào)試器選項(xiàng),來滿足用戶充分利用特定微控制器的要求。此數(shù)據(jù)庫包含:片上存儲器和外圍設(shè)備的信息,擴(kuò)展數(shù)據(jù)指針(extradatapointer)或者加速器(mathaccelerator)的特性。

uVision2可以為片外存儲器產(chǎn)生必要的連接選項(xiàng):確定起始地址和規(guī)模。

2、集成功能

uVision2的強(qiáng)大功能有助于用戶按期完工。

?集成源極瀏覽器利用符號數(shù)據(jù)庫使用戶可以快速瀏覽源文件。用詳細(xì)的符號信息來

優(yōu)化用戶變數(shù)存儲器。

?文件尋覓功能:在特定文件中執(zhí)行全局文件探尋。?工具菜單:允許在V2集成開發(fā)環(huán)境下啟動(dòng)用戶功能。?可配置SVCS接口:提供對版本控制系統(tǒng)的入口。?PC-LINT接口:對應(yīng)用程序代碼進(jìn)行深層語法分析。?Infineon的EasyCase接口:集成塊集代碼產(chǎn)生。

?Infineon的DAVE功能:協(xié)助用戶的CPU和外部程序。DAVE工程可被直接輸入

uVision2。

三、編輯器和調(diào)試器

1、源代碼編輯器

uVision2編輯器包含了所有用戶熟悉的特性。彩色語法顯像和文件辯識都對C源代碼進(jìn)行和優(yōu)化??梢栽诰庉嬈鲀?nèi)調(diào)試程序,它能提供一種自然的調(diào)試環(huán)境,使你更快速地檢查和修改程序。

2、斷點(diǎn)

uVision2允許用戶在編輯時(shí)設(shè)置程序斷點(diǎn)(甚至在源代碼未經(jīng)編譯和匯編之前)。用戶啟動(dòng)V2調(diào)試器之后,斷點(diǎn)即被激活。斷點(diǎn)可設(shè)置為條件表達(dá)式,變量或存儲器訪問,斷點(diǎn)被觸發(fā)后,調(diào)試器命令或調(diào)試功能即可執(zhí)行。在屬性框(attributescolumn)中可以快速瀏覽斷點(diǎn)設(shè)置狀況和源程序行的位置。代碼覆蓋率信息可以讓你區(qū)分程序中已執(zhí)行和未執(zhí)行的部分。

3、調(diào)試函數(shù)語言

uVision2中,你可以編寫或使用類似C的數(shù)語言進(jìn)行調(diào)試。

1).內(nèi)部函數(shù):如printf,memset,rand及其它功能的函數(shù)。2).信號函數(shù):模擬產(chǎn)生CPU的模擬信號和脈沖信號。3).用戶函數(shù):擴(kuò)展指令范圍,合并重復(fù)動(dòng)作。

4、變量和存儲器

用戶可以在編輯器中選中變呈來觀測其取值。雙層窗口顯示,可進(jìn)行以下調(diào)整:1).當(dāng)前函數(shù)的局部變量

2).用戶在兩個(gè)不同watch窗口頁面上的自定義變量

3).堆棧調(diào)用(callstack)頁面上的調(diào)用記錄(樹)(calltree)4).不同格式的四個(gè)存儲區(qū)

四、創(chuàng)立應(yīng)用

如何創(chuàng)立一個(gè)新的工程?按如下步驟可建立一個(gè)新的工程1、首先開啟Keil軟件的開發(fā)環(huán)境,如下圖所示。

2、點(diǎn)擊菜單project,選擇newproject:

3、輸入工程文件的名字,選擇你要保存的路徑,譬如保存到Keil目錄里,工程文件的名字

為test,如下圖所示,然后點(diǎn)擊保存。

4、這時(shí)彈出一個(gè)對話框,要求你選擇單片機(jī)的型號,你可以根據(jù)你使用的單片機(jī)來選擇,

keilc51幾乎支持所有的51內(nèi)核的單片機(jī),例如,選擇Atmel公司的AT89C51,可以選擇ATMEL?AT89C51,然后點(diǎn)擊確定。

5、點(diǎn)擊確定后,彈出一個(gè)對話框,如下:詢問是否復(fù)制標(biāo)準(zhǔn)8051啟動(dòng)代碼并將其參與已

建工程中。按“是“,進(jìn)入下一步。

6、接下來要?jiǎng)?chuàng)立一個(gè)源程序文件,建立一個(gè)匯編或.C文件,假使你已經(jīng)有源程序文件,可

以忽略這一步,點(diǎn)擊菜單File?New:

7、輸入一個(gè)簡單的程序,如下:

8、選擇菜單File?Save

9、選擇你要保存的路徑,在文件名里輸入文件名,注意一定要輸入擴(kuò)展名,假使是C程序

文件,擴(kuò)展名為.C,假使是匯編文件,擴(kuò)展名為.asm(或.a51),假使是ini文件,擴(kuò)展名為.ini,其他文件類型,譬如注講解明文件,可以保存為.txt的擴(kuò)展名。這里將文件保存為asm結(jié)尾的源程序文件,所以擴(kuò)展名為.asm,保存為test.asm的名字,點(diǎn)擊保存。

10、點(diǎn)擊Target1前面的+號,展開里面的內(nèi)容sourceGroup1:

11、用鼠標(biāo)右鍵點(diǎn)擊SourceGroup1(注意用鼠標(biāo)右鍵),彈出一個(gè)菜單,選擇AddFilestoGroup?SourceGroup1?。選擇方才編寫的文件test.asm

假使在上述目錄下看不到該文件,文件類型選Allfiles(*.*),將顯示該目錄下的所有文件。12、點(diǎn)擊Add按鈕,將文件參與工程。

注意:在類型Type一欄,選Assemblylanguagefile。

然后,點(diǎn)擊OK按鈕,把文件參與工程。點(diǎn)擊CLOSE按鈕,關(guān)閉該對話框。出現(xiàn)如下畫面。

13、雙擊test.asm文件,可以開啟文件,程序出現(xiàn)變色顯示,說明程序已被系統(tǒng)辨識。

五、參數(shù)設(shè)置

1、接著上圖,用鼠標(biāo)右鍵點(diǎn)擊Target1,選擇OptionsforTarget?Target1?,出現(xiàn)下圖:

Xtal(Mhz):是設(shè)置單片機(jī)的工作的頻率,默認(rèn)是24.OMHZ,假使單片機(jī)的晶振用的是1l.0592Mhz,那么在框里輸入ll.0592(單位是Mhz,所以帶小數(shù)點(diǎn))。

UseOn-chipROM(0x0—0xfff):這個(gè)選項(xiàng)是使用片上的FlashRom,我們知道At89C51有4k的flashRom,取決于你的應(yīng)用系統(tǒng),你的單片機(jī)的EA接高電平的話,請選中這個(gè)選項(xiàng),假使單片機(jī)的EA接低電平,表示使用外部Rom,不要選中該項(xiàng)。我們在這里選中它。

Off-chipCodememory:表示你在片外接的Rom的開始地址和大小,假使你沒有外接程序存儲器,那么不要填任何數(shù)據(jù).我們在這里假設(shè)使用一個(gè)片外的Rom,地址從Ox8000開始(不要填成8000,假使是8000,是10進(jìn)制的數(shù),一般填16進(jìn)制的數(shù)),Size為外接Rom的大?。僭O(shè)接了一塊0x1000字節(jié)的rom。最多可以外接3塊Rom,假使還用了別的地址,就添上。

Off-ChipXdataMemory:那么可以填上你外接的Xdata(外部數(shù)據(jù)存儲器的起始地址和大小,一般的應(yīng)用是接一個(gè)62256,我們在這里特別的指定Xdata的起始地址為Ox2000,大小為Ox8000;

CodeBanking:是使用CodeBanking技術(shù).keil可以支持程序代碼超過64k的狀況,最大可以有2兆的程序代碼。假使代碼超過64k,那么就要使用CodeBanking技術(shù),以支持更多的程序空間.CodeBanking是一個(gè)高級的技術(shù),支持自動(dòng)的Bank的切換,是建立一個(gè)大型系統(tǒng)的需要,譬如要在單片機(jī)里實(shí)現(xiàn)漢字字庫,實(shí)現(xiàn)漢字輸入法,都要用到該技術(shù).我們在這里不選中它。

MemoryModel:用鼠標(biāo)點(diǎn)擊MemoryModel的下拉箭頭,會(huì)有3個(gè)選項(xiàng)。Small:變量存儲在內(nèi)部ram里.

Compact:變量存儲在外部ram里,使用頁8位間接尋址Large:變量存儲在外部Ram里,使用16位間接尋址.

一般使用Small來存儲變量,就是說單片機(jī)優(yōu)先把變量存儲在內(nèi)部ram里,假使內(nèi)部ram不夠了,才會(huì)存到外部去.Compact的方式要自己通過程序來指定頁的高位地址,編程比較繁雜,假使外部ram很少,只有256個(gè)字節(jié),那么對該256個(gè)字節(jié)的讀取就比較快,

用MO@Ri,A或MOA,@Ri指令。

假使超過256字節(jié),那么要不斷地進(jìn)行切換的話,就比較麻煩。Compact模式適用于比較少的外部ram的狀況.Large模式,是指變量會(huì)優(yōu)先分派到外部ram里,用MOA,@DPTR或MO@DPTR,A來讀?。⒁獾氖牵?種存儲方式都支持內(nèi)部256字節(jié)和外部64k字節(jié)的ram.區(qū)別是變量的優(yōu)先(或默認(rèn))存儲在哪里的區(qū)別.除非你不想把變量存儲在內(nèi)部ram,才使用后面的Compact,Large模式.由于變量存儲在內(nèi)部ram里,運(yùn)算速度比存儲在外部ram要快的多,大部分的應(yīng)用都是選擇Small的模式.使用Small的方式:也不是說變量就不可以存儲在外部,一樣可以存儲在外部,只是你要指定,譬如:unsignedcharxdataa;那么變量a就存儲在外部的ram.unsignedchara;變量存儲在內(nèi)部ram.

假使用Large的模式:

unsignedcharxdataa:那么變量a就存儲在外部的ram.unsignedchara;變量存儲在外部ram.

這就是區(qū)別,就是說這幾個(gè)選項(xiàng)只是影響沒有特別指定變量的存儲空間的時(shí)候,默認(rèn)存儲在哪里,譬如上面的變量定義unsignedchara.

那么我們最好選擇Small.

CodeRomSize:用鼠標(biāo)點(diǎn)擊下拉箭頭,將有3個(gè)選項(xiàng):

Small:program2KOrless:適用于89c2051這些芯片,2051只有2k的代碼空間,所以跳轉(zhuǎn)地址只有2k,編譯的時(shí)候會(huì)使用ACALLAJMP這些短跳轉(zhuǎn)指令,而不會(huì)使用LCALL,LJMP指令,假使你的代碼跳轉(zhuǎn)超過2k,那么會(huì)出錯(cuò)。

Compact:2kfunctions,64kprogram:表示每個(gè)子函數(shù)的程序大小不超過2k,整個(gè)工程可以有64k代碼.就是說在main()里可以使用LCALL,LJMP指令,但在子程序里只會(huì)使用ACALL,AJMP指令.除非你確認(rèn)你的每個(gè)子程序不超過2k,否則不要用Compact方式。

Large:64Kprogram:表示程序或子函數(shù)都可以大到64k.使用codebank還可以更大.尋常我們都選用該方式.CodeRomSize選擇Large方式速度不會(huì)比Small慢好多,所以一般沒有必要選擇Compact和Small的方式.這里選擇Large方式.

Operating:點(diǎn)擊下拉箭頭有3個(gè)選項(xiàng):None:表示不使用操作系統(tǒng)

RTX—51TinyReal—Time0s:表示使用Tiny操作系統(tǒng)RTX—51FullReal—Time0s:表示使用Full操作系統(tǒng)

Keilc51提供了tiny系統(tǒng)(demo版沒有tiny系統(tǒng),正版軟件才有),Tiny是一個(gè)多任務(wù)操作系統(tǒng),使用定時(shí)器0來做任務(wù)切換.一般用11.0592Mhz時(shí),切換任務(wù)的速度為30毫秒.假使有10個(gè)任務(wù)同時(shí)運(yùn)行,那么切換時(shí)間為300毫秒.同時(shí)不支持中斷系統(tǒng)的任務(wù)切換.也沒有優(yōu)先級.由于切換的時(shí)間太長,實(shí)時(shí)性大打折扣,多任務(wù)狀況下(譬如5個(gè)),輪一次就要150毫秒,150毫秒才處理一個(gè)任務(wù),連實(shí)現(xiàn)鍵盤掃描這些事情都不行.更不要說串口接收,外部中斷等.同時(shí)切換需要大約1000個(gè)機(jī)器周期,對cpu的浪費(fèi)很大,對內(nèi)部ram的占用也很厲害.實(shí)際上用到多任務(wù)操作系統(tǒng)的狀況少之又少.關(guān)鍵是不適用.多任務(wù)操作系統(tǒng)一般適合于16位,32位的cpu,不適合8位cpu.

Keil的多任務(wù)操作系統(tǒng)的思想值得學(xué)習(xí),特別是任務(wù)切換的算法,如何切換任務(wù)和保存堆棧等,有一定的研究價(jià)值.假使熟悉了其切換的方法,可以編寫更好的切換(譬如將一次切換的時(shí)間從30毫秒改為3毫秒,實(shí)用性會(huì)好一些。2、編譯輸出設(shè)置(產(chǎn)生.HEX文件)

在上圖中,點(diǎn)擊OUTPUT,彈出如下界面:

SelectFolderforObjects:為最終生成的可執(zhí)行文件,選擇文件夾。NameofExecutable:對生成的可執(zhí)行文件進(jìn)行命名。

CreateHexFile:選中小方框,編譯輸出將產(chǎn)生用于最終燒錄的Hex文件,不選中,

則不會(huì)產(chǎn)生。

六、程序調(diào)試與仿真

[程序調(diào)試]

完成以上工作后,就可以對程序進(jìn)行調(diào)試與仿真了。具體步驟如下:

1、進(jìn)行編譯,Project?BuildTarget(RebuildAllTargetFiles,工程包含文件不止一個(gè))。

2、有錯(cuò)誤出現(xiàn),在編譯窗口,對錯(cuò)誤類型和出錯(cuò)原因有詳細(xì)說明,雙擊錯(cuò)誤標(biāo)號,就會(huì)定位在程序的相應(yīng)處,修改錯(cuò)誤,保存,再進(jìn)行編譯,直到全部通過為止。

編譯完全通過后,就可以進(jìn)行功能仿真了。

[程序仿真]

1、Debug?Start/StopDebugSession

圖中,從左邊方框中可觀測程序運(yùn)行時(shí),R0—R7,A,B,SP,PC,PSW等特別功能寄放器的值,便于及時(shí)了解運(yùn)行結(jié)果的對錯(cuò)。還可以觀測內(nèi)部RAM的運(yùn)行值,例如30H,VIEW?memorywindow,在地址窗口輸入要觀測地址,內(nèi)部RAM(I:0X00—0X7F)30H單元,I:0X30H.從下圖可以看出,運(yùn)行結(jié)果為3。外部存儲器單元(X:0X000000—0X00FFFFH)。

除此之外,仿真環(huán)境還可以觀測、仿真實(shí)際外設(shè)的運(yùn)行狀況,譬如,定時(shí)/計(jì)數(shù)器,串口,P0,P1,P2,P3口,中斷等。

觀測外設(shè)窗口:點(diǎn)擊Peripherals按鈕,彈出如下菜單,包含5個(gè)功能菜單:

Interrupt:中斷設(shè)置與激活。

調(diào)試技巧:外部中斷INT0對應(yīng)于P3.2口線,因此,用鼠標(biāo)單擊PORT3窗口從右向左數(shù)第三位(P3.2口線對應(yīng)的位),每單擊兩次,觸發(fā)一次中斷,原因是外部中斷是下降沿或低電平有效的。

外部中斷INT1的試驗(yàn)方法與外部中斷INT0基本相像。

I/O-ports:包含四個(gè)端口,即P0、P1、P2、P3。

單擊PORT0,將彈出具體窗口,可以觀測運(yùn)行的結(jié)果。用鼠標(biāo)可對其進(jìn)行設(shè)置,更改運(yùn)行時(shí)的數(shù)據(jù)。

Serial:可對串口進(jìn)行設(shè)置,具體如下:

Timer:對定時(shí)器/計(jì)數(shù)器進(jìn)行設(shè)置。單擊Timer0,出現(xiàn)如下畫面。

第三部分試驗(yàn)指導(dǎo)書

試驗(yàn)1、熟悉單片機(jī)開發(fā)環(huán)境

目的:熟悉單片機(jī)的開發(fā)環(huán)境,把握把握單片機(jī)的編程和調(diào)試方法。內(nèi)容:

(1)由撥碼開關(guān)輸入開關(guān)量到單片機(jī)。單片機(jī)根據(jù)不同的開關(guān)量輸出相應(yīng)的信號,點(diǎn)亮或熄滅LED發(fā)光管。

(2)讓小燈進(jìn)行多種方式顯示。向單片機(jī)端口發(fā)送不同的數(shù)據(jù),點(diǎn)亮LED燈。所需設(shè)備:51單片機(jī)主控模塊。

51單片機(jī)LED小燈撥碼開關(guān)試驗(yàn)原理1:

試驗(yàn)步驟:

連接單片機(jī)模塊P1口與LED燈的連線,以及P2口與撥碼開關(guān)模塊的連線。將P2定義為輸入,接至撥碼開關(guān),把P2口的數(shù)據(jù)送出到P1口,用LED燈顯示。程序代碼:

ORG0000HAJMPMAINORG0040H

MAIN:MOVP2,#0FFH

MOVA,P2NOPNOP

MOVP1,ANOPNOPNOPNOPNOPNOP

AJMPMAINEND

試驗(yàn)原理2:

試驗(yàn)步驟:

連接單片機(jī)模塊P2口與LED燈的連線,控制LED燈有多種顯示方式,如:流水打燈,逐個(gè)熄滅/點(diǎn)亮,交織點(diǎn)亮/熄滅等。試驗(yàn)結(jié)果:8個(gè)LED燈依次熄滅程序代碼:流水打燈:

ORG0000H

AJMPMAINORG0040H

MAIN:??ACALLDELAY

AJMP

LOOP

R7,#0FFH;延時(shí)程序R6,#0FFH

DELAY:MOVAGAIN1:MOVAGAIN:NOPNOPDJNZDJNZRETEND

R6,AGAIN

R7,AGAIN1

試驗(yàn)2、交通燈試驗(yàn)

目的:提高學(xué)生理論聯(lián)系實(shí)際的能力,觀測實(shí)際的交通燈的工作方式,在試驗(yàn)箱上實(shí)現(xiàn)。內(nèi)容:通過端口數(shù)據(jù)的不同,控制交通燈。所需設(shè)備:51單片機(jī)主控模塊。

交通燈微動(dòng)開關(guān)試驗(yàn)原理:

試驗(yàn)步驟:P2.0、P2.1、P2.2分別對應(yīng)接到交通燈S/N方向的1、2、3控制端;P2.3、P2.4、P2.5分別對應(yīng)接到交通燈E/W方向的4、5、6控制端。(1—RED,2—YELLOW,3—GREEN,4—RED,5—YELLOW,6—GREEN)。程序代碼:

ORG0000HAJMPMAINORG0040H

MAIN:?

?AJMPMAIN

DELAY:MOVR7,#0FFH;延時(shí)程序AGAIN1:MOVR6,#0FFHAGAIN:NOPNOPDJNZR6,AGAINDJNZR7,AGAIN1RETEND

試驗(yàn)3、數(shù)字時(shí)鐘試驗(yàn)

利用CPU內(nèi)部系統(tǒng)資源,實(shí)現(xiàn)數(shù)字時(shí)鐘。

內(nèi)容:用單片機(jī)實(shí)現(xiàn)確鑿定時(shí),串行口顯示時(shí)間。所需設(shè)備:51單片機(jī)主控模塊。

8位靜態(tài)數(shù)碼管

試驗(yàn)原理:

試驗(yàn)步驟:

連接好數(shù)碼顯示模塊與單片機(jī)模塊的RXD、TXD,了解74HC164驅(qū)動(dòng)8段LED數(shù)碼管(共陽)的編碼規(guī)則,串并轉(zhuǎn)換IC74HC164管腳低電平日對應(yīng)的數(shù)碼管段顯示,從而組成不同的數(shù)字和代碼。

試驗(yàn)板上LED數(shù)碼管顯示模塊所對應(yīng)的“0—9〞的編碼為:77H、14H、0B3H、0B6H、0D4H、

0E6H、0E7H、33H、0F7H、0F4H滅:00H試驗(yàn)結(jié)果:顯示走動(dòng)的時(shí)間。

;連線:P3.0-->Data,P3.1-->CLK

程序代碼:

ORG0000HAJMPMAIN

MAIN:MOVSP,#70H

?

ACALLTimer;定時(shí)1秒子程序?ACALLBCDACALLDISPACALLDELAY?

DISP:MOVSCON,#00H;顯示子程序

MOVR0,#60HMOVR2,#08H

L00C9:MOVSBUF,@R0L00CB:JNBTI,$

CLRTIINCR0DJNZR2,L00C9

ACALLDELAYRET

BCD:MOVR0,#60H;轉(zhuǎn)換為BCD碼

MOVR2,#08H

MOV

TAB:MOV

MOVCMOVINCDJNZRET

TABL:DB

DB

DBDBDBDBDBDBDBDBDB;

DELAY:MOVAGAIN1:MOVAGAIN2:MOVAGAIN:NOP

DJNZ

DJNZDJNZRETEND

DPTR,#TABLA,@R0

A,@A+DPTR@R0,AR0

R2,TAB77H;014H;10B3H;20B6H;30D4H;40E6H;50E7H;634H;70F7H;80F4H;900H;滅R5,#0FFHR7,#0ffHR6,#01HR6,AGAIN2R7,AGAINR5,AGAIN1

試驗(yàn)4、外部中斷試驗(yàn)

目的:把握外部中斷的產(chǎn)生方式和中斷的處理過程。內(nèi)容:通過單脈沖產(chǎn)生中斷,使LED燈點(diǎn)亮。所需設(shè)備:51單片機(jī)主控模塊。

試驗(yàn)原理:

+5V微動(dòng)開關(guān)AT89S51INT0/P3.2INT1/P3.3K1K2GNDP1.0+5V

試驗(yàn)步驟:

中斷腳P3.2(INT0)或者P3.3(INT1)與按鍵模塊的按鍵連接,P1.0接到LED小燈。試驗(yàn)結(jié)果:

按K1時(shí),LED點(diǎn)亮1秒后熄滅;按K2時(shí),LED點(diǎn)亮2秒后熄滅。程序代碼:

ORG0000HAJMPMAINORG0003H;0中斷入口地址AJMPK1_1SORG0013H;1中斷入口地址AJMPK2_2SORG0033HMAIN:MOVSP,#60HMOVP1,#0FFHSETBEASETBEX1;開外中斷1SETBEX0;開外中斷0SJMP$

K1_1S:CLRP1.0acalldelay1ssetbP1.0RETI

K2_2S:CLRP1.0acalldelay1sacalldelay1ssetbP1.0

RETI

DELAY_1S:

MOVR6,#50

D1:MOVR4,#20D2:MOVR5,#248

DJNZR5,$DJNZR4,D2DJNZR6,D1RETEND

試驗(yàn)5、定時(shí)器/計(jì)數(shù)器試驗(yàn)

目的:把握單片機(jī)中斷的原理,定時(shí)器/計(jì)數(shù)器計(jì)數(shù)以及使用方法、。

內(nèi)容:通過定時(shí)器1來定時(shí)產(chǎn)生中斷控制P1.0線上的脈沖輸出,驅(qū)動(dòng)LED燈閃爍。所需設(shè)備:51單片機(jī)主控模塊。

單片機(jī)P1口LED燈

試驗(yàn)原理:

試驗(yàn)步驟:連接單片機(jī)模塊P1.0LED燈的連線。試驗(yàn)結(jié)果:LED燈閃爍。

程序代碼:

ORGAJMPORGAJMPORG

MAIN:MOV

MOVMOV

MOV

SETBSETBSETB

LL:NOPNOP

NOPNOP

AJMP

INTQR:?RETIEND

0000H

MAIN001BHINTQR001DHSP,#60HTMOD,#10HTH1,#00HTL1,#00HEAET1TR1

LL

試驗(yàn)6、頻率測量試驗(yàn)

目的:把握簡易頻率計(jì)的原理及頻率測量的方法,深入了解定時(shí)計(jì)數(shù)器的使用。

內(nèi)容:由分頻模塊引一脈沖信號到單片機(jī)引腳P3.4/T0,由單片機(jī)測量并顯示出其頻率值。所需設(shè)備:51單片機(jī)主控模塊、紅外通信/標(biāo)準(zhǔn)信號源模塊。

靜態(tài)數(shù)碼管信號源單片機(jī)P3口

試驗(yàn)原理:

利用定時(shí)/計(jì)數(shù)器T0的計(jì)數(shù)功能,記錄單片機(jī)引腳P3.4/T0上在一定時(shí)間(1s)內(nèi)的脈沖數(shù),即該脈沖的頻率,然后將其直觀的顯示在數(shù)碼管上。

P3.0/RXDP3.1/TXD靜態(tài)數(shù)碼管89S51P3.4/T0

程序代碼:MAIN:

ORGMOVSETBMOVMOVMOVSETBLCALLCLRMOVMOV??

LCALLLCALLAJMP

0000HSP,#70HP3.4

TMOD,#05HTH0,#00HTL0,#00HTR0DELAYTR030H,TL031H,TH0

BCDDISPMAIN

;雙字節(jié)二進(jìn)制數(shù)轉(zhuǎn)換成三字節(jié)bcd碼,bcd碼存于50H開始的三個(gè)單元,其中高位字節(jié)在前,二進(jìn)制數(shù)低位字節(jié)存于30H,高位存于31HDBINTBCD:MOVR1,#50HMOVR5,#03H

CLRALOOP1:MOV@R1,AINCR1DJNZR5,LOOP1MOVR7,#10HLOOP4:MOVR0,#30HMOVR6,#02HCLRCLOOP2:MOVA,@R0RLCAMOV@R0,AINCR0DJNZR6,LOOP2MOVR1,#50HMOVR5,#03HLOOP3:MOVA,@R1ADDCA,@R1DAAMOV@R1,AINCR1DJNZR5,LOOP3DJNZR7,LOOP4RET

;雙字節(jié)bcd分解成單字節(jié)bcd,R0指向帶分解的bcd數(shù)的地址,R1指向轉(zhuǎn)換后的存放單元BCDD2S:MOVA,@R0ANLA,#0FHMOV@R1,AINCR1MOVA,@R0SWAPAANLA,#0FHMOV@R1,ARET

BCD:MOVR0,#60HMOVR2,#08HBCD1:

溫馨提示

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

最新文檔

評論

0/150

提交評論