目錄 實驗一 I/O 口輸出控制實驗 ........................................................................................ 20 實驗二 I/O 口輸入輸出控制實驗 ................................................................................ 24 實驗三 中斷程序設計練習...................................................................................... 34 實驗四 定時器、計數(shù)器實驗.......................................................................................... 32
Keil C51 集成開發(fā)環(huán)境介紹 1、打開計算機,運行Keil C51 集成開發(fā)環(huán)境。 圖1-1 第一次啟動Keil C 圖1-2 Keil C μVision2 操作界面 Keil C 軟件菜單命令非常豐富,常用的菜單命令都有對應的快捷鍵和快捷圖標,自己可以打開相應的菜單,熟悉各種命令。 2.選擇“Project”-“New Project…”建立新的工程文件(注意工程文件放置的文件夾),輸入文件名,選擇“保存”。 圖1-3 創(chuàng)建一個新工程 圖1-4 為新工程命名并保存 3.工程保存后會彈出來一個器件選擇窗口,這里需要選擇單片機芯片類型。器件選擇的目的是告訴μVision2 最終使用的80C51 芯片的型號是哪一個公司的哪一個型號,因為不同型號的51 芯片內(nèi)部的資源是不同的。 圖1-5 器件選擇窗口 如果不知道自己需要使用什么型號的芯片,暫時選擇“Atmel”下的“AT89C51”,然后在接下來的窗口中,選擇“是”,加載芯片基本參數(shù)。 圖1-6 選擇AT89C51 芯片 4.選擇“File”-“New”或者點擊新文件快捷圖標,會打開一個文本編輯器窗口。輸入下列數(shù)據(jù)傳送的程序,然后選擇“File”-“Save…”,注意保存的時候給文件起名字以后,加個文件名后綴,Keil C 支持匯編語言及C 語言編程,它是依靠文件名后綴來判斷文件是匯編語言還是C 語言格式的,如果是匯編語言,后綴為“.asm”,C 語言格式的,后綴為“.c”。我們根據(jù)實驗要求選擇保存為匯編語言格式或C 語言格式。注意此時程序中的一些代碼和寄存器將會自動藍色顯示,方便觀察。 圖1-7 創(chuàng)建一個新文件 圖1-8 輸入程序并保存文件 5.選擇“Project”-“Targets,Groups,F(xiàn)iles…”,選擇“Groups/Add Files”標簽,首先點擊下邊窗口中的“Source Group 1”,然后選擇下邊的“Add Files to Group…”,在接下來的窗口中,首先選擇你需要加入的文件的后綴名(默認是.c,我們可選擇“Asm Sourcefile,即后綴為.asm”)。 圖1-9 準備添加一個文件進入工程項目(1) 圖1-10 準備添加一個文件進入工程項目(2) 圖1-11 選擇準備添加的文件類型 然后選擇對應的文件,選擇“Add”,然后選擇“Close”,最后選擇“確定”,完成文件的添加工作。 圖1-11 選擇準備添加的文件名稱 工程項目添加結束后,可以用鼠標點擊工程項目窗口中的“+”,展開工程項目內(nèi)部的文件,從中可以看到添加進來的文件名稱。 圖1-12 添加文件結束后的工程項目 6.然后選擇“Project”-“Options for Target ‘Target1’”,對工程項目進行設置,選取其中的“Debug”標簽,選中“Use Simulator”,然后點擊“確定”,就可以使用軟件仿真了。 圖1-13 準備對工程項目進行設置 圖1-14 選取軟件仿真模式 選擇“Project”-“Build target”或者直接按下F7,對文件進行編譯。編譯的結果會出現(xiàn)在屏幕下方的輸出窗口,其中會提示編譯中出現(xiàn)的問題。如果發(fā)現(xiàn)問題,雙擊錯誤提示,光標會跳到出錯的源程序處等待修改,直至程序沒有錯誤,編譯才能通過。 圖1-15 對源程序文件編譯之后的窗口 7.按下“CTRL+F5”,進入Debug(調(diào)試)狀態(tài),在窗口的左邊會出現(xiàn)各個寄存器的狀態(tài)(內(nèi)容)。選擇“View”-“Disassembly Window”,可以打開反編譯窗口,其中顯示了源程序中每條指令在程序存儲區(qū)中的地址以及對應的機器碼。下F11 單步執(zhí)行程序,觀察寄存器狀態(tài),填寫下列表格中地址和有關單元的內(nèi)容。 圖1-16 進入Debug 狀態(tài) 圖1-17 打開反編譯窗口 圖1-18 將窗口橫向并排分割 并排分割的效果 打開存儲器觀察窗口 顯示數(shù)據(jù)存儲器內(nèi)容 顯示數(shù)據(jù)存儲器內(nèi)容 顯示程序存儲器內(nèi)容 8.對于查詢內(nèi)存地址中的數(shù)據(jù),可雙擊存儲器窗口中的address 后的文本框,并在其中輸入待查看的地址,如D:0030H,表示查看數(shù)據(jù)存儲器中30H 單元內(nèi)容,C:0030H 則表示查看程序存儲器中30H 單元內(nèi)容,X:2000H,表示查看外部存儲器2000H單元內(nèi)容。
實驗一 I/O口輸出控制實驗 一、實驗目的 1.熟悉PROTEUS單片機仿真軟件的使用。 2. 熟悉Keil C51軟件的使用 3.掌握單片機I/O口輸出的控制方法。 二、實驗設備(儀器) PC 微機一臺 三、實驗內(nèi)容 1.按照Keil C51 集成開發(fā)環(huán)境的要求,建立一段程序,然后進行編譯并進行軟件仿真。 2.輸入實驗例程,利用P1口作為輸出控制端口,控制8位LED流水閃爍。 四、實驗步驟 圖3.1實驗線路圖 1.單片機I/O 接口的原理如圖3.1所示。從圖中可以看出,當單片機P1口某位為低電平時,對應的LED會亮,反之熄滅。 2.打開Keil C51 集成開發(fā)環(huán)境,建立一個工程并輸入相應程序. 3.輸入以下程序并進行編譯、調(diào)試,觀察、分析現(xiàn)象,說明P1 口的賦值與 LED 亮滅的關系,在空白部分填加注釋。 ORG 0000H LJMP Main ORG 00F0H Main: Loop: MOV P1,#0FEH ACALL DELAY MOV P1,#0FDH ;__________________ ACALL DELAY ;__________________ MOV P1,#0FBH ACALL DELAY MOV P1,#0F7H ACALL DELAY MOV P1,#0EFH ACALL DELAY MOV P1,#0DFH ACALL DELAY MOV P1,#0BFH ACALL DELAY MOV P1,#07FH ACALL DELAY SJMP LOOP DELAY: MOV R1,#10 DEL1: MOV R2,#200 DEL2: MOV R3,#126 DEL3: DJNZ R3,DEL3 ;__________________ DJNZ R2,DEL2 DJNZ R1,DEL1 RET END 五、預習要求 1.Keil C 軟件的調(diào)試方法及相關硬件設置。 2.預習實驗例程,理解指令意義。 六、實驗報告要求 1.把程序和注釋補充完整 2.把設計的PROTEUS仿真圖,寫入實驗報告。 3.思考題:請思考并描述調(diào)試工具中單步調(diào)試、運行、步入、步出的區(qū)別。
實驗二 I/O口輸入輸出控制實驗 一、實驗目的 1.利用單片機的P1 口作I/O 口,掌握P1 口同時作為輸入和輸出的用法。 2.掌握按鍵去抖動的方法。 3.掌握條件轉(zhuǎn)移指令的用法。 二、實驗設備(儀器) PC 微機一臺 三、實驗內(nèi)容 1.輸入實驗例程,進行仿真調(diào)試完成下述功能:P1.0-P1.6作為輸出,控制7位LED。P1.7 口作為輸入,當P1.7按下時,P1.0-P1.6控制的LED亮;當P1.7沒有按下時,P1.0-P1.6控制的LED 滅。 四、實驗步驟 1.原理圖如圖4.2所示。 圖4.2 原理圖 2.打開Keil C51 集成開發(fā)環(huán)境,對以下程序補充并進行調(diào)試,填加注釋。 ORG 0000H LJMP Main ORG 0100H Main: SETB P1.7 ;_____________________ JB ___ , SETLED ;按鍵沒有按下時,跳轉(zhuǎn)到SETLED CLRLED: MOV R0,#0FFH DJNZ R0,$ ;______________________ JB P1.7,SETLED CLR P1.0 CLR P1.1 CLR P1.2 ;_______________________ CLR P1.3 CLR P1.4 CLR P1.5 CLR P1.6 SJMP Main SETLED: MOV P1,______ ;令LED 熄滅 ______ ________ ;跳轉(zhuǎn)主程序 END 五、預習要求 1.例程分析補充。 2.完成預習報告。 六、實驗報告要求 1.把程序和注釋補充完整 2.把設計的PROTEUS仿真圖,寫入實驗報告。 3.思考題:什么是按鍵去抖,為什么按鍵程序需要進行去抖動處理,一般按 鍵去抖的硬件處理方法和軟件處理方法分別是怎樣的。
實驗三 中斷程序設計練習 一、實驗目的 1.學習并掌握外中斷的使用。 2.學習中斷處理程序的編程方法。 二、實驗設備 PC 微機一臺 三、實驗內(nèi)容 1.使用單脈沖作中斷源,每按一次按鈕,點亮的發(fā)光二極管向右移動一位 四、實驗步驟 1.本實驗電路如下所示。 2.輸入以下程序并進行調(diào)試運行。 ORG 0000H LJMP START ORG 0013H LJMP INTT ;INT1 入口地址 ORG 3000H START: MOV SP,#60H MOV A,#0FEH SETB IT1 ;_______________ MOV IE,_______ ;外中斷1 允許,總中斷允許 MOV P1,#0FFH HERE: NOP SJMP HERE INTT: MOV P1,A RL A RETI ;________________________ END 五、預習要求 1.中斷控制寄存器的定義。 2.外中斷的初始化過程,入口地址等相關知識。 3.熟悉并分析實驗例程。 4.完成預習報告。 六、實驗報告要求 1.把程序和注釋補充完整 2.把設計的PROTEUS仿真圖,寫入實驗報告。 6.思考題: 單片機外中斷兩種觸發(fā)方式的區(qū)別,各適用于何種情況。
實驗四 定時器、計數(shù)器實驗 一、實驗目的 1.學習并掌握單片機定時器中斷的使用。 2.掌握定時器中斷溢出時間的計算。 3.了解單片機定時器各工作模式的區(qū)別。 二、實驗設備(儀器) PC 微機一臺 三、實驗內(nèi)容 連線并編制程序。使用定時器1中斷,按方式1工作,將LED燈循環(huán)點亮。 1.定時器/計數(shù)器的輸入脈沖周期與機器周期一樣,為振蕩器頻率的1/2。本實驗中時鐘頻率為12M,現(xiàn)要采用中斷方法來實現(xiàn)1秒延時,要在定時器1中設置一個時間常數(shù),使其每隔0.05 秒產(chǎn)生一次中斷,CPU響應中斷后R0中計數(shù)值減一,令(R0)=14H,即可實現(xiàn)1 秒的延時。 時間常數(shù)可按下法確定: 機器周期=12/晶振頻率=12/12=1uS 定時器需設初值為X,則(2^16﹣X)*1=50000uS 求出X=15536 轉(zhuǎn)化為十六進制:X=3CB0H,故初始值為:TH1=3CH,TL1=B0H 2.初始化程序 包括定時器初始化和中斷系統(tǒng)初始化。主要對IP,IE,TCON,TMOD 的相應位進行正確的設置,并將時間常數(shù)送入定時器中。由于只有定時器中斷,IP不必設置。 注意一點:定時器1 初始化時建議用如下的指令: ANL TMOD,#0FH ORL TMOD,#10H 3.設計中斷服務程序和主程序 中斷服務程序除了要完成計數(shù)減一工作外,還要將時間常數(shù)重新送入定時器中, 為下一次中斷做準備。主程序則用來控制發(fā)光二極管按要求順序亮滅。程序的流程圖 如下: 四、實驗步驟 1.本實驗電路如下所示。 2.輸入以下程序并進行調(diào)試運行。 ORG 0000H AJMP START ORG 001BH AJMP TIME ORG 0030H START:MOV IE,#00H MOV SP,#60H MOV P1,#0FFH MOV R0,#0FEH MOV R1,#14H ANL TMOD,#0FH ORL TMOD,#10H MOV TH1,#3CH MOV TL1,#0B0H ORL IE,#88H ;__________________ _____ TR1 ;啟動定時器一 LOOP:CJNE R1,#00H, DISP MOV R1,#14H MOV A,R0 _____ A ;數(shù)據(jù)左移 MOV R0,A DISP: MOV ____,R0 ;輸出LED 顯示 AJMP LOOP 定時中斷 TIME: CLR TR1 ;___________________ DEC R1 MOV TH1,#3CH MOV TL1,#0B0H SETB TR1 RETI ;__________________ END 五、預習要求 1.預習單片機定時器的工作方式及中斷處理方法。 2.掌握定時器初始化方法。 3.預習實驗例程。 4.完成預習報告。 六、實驗報告要求 1.把程序和注釋補充完整 2.把設計的PROTEUS仿真圖,寫入實驗報告。 3.思考題: 簡述單片機定時器的幾種方式的區(qū)別,利用內(nèi)部定時器實現(xiàn)延時 與利用實驗三中的軟件延時有什么區(qū)別。
完整的Word格式文檔51黑下載地址: |