版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆山東省莒縣實(shí)驗(yàn)中學(xué)高三第三次測評英語試卷含解析
- 海西市重點(diǎn)中學(xué)2025屆高三下學(xué)期聯(lián)合考試數(shù)學(xué)試題含解析
- 2025屆山東省煙臺市萊州市一中高考全國統(tǒng)考預(yù)測密卷英語試卷含解析
- 云南省玉溪市富良棚中學(xué)2025屆高三適應(yīng)性調(diào)研考試數(shù)學(xué)試題含解析
- 2025屆江蘇省金陵中學(xué)高考英語倒計(jì)時(shí)模擬卷含解析
- 現(xiàn)代學(xué)徒制課題:現(xiàn)場工程師人才培養(yǎng)模式及評價(jià)標(biāo)準(zhǔn)研究(附:研究思路模板、可修改技術(shù)路線圖)
- 專題10 書面表達(dá)20篇(解析版)-2024-2025學(xué)年七年級英語上學(xué)期期末名校真題進(jìn)階練(深圳專用)
- 《認(rèn)識Linux的桌面》課件
- 江西省撫州市臨川一中2025屆高考語文全真模擬密押卷含解析
- 貴州省納雍縣第五中學(xué)2025屆高三壓軸卷數(shù)學(xué)試卷含解析
- 2023年瑞安市事業(yè)單位筆試真題
- 《項(xiàng)脊軒志》公開課課件【一等獎(jiǎng)】
- 班級工作計(jì)劃班級現(xiàn)狀分析報(bào)告
- 項(xiàng)目一-旅游概述-(旅游概論課件完美版)
- 職工食堂餐飲服務(wù)投標(biāo)方案(技術(shù)標(biāo))
- 礦場拆除施工方案
- 03 寫景散文閱讀訓(xùn)練-20232024學(xué)年七年級語文上冊知識(考點(diǎn))梳理與能力訓(xùn)練(解析)
- 移動(dòng)應(yīng)用開發(fā)職業(yè)生涯規(guī)劃書
- JGJ406T-2017預(yù)應(yīng)力混凝土管樁技術(shù)標(biāo)準(zhǔn)附條文
- 高鐵橋面防水工程施工方案
- 《安全系統(tǒng)工程》課程設(shè)計(jì)
評論
0/150
提交評論