杭電單片機實驗報告一.doc_第1頁
杭電單片機實驗報告一.doc_第2頁
杭電單片機實驗報告一.doc_第3頁
免費預覽已結束,剩余1頁可下載查看

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、杭電單片機實驗報告一單片機原理與應用技術實驗報告 實驗題目:Keil軟件使用及匯編語言編程 姓名:_學號:_實驗日期:20_ 指導教師:1.Keil軟件的簡介和使用 1.1 Keil uVision4的簡介 最新的Keil uVision4 IDE,旨在提高開發(fā)人員的生產(chǎn)力,實現(xiàn)更快,更有效的程序開發(fā)。uVision4引入了靈活的窗口管理系統(tǒng),能夠拖放到視圖內的任何地方,包括支持多顯示器窗口。uVision4在Vision3 IDE的基礎上,增加了更多大眾化的功能: 多顯示器和靈活的窗口管理系統(tǒng) 系統(tǒng)瀏覽器窗口的顯示設備外設寄存器信息 調試還原視圖創(chuàng)建并保存多個調試窗口布局 多項目工作區(qū)簡化與

2、眾多的項目 1.2 Keil uVision4的使用 ,打開Keil 4應用軟件,其初始界面如下:、點擊菜單項“Project”下的“New uVisionProject”,如下圖所示。、選擇文件夾,并輸入工程名。、輸入工程名并保存后會彈出選擇芯片界面 、這里我們選擇Atmel公司的AT89S51單片機,選擇后,點擊“OK”,即創(chuàng)建完工程。、單擊點擊下圖所示圓圈圈起的部分建立一個文件。也可以點擊菜單“File”下面的“NEW”來新建一個文件。、之后輸入程序的代碼后,單擊FileSave as,根據(jù)代碼語言的格類型,可保存為后綴為.asm(匯編語言)和.c(C語言)的文件。、單擊“Target1

3、”前面的“+”號,并用鼠標右鍵點擊“SourceGroup1”,界面如圖10所示。在用鼠標左鍵點擊“Add Files to Group Source Group1”即可把剛剛的代碼文件添加到工程。最后點擊左上角的編譯按鈕即可完成編譯。之后即可進行程序的調試了。2.實驗內容 使用匯編語言完成課本P95的(2)、(5)、(8)三道題以及一個跑馬燈程序。2.1 P95-(2)設內部RAM 5AH單元中有一個變量_,請編寫計算下述函數(shù)式的程序,結果存入5BH。設計思路:顯然本題要使用分支語句,不妨使用JZ, JNB等,并通過_-10,_-15綜合判斷_處于哪個區(qū)間。代碼如下:ORG 0000H JM

4、P START ORG 1000H START: MOV A, 5AH ;直接尋址,將5AH地址上的數(shù)據(jù)_存入寄存器A MOV B, 5AH ;直接尋址,將5AH地址上的數(shù)據(jù)_再一次存入寄存器B SUBB A, #0FH ;將A中數(shù)據(jù)_先減去15,初步判斷_所屬區(qū)間 JNB ACC.7, DO3 ;若A的第7位不為1(_=15)則程序跳到DO3,否則順序執(zhí)行 MOV A, 5AH ;若_比15小,再次將_存入累加器A中 CLR C ;清零進位C SUBB A, #0AH ;將_減去10 JNB ACC.7, DO1 ;若A的第7位不為1,(_=10),跳到DO1 JMP DO2 ;剩下的情況就

5、是:_10,跳到DO2 DO1:MOV A, 5AH ;10=_=15 MUL AB ;相當于_,結果的低八位存入A ADD A, #08H ;即_+8A MOV 5BH,A ;即_+8B JMP DONE ;跳到程序結束段 DO2:MOV A,5AH ;_10 MUL AB ;_A CLR C ;進位C清零 SUBB A, #01H ; _-1A MOV 5BH,A ; _-1B JMP DONE ;跳到程序結束段 DO3:MOV A, #29H ;41A MOV 5BH, A ;41B JMP DONE ;跳到程序結束段 DONE:SJMP $ END 程序截圖:程序結果:、當_=12時,

6、Y=12_12+8=152 、當_=8時,Y=8_8-1=63 、當_=18時,Y=41 2.2 P95-(5)設有兩個長度均為15的數(shù)組,分別存放在以20_H和2100H為首的存儲區(qū)中,試編程求其對應項之和,結果存放到以220_H為首的存儲區(qū)中。設計思路:本題需要用到LOOP進行15次的求和及存放。并且由于地址過高,應采用DPTR進行訪問。代碼如下:ORG 0000H JMP START ORG 1000H START: MOV R1,#00H ;求和寄存器,初始清零 MOV R2,#0FH ;循環(huán)次數(shù)為15次 MOV DPL,#00H ;類似段內偏移地址地址 LOOP: MOV DPH,#

7、20H ;DPTR的高八位,可理解為段地址,這里先指向第一個數(shù)組的首 ;地址20_H MOV_ A,DPTR ;A(DPTR) MOV R1,A ;R1(A) INC DPH ;DPH改成指向高8位是21H的存儲區(qū) MOV_ A,DPTR ;A(DPTR) ADD A,R1 ;兩數(shù)組對應項求和 INC DPH ;DPH改成指向高8位是22H的存儲區(qū) MOV_ DPTR,A ;求和結果送入上述地址區(qū) INC DPL ;低8位地址自增 DJNZ R2,LOOP ;若循環(huán)次數(shù)-1后不為0,則跳轉到LOOP處進行循環(huán) END 程序截圖:程序結果:首先分別在20_H和2100H存入15數(shù),這里我都存入了

8、1,2,3,14,15。結果得到:2.3 P95-(8)將片外數(shù)據(jù)存儲器地址為1000H1030H的數(shù)據(jù)塊,全部搬遷到片內RAM 30H60H中,并將原數(shù)據(jù)塊區(qū)域全部清零。設計思路:顯然還是得用LOOP進行搬遷,且每搬完一個就得清零原地址數(shù)據(jù),并用DPTR訪問片外存儲器。代碼如下:ORG 0000H JMP START ORG 1000H START: MOV R1,#30 ;用R1保存循環(huán)次數(shù) 30次 MOV R0,#30H ;將地址30H存入R0中 MOV DPTR,#1000H ;將1000H這個地址存入DPTR中 LOOP: MOV_ A,DPTR ;寄存器間接尋址。A(DPTR) M

9、OV R0,A ;(R0)A CLR A ;A0 MOV_ DPTR, A ;原地址數(shù)據(jù)清零 INC R0 ;數(shù)據(jù)的寫入地址 自增 INC DPTR ;數(shù)據(jù)的讀取地址 自增 DJNZ R1,LOOP ;若循環(huán)次數(shù)-1不為0,則跳轉到LOOP處進行循環(huán) END 程序截圖:程序結果:先在片外存儲器1000H開始存入數(shù)據(jù) 接下來開始將數(shù)據(jù)搬遷到片內30H開始的區(qū)域中 且原地址數(shù)據(jù)依次被清零 2.4 P95-(8)題目:設計一個6+50=56ms跑馬燈,并在P1端口顯示。設計思路:首先我得設計一個56ms的延遲。這里已知當單片機系統(tǒng)的振蕩頻率為fosc=12MHz時,一個機器周期為1T=1us;執(zhí)行一

10、條DJNZ指令需要2個機器周期,執(zhí)行一條NOP需要一個機器周期,執(zhí)行一條MOV也是一個機器周期。接著,再通過循環(huán)左移指令RL A實現(xiàn)跑馬等效果。代碼如下:ORG 0000H JMP START ORG 0800H START:MOV A,#01H ;即將0000 0001存入A,后面會將最右邊1循環(huán)左移。SJMP DELAY ;進入延時段起點 LOOP: RL A ;從此處開始跑馬燈模塊。先將A循環(huán)左移 MOV P1,A ;將A的值賦給端口P1的8位 SJMP DELAY ;從56ms的延遲程序段再跑一遍 DELAY: MOV R7, #224 ;設置外循環(huán)次數(shù)224次 DLY1: MOV R

11、6, #123 ;設置內循環(huán)次數(shù)123次 DLY2: DJNZ R6, DLY2 NOP DJNZ R7, DLY1 ;延時程序段結束,總用時(123_2+2+1+1)T_224T+2T+1T=56ms SJMP LOOP SJMP END 程序截圖:程序結果:初始狀態(tài) 執(zhí)行一次56ms延遲后左移 再一次56ms延遲后左移 Proteus仿真截圖:3.實驗心得 通過以上4個實驗,我學會了KEIL軟件的使用,即創(chuàng)建工程,創(chuàng)建并添加項目,編譯與調試等等。更重要的是學習了很多單片機編程方面的只是。比如用匯編語言實現(xiàn)數(shù)據(jù)的傳送、運算、移位等,同時還有一些簡單的程序設計,如分支程序、循環(huán)程序等等。這些實驗使我更好的

溫馨提示

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

評論

0/150

提交評論