單片機(jī)原理與接口技術(shù)_第1頁
單片機(jī)原理與接口技術(shù)_第2頁
單片機(jī)原理與接口技術(shù)_第3頁
單片機(jī)原理與接口技術(shù)_第4頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書教學(xué)單位:機(jī)電工程學(xué)院課程名稱:單片機(jī)原理與接口技術(shù)面向?qū)I(yè):機(jī)械、自動(dòng)化電子科技大學(xué)中山學(xué)院2013年12月目目 錄錄第第1章章 實(shí)驗(yàn)儀功能簡介實(shí)驗(yàn)儀功能簡介 11.1 實(shí)驗(yàn)儀模塊分布圖 11.2 功能模塊簡介 21.3 常用功能模塊結(jié)構(gòu) 41.3.1 A1區(qū)MON51仿真模塊 41.3.2 D4區(qū)蜂鳴器實(shí)驗(yàn)區(qū) 41.3.3 D1區(qū)LED、撥動(dòng)開關(guān)、鍵盤實(shí)驗(yàn)區(qū) 51.3.4 C10 區(qū)步進(jìn)電機(jī)實(shí)驗(yàn)區(qū) 51.3.5 B4區(qū)并行模數(shù)轉(zhuǎn)換實(shí)驗(yàn)區(qū)61.3.6 C3區(qū)LED點(diǎn)陣實(shí)驗(yàn)?zāi)K61.3.5 B8 區(qū)直流電機(jī)實(shí)驗(yàn)區(qū) 61.4 仿真調(diào)試下載電路說明 71.4.1 DP

2、-51PRO 下載工作方式 71.4.2 DP-51PRO 運(yùn)行工作方式 7第第2章章 DP-51PRO實(shí)驗(yàn)儀與實(shí)驗(yàn)儀與KeilC51軟件的使用軟件的使用 92.1 KeilC51簡介 92.2 集成開發(fā)環(huán)境 102.3 工程(項(xiàng)目)的創(chuàng)建與處理 132.3.1 創(chuàng)建一個(gè)Keil C51工程 132.3.2 程序文件的編譯(匯編)、連接 142.4 仿真調(diào)試功能的使用 142.4.1 調(diào)試狀態(tài)的存貯器模型 152.4.2 仿真調(diào)試 152.5 脫機(jī)運(yùn)行 19第第3 3章章 實(shí)驗(yàn)部分實(shí)驗(yàn)部分 2020實(shí)驗(yàn)1 Keil C51 集成開發(fā)環(huán)境的使用練習(xí) 20實(shí)驗(yàn)2 指示燈循環(huán)控制基礎(chǔ)實(shí)驗(yàn) 25實(shí)驗(yàn)

3、3 步進(jìn)電機(jī)控制實(shí)驗(yàn) 28實(shí)驗(yàn)4 指示燈循環(huán)控制提高實(shí)驗(yàn) 31實(shí)驗(yàn)5 串口通信實(shí)驗(yàn) 34實(shí)驗(yàn)6 并行模數(shù)轉(zhuǎn)換實(shí)驗(yàn) 38實(shí)驗(yàn)7 數(shù)字溫度傳感器實(shí)驗(yàn) 42實(shí)驗(yàn) 8 點(diǎn)陣 LED 字符顯示器的設(shè)計(jì) 51第4章 課外實(shí)踐與提高基于單片機(jī)與傳感器的尋跡機(jī)器人設(shè)計(jì)與實(shí)現(xiàn) 551第1章 實(shí)驗(yàn)儀功能簡介1.11.1 實(shí)驗(yàn)儀模塊分布圖實(shí)驗(yàn)儀模塊分布圖DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀由多個(gè)相對(duì)獨(dú)立的功能模塊組成,每個(gè)功能模塊都有一個(gè)編號(hào),如C3,D8。以下是各模塊位置分布圖。 圖1.1 DP-51PRO單片機(jī)綜合仿真實(shí)驗(yàn)儀模塊分布圖21.21.2 功能模塊簡介功能模塊簡介DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)

4、儀上每個(gè)功能模塊的主要功能如下表所示。 表1.1 DP-51PRO單片機(jī)綜合仿真實(shí)驗(yàn)儀模塊功能表 編號(hào)功能塊名稱相應(yīng)區(qū)域的功能說明A1MON51MON51 仿真調(diào)試仿真調(diào)試運(yùn)行模塊運(yùn)行模塊內(nèi)帶MON51 監(jiān)控程序,支持與KEIL C51 聯(lián)機(jī)仿真調(diào)試,支持單步、斷點(diǎn)、跟蹤、運(yùn)行等方式。調(diào)試完成可直接運(yùn)行,無需仿真器和編程器。實(shí)現(xiàn)PHILIPS 單片機(jī)的64Kflash 的ISP下載編程功能。另外,RS232 串口通訊實(shí)驗(yàn)也用這個(gè)功能塊來進(jìn)行。A2總線總線I/OI/O 擴(kuò)展區(qū)擴(kuò)展區(qū)主要功能是:把單片機(jī)的各功能管腳引出來,方便用戶選擇使用各個(gè)I/O 口或單片機(jī)總線。該擴(kuò)展區(qū)還包含了一個(gè)74HC57

5、3 對(duì)單片機(jī)的P0 口進(jìn)行鎖存,并擴(kuò)展輸出A0A7 總線地址。A381558155 擴(kuò)展擴(kuò)展I/OI/O 口實(shí)驗(yàn)區(qū)口實(shí)驗(yàn)區(qū)用于進(jìn)行8155 I/O 口擴(kuò)展實(shí)驗(yàn),8155 包括256字節(jié)的靜態(tài)RAM、三個(gè)可編程選擇工作方式的并行I/O 端口(2個(gè)8 位口、一個(gè)6 位口) 、1 個(gè)14 位的可編程選擇工作方式的減法計(jì)數(shù)器。A4PARK1PARK1用于擴(kuò)展連接各種擴(kuò)展PARK模塊,包括USB1.0、CAN-bus、USB2.0、以太網(wǎng)接口等(其中USB2.0和以太網(wǎng)接口是選配擴(kuò)展PARK 模塊),來進(jìn)行相關(guān)的實(shí)驗(yàn)。它只能擴(kuò)展一個(gè)PARK模塊。A5PARK2PARK2功能同A4 區(qū),DP-51PRO

6、單片機(jī)綜合仿真實(shí)驗(yàn)儀可以同時(shí)在A4 和A5 區(qū)分別擴(kuò)展一個(gè)PARK 模塊,同時(shí)進(jìn)行兩個(gè)PARK 模塊的實(shí)驗(yàn)。比如A4 區(qū)擴(kuò)展USB1.0,A5 區(qū)擴(kuò)展CAN-bus,這樣用戶就可以進(jìn)行USB 轉(zhuǎn)CAN-bus 的橋接實(shí)驗(yàn)了。B1語音模塊語音模塊該區(qū)有一個(gè)ZLG1420A 語音模塊,還有麥克風(fēng)和揚(yáng)聲器接口,用戶可以在上面進(jìn)行語音實(shí)驗(yàn)。B2非接觸式非接觸式ICIC 卡卡讀卡模塊讀卡模塊該區(qū)有一個(gè)ZLG500A 非接觸式IC 卡讀卡模塊接口(ZLG500A模塊為選配件),和相關(guān)的天線接口(天線也是選配件),用戶可以利用該接口進(jìn)行非接觸式IC 卡的實(shí)驗(yàn),在該區(qū)還有一個(gè)時(shí)鐘源電路和12 路分頻輸出接口。

7、另外用戶還可以選擇3在B1 和B2區(qū)的擴(kuò)展孔上擴(kuò)展一個(gè)CPLD 實(shí)驗(yàn)?zāi)K,CPLD 實(shí)驗(yàn)?zāi)K包括有XILINX的XC95108模塊和ALTERA的EPM7128模塊兩種(均為選配件)以供用戶選擇,進(jìn)行CPLD 的擴(kuò)展實(shí)驗(yàn)。B3LCDLCD 模塊模塊該區(qū)包含有一個(gè)LCD 液晶模塊,用戶可以選擇12864 的點(diǎn)陣圖形液晶模塊或者162 的點(diǎn)陣字符液晶模塊B4并行并行ADAD 實(shí)驗(yàn)區(qū)實(shí)驗(yàn)區(qū)該區(qū)包含有一片8 位并行AD 轉(zhuǎn)換器ADC0809及其電路B5PWMPWM 輸出實(shí)驗(yàn)區(qū)輸出實(shí)驗(yàn)區(qū)該區(qū)把用戶提供的PWM 信號(hào)轉(zhuǎn)換成電壓輸出區(qū)B6并行并行DADA 實(shí)驗(yàn)區(qū)實(shí)驗(yàn)區(qū)該區(qū)包含有一片8 位并行DA 轉(zhuǎn)換器DA

8、C0832及其電路B7串行串行ADAD實(shí)驗(yàn)該區(qū)包含有一片8 位串行AD 轉(zhuǎn)換器TLC549 B8直流電機(jī)實(shí)驗(yàn)區(qū)直流電機(jī)實(shí)驗(yàn)區(qū)該區(qū)包含有一個(gè)可調(diào)速的直流電機(jī)及其驅(qū)動(dòng)電路C1電源輸出接口區(qū)電源輸出接口區(qū)該區(qū)包含多個(gè)+5V、12V、+12V 電源接口,方便用戶外接使用C2邏輯筆電路邏輯筆電路該區(qū)是一個(gè)檢查TTL 邏輯電平高低的邏輯筆,通過LED 顯示所檢查電路的電平高低C38888點(diǎn)陣點(diǎn)陣LEDLED模模塊塊該區(qū)包含一個(gè)88 點(diǎn)陣LED 模塊及其驅(qū)動(dòng)電路C4并轉(zhuǎn)串實(shí)驗(yàn)區(qū)并轉(zhuǎn)串實(shí)驗(yàn)區(qū)該區(qū)包含一片74LS165 并轉(zhuǎn)串芯片C5串轉(zhuǎn)并實(shí)驗(yàn)區(qū)串轉(zhuǎn)并實(shí)驗(yàn)區(qū)該區(qū)包含一片74LS164 串轉(zhuǎn)并芯片C6138138

9、 譯碼電路區(qū)譯碼電路區(qū)該區(qū)包含一片74LS138 譯碼芯片C7繼電器實(shí)驗(yàn)區(qū)繼電器實(shí)驗(yàn)區(qū)該區(qū)包含一個(gè)繼電器及其驅(qū)動(dòng)電路C8555555 實(shí)驗(yàn)區(qū)實(shí)驗(yàn)區(qū)該區(qū)包含一片555 芯片及相關(guān)的電阻、電容接口電路C9運(yùn)放實(shí)驗(yàn)區(qū)運(yùn)放實(shí)驗(yàn)區(qū)該區(qū)包含一片LM324 芯片及相關(guān)的電阻、電容接口電路C10步進(jìn)電機(jī)實(shí)驗(yàn)區(qū)步進(jìn)電機(jī)實(shí)驗(yàn)區(qū)該區(qū)包含有一個(gè)步進(jìn)電機(jī)及其驅(qū)動(dòng)電路D1I/OI/O 實(shí)驗(yàn)區(qū)實(shí)驗(yàn)區(qū)該區(qū)分別包含8 個(gè)獨(dú)立的LED 發(fā)光二極管、撥動(dòng)開關(guān)、按鍵D2可調(diào)電阻區(qū)可調(diào)電阻區(qū)該區(qū)包含一個(gè)10K 歐姆和一個(gè)1K 歐姆的可調(diào)電阻D3溫度傳感器區(qū)溫度傳感器區(qū)該區(qū)包含一片18B20 單總線(1-Wire)的數(shù)字溫度傳感器D4蜂

10、鳴器區(qū)蜂鳴器區(qū)該區(qū)包含一個(gè)交流蜂鳴器及其驅(qū)動(dòng)電路D5紅外收發(fā)區(qū)紅外收發(fā)區(qū)該區(qū)包含一個(gè)紅外發(fā)射管和一個(gè)帶解碼的紅外接收器D6RS485RS485 實(shí)驗(yàn)區(qū)實(shí)驗(yàn)區(qū)該區(qū)包含一片75176 芯片,用于RS485 的電平驅(qū)動(dòng)和接收D7I I2 2C C 實(shí)驗(yàn)區(qū)實(shí)驗(yàn)區(qū)該區(qū)包含一片24WC02 256 字節(jié)的EEPROM,一片PCF8563實(shí)時(shí)時(shí)鐘芯片及外圍電路,一片ZLG7290 鍵盤LED 驅(qū)動(dòng)芯片及8 段8 位數(shù)碼管和16 個(gè)按鍵。D8接觸式接觸式ICIC 卡實(shí)卡實(shí)該區(qū)包含一個(gè)可連接SLE4442 卡的讀卡頭。4驗(yàn)區(qū)驗(yàn)區(qū)51.31.3 常用功能模塊結(jié)構(gòu)常用功能模塊結(jié)構(gòu)1.3.11.3.1 A1A1區(qū)區(qū)M

11、ON51MON51仿真模塊仿真模塊 該區(qū)除了下載仿真功能外,還包含了RS232 實(shí)驗(yàn)的功能。電路結(jié)構(gòu)如下圖所示。 圖1.2 MON51仿真模塊電路圖短接A1 區(qū)的JP15 跳線組的1和2(出廠默認(rèn)設(shè)置),就把單片機(jī)鎖緊座的Rxd 和Txd 腳與RS232 電平轉(zhuǎn)換芯片MAX232 連接起來了。如果用戶想外接RS232 接口,可以把短路器去掉,這時(shí)JP15 的1那邊是連接到MAX232 芯片的,2那邊是連接到單片機(jī)鎖緊座的。另外A1 區(qū)J76 可通過40針排線與A2區(qū)J79 相連,把單片機(jī)功能管腳外引出去。1.3.21.3.2 D4D4 區(qū)蜂鳴器實(shí)驗(yàn)區(qū)區(qū)蜂鳴器實(shí)驗(yàn)區(qū)D4 區(qū)為蜂鳴器電路,具體結(jié)構(gòu)

12、如下圖所示。其中,J8為控制信號(hào)輸入端。圖1.3 D2區(qū)蜂鳴器驅(qū)動(dòng)電路圖61.3.31.3.3 D1D1區(qū)區(qū)LEDLED、撥動(dòng)開關(guān)、鍵盤實(shí)驗(yàn)區(qū)、撥動(dòng)開關(guān)、鍵盤實(shí)驗(yàn)區(qū)D1 區(qū)有8個(gè)獨(dú)立的LED 發(fā)光二極管、撥動(dòng)開關(guān)和按鍵,電路結(jié)構(gòu)見下圖。 圖1.4 D1區(qū)LED、撥動(dòng)開關(guān)、鍵盤實(shí)驗(yàn)電路圖 圖中J52為LED 控制接口,J54為撥動(dòng)開關(guān)輸出接口,J53為按鍵輸出接口。1.3.41.3.4 C10C10 區(qū)步進(jìn)電機(jī)實(shí)驗(yàn)區(qū)區(qū)步進(jìn)電機(jī)實(shí)驗(yàn)區(qū)C10 區(qū)上面有一個(gè)四相步進(jìn)電機(jī)及其驅(qū)動(dòng)電路,具體結(jié)構(gòu)如下圖所示。圖1.5 步進(jìn)電機(jī)驅(qū)動(dòng)電路圖 圖中J42 為步進(jìn)電機(jī)連接接口(出廠時(shí)已經(jīng)連好),J41 為控制信號(hào)輸

13、入端,JP6 為電源控制(使用前先短接,做完實(shí)驗(yàn)再斷開)。71.3.51.3.5 B4區(qū)并行模數(shù)轉(zhuǎn)換實(shí)驗(yàn)區(qū)區(qū)并行模數(shù)轉(zhuǎn)換實(shí)驗(yàn)區(qū)(ADC0809 并行AD轉(zhuǎn)換實(shí)驗(yàn)) 圖1.5 并行模數(shù)轉(zhuǎn)換電路圖1.3.61.3.6 C3區(qū)區(qū)LED點(diǎn)陣實(shí)驗(yàn)?zāi)K點(diǎn)陣實(shí)驗(yàn)?zāi)K 圖1.6 LED點(diǎn)陣及驅(qū)動(dòng)電路圖1.3.71.3.7 B8B8 區(qū)直流電機(jī)實(shí)驗(yàn)區(qū)區(qū)直流電機(jī)實(shí)驗(yàn)區(qū) 圖1.6 直流電機(jī)驅(qū)動(dòng)電路圖圖中JP18 是電源控制跳線(短接時(shí)供電),J78 為控制端,當(dāng)ZDJ_A的電平為高,ZDJ_B 為低電平則電機(jī)正轉(zhuǎn),反之則電機(jī)反轉(zhuǎn),如果兩端電平相同則電機(jī)不轉(zhuǎn)。81.41.4 仿真調(diào)試下載電路說明仿真調(diào)試下載電路說明電

14、路中相關(guān)的幾個(gè)跳線及開關(guān)分別是:開關(guān)MOD_SW1: 用于切換LOAD 模式和RUN 模式,實(shí)際就是切換引腳的高低電平。EA跳線FLASH_E: 斷開時(shí)(默認(rèn)狀態(tài))斷開時(shí)(默認(rèn)狀態(tài))用戶可把程序下載到FLASH 中,然后運(yùn)行或用MON51來調(diào)試。短接時(shí)短接時(shí)表示不使用FLASH,這時(shí)用戶可以在LOAD 模式下使用PHILIPS公司支持ISP功能的單片機(jī),進(jìn)行ISP下載和運(yùn)行,0-7FFFH 以內(nèi)的XDATA 空間開放。跳線SRAM_E: 斷開時(shí)(默認(rèn)情況)斷開時(shí)(默認(rèn)情況),用戶可以使用32k的SRAM,地址為XDATA空間8000HFFFFH。短接時(shí)短接時(shí)表示不使用SRAM,0FFFFH 以

15、內(nèi)的XDATA空間開放。1.4.11.4.1 DP-51PRODP-51PRO 下載工作方式(下載工作方式(LOAD)把撥動(dòng)開關(guān)撥到LOAD一邊就進(jìn)入下載方式,用戶可以下載程序到FLASH中(FLASH_E 斷開),也可以運(yùn)行單片機(jī)內(nèi)部的程序(FLASH_E 短接)。參見表1.2。1.4.21.4.2 DP-51PRODP-51PRO 運(yùn)行工作方式(運(yùn)行工作方式(RUN)把撥動(dòng)開關(guān)撥到RUN一邊就進(jìn)入運(yùn)行方式,用戶可以運(yùn)行下載到FLASH中的程序(FLASH_E 斷開),也可以把MON51下載到FLASH中,然后使用KEIL來調(diào)試用戶程序。在該模式下禁止FLASH_E 短接,參見表1.2。表1

16、.2 下載與運(yùn)行模式一覽表9MOD_SW1FLASH_ESRAM_E開放的外部數(shù)據(jù)空間說明*RUN斷開斷開0 x00000 x7FFF(32K)用戶可以使用MON51來調(diào)試程序,也可以運(yùn)行FLASH的程序(可以使用SRAM)*RUN斷開短接0 x00000 xFFFF(64K)運(yùn)行FLASH 的程序RUN短接斷開非法模式!,FLASH 不可用,SRAM 可用。因?yàn)镋A=0 時(shí)單片機(jī)運(yùn)行外部程序而FLASH 又被禁止了,所以非法。RUN短接短接非法模式!FLASH 不可用,SRAM 也不可用。因?yàn)镋A=0 時(shí)單片機(jī)運(yùn)行外部程序而FLASH 又被禁止了,所以非法。*LOAD斷開斷開這屬于下載模式,

17、 通過DPFLASH 把程序下載到FLASH 中LOAD斷開短接這屬于下載模式,通過RS232把程序下載到FLASH中,(雖然SRAM被禁止,實(shí)際上是可用的。不過如果MOD_SW1 切換到RUN 時(shí),SRAM 就不可用了,所以不建議使用該模式)*LOAD短接斷開0 x00000 x7FFF(32K)這時(shí),用戶可以更換已經(jīng)編有程序的單片機(jī)或使用PHILIP 的ISP 單片機(jī)。此時(shí)運(yùn)行單片機(jī)的程序(可以使用SRAM)。*LOAD短接短接0 x00000 xFFFF(64K)這時(shí),用戶可以更換已經(jīng)編有程序的單片機(jī)或使用PHILIP 的ISP 單片機(jī)。此時(shí)運(yùn)行單片機(jī)的程序。注意: 1. 帶“*”的狀態(tài)

18、是建議可使用狀態(tài)。2. 如果要進(jìn)行ISP 下載,要先把MOD_SW1 撥到LOAD 模式下,然后短接ISP跳線(JP14)。下載完畢還要斷開ISP 跳線(JP14)。10第第2 2章章 DP-51PRODP-51PRO實(shí)驗(yàn)儀與實(shí)驗(yàn)儀與KeilKeil C51C51軟件的使用軟件的使用DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀向用戶提供了豐富的外圍器件和設(shè)備接口,可使用戶快速掌握單片機(jī)原理及其實(shí)用接口技術(shù)。同時(shí),基于Keil C51 集成開發(fā)環(huán)境下的DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀具有硬件仿真的功能,用戶可以在集成開發(fā)環(huán)境下學(xué)習(xí)編寫、調(diào)試單片機(jī)程序。通過學(xué)習(xí),實(shí)驗(yàn)用戶可以掌握運(yùn)用單片機(jī)進(jìn)行項(xiàng)目

19、開發(fā)的過程、步驟和方法,積累一定的調(diào)試方法、技巧。在學(xué)習(xí)使用DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀前,用戶有必要了解Keil C51 集成開發(fā)環(huán)境。2.12.1 KeilKeil C51C51簡介簡介 Keil C51 Vision2 集成開發(fā)環(huán)境是基于80C51內(nèi)核的微處理器軟件開發(fā)平臺(tái),內(nèi)嵌多種符合當(dāng)前工業(yè)標(biāo)準(zhǔn)的開發(fā)工具,可以完成從工程建立到管理、編譯、連接、軟硬件仿真等完整的開發(fā)流程。尤其C編譯工具在產(chǎn)生代碼的準(zhǔn)確性和效率方面達(dá)到了較高的水平,而且可以附加靈活的控制選項(xiàng),在開發(fā)大型項(xiàng)目時(shí)非常理想。以下是Keil C51集成開發(fā)環(huán)境的組成部分及主要功能:Vision2 for Window

20、s:是一個(gè)集成開發(fā)環(huán)境(IDE),它將項(xiàng)目管理、源代碼編輯、編譯、連接、軟硬件仿真調(diào)試等組合在一個(gè)功能強(qiáng)大的環(huán)境中;C51國際標(biāo)準(zhǔn)化C交叉編譯器:從C源代碼產(chǎn)生可重定位的目標(biāo)代碼文件;A51宏匯編器:從80C51匯編源代碼產(chǎn)生可重定位的目標(biāo)代碼文件;BL51連接/定位器:連接由C51和A51產(chǎn)生的可重定位的目標(biāo)代碼文件,生成絕對(duì)目標(biāo)代碼文件;LIB51庫管理器:由目標(biāo)代碼文件生成連接器可以使用的庫文件;OH51轉(zhuǎn)換器:由絕對(duì)目標(biāo)代碼文件生成Intel HEX文件;RTX51實(shí)時(shí)操作系統(tǒng):簡化了復(fù)雜的實(shí)時(shí)應(yīng)用軟件項(xiàng)目的設(shè)計(jì)。注:Vision2目前已升級(jí)到Vision3。2.22.2 集成開發(fā)環(huán)境

21、集成開發(fā)環(huán)境安裝Keil C51 軟件后,點(diǎn)擊桌面Keil C51 快捷圖標(biāo)即可進(jìn)入如圖2.1所示的集成開發(fā)環(huán)境,各種調(diào)試工具、命令菜單都集成在此開發(fā)環(huán)境中。以下列出的是常用菜單項(xiàng)的主要功能及對(duì)應(yīng)的快捷鍵,工具欄上有常用菜單命令對(duì)應(yīng)的工具按鈕。11圖2.1 Vision2 操作界面(1) 文件菜單(File)File 菜單快捷鍵描述NewCtrl+N創(chuàng)建一個(gè)新的源文件或文本文件OpenCtrl+O打開已有的文件Close關(guān)閉當(dāng)前的文件SaveCtrl+S保存當(dāng)前的文件Save as保存并重新命名當(dāng)前的文件PrintCtrl+P打印當(dāng)前的文件Print Preview打印預(yù)覽Exit退出Visi

22、on2,并提示保存文件 (2) 編輯菜單 (Edit)Edit 菜單快捷鍵描述UndoCtrl+Z撤銷上一次操作RedoCtrl+Shift+Z重做上一次撤銷的命令CutCtrl+X將選中的文字剪切到剪貼板CopyCtrl+C將選中的文字復(fù)制到剪貼板PasteCtrl+V粘貼剪貼板的文字12FindCtrl+F在當(dāng)前文件中查找文字ReplaceCtrl+H替換特定的文字Find in Files在幾個(gè)文件中查找文字(3) 視圖菜單(View)View 菜單快捷鍵描述Status Bar顯示或隱藏狀態(tài)欄File Toolbar顯示或隱藏文件工具欄Build Toolbar顯示或隱藏編譯工具欄De

23、bug Toolbar顯示或隱藏調(diào)試工具欄Project Window顯示或隱藏工程窗口Output Window顯示或隱藏輸出窗口Source Browser打開源(文件)瀏覽器窗口Disassembly Window顯示或隱藏反匯編窗口Watch & Call Stack Window顯示或隱藏觀察和堆棧窗口Memory Window顯示或隱藏存儲(chǔ)器窗口Code Coverage Window顯示或隱藏代碼覆蓋窗口Performance Analyzer Window顯示或隱藏性能分析窗口Symbol Window顯示或隱藏符號(hào)變量窗口Serial Window #1顯示或隱藏串行

24、窗口1Serial Window #2顯示或隱藏串行窗口2Toolbox顯示或隱藏工具箱Periodic Window Update在運(yùn)行程序時(shí),周期刷新調(diào)試窗口Workbook Mode顯示或隱藏工作簿窗口的標(biāo)簽Options設(shè)置顏色、字體、快捷鍵和編輯器選項(xiàng) (4) 工程菜單和工程命令(Project)Project 菜單快捷鍵描述New Project創(chuàng)建一個(gè)新的工程Import Vision1 Project導(dǎo)入一個(gè)Vision1 工程文件Open Project打開一個(gè)已有的工程Close Project關(guān)閉當(dāng)前工程Select Device for Target從器件數(shù)據(jù)庫選擇一個(gè)

25、MCU型號(hào)RemoveTtem從工程中刪去一個(gè)組或文件Optionsfor target設(shè)置當(dāng)前工程的選項(xiàng)Build TargetF7對(duì)工程文件進(jìn)行編譯、連接、轉(zhuǎn)換。Rebuild All Target Files對(duì)修改過的工程文件進(jìn)行編譯、連接、轉(zhuǎn)換。13Stop Build停止當(dāng)前的編譯進(jìn)程(5) 調(diào)試菜單和調(diào)試命令(Debug)Debug 菜單快捷鍵描述Start/Stop DebuggingCtrl+F5啟動(dòng)或停止Vision2 調(diào)試模式GoF5連續(xù)運(yùn)行,直到下一個(gè)有效的斷點(diǎn)StepF11跟蹤運(yùn)行程序Step OverF10單步運(yùn)行程序Step out of current funct

26、ionCtrl+F11執(zhí)行到當(dāng)前函數(shù)的程序Stop RunningESC停止程序運(yùn)行Breakpoints打開斷點(diǎn)對(duì)話框Insert/Remove Breakpoint在當(dāng)前行設(shè)置/清除斷點(diǎn)Enable/Disable Breakpoint使能/禁止當(dāng)前行的斷點(diǎn)Disable All Breakpoints禁止程序中所有斷點(diǎn)Kill All Breakpoints清除程序中所有斷點(diǎn)Show Next Statement顯示下一條執(zhí)行的語句/指令Enable/Disable Trace Recording使能跟蹤記錄,可以顯示程序運(yùn)行軌跡View Trace Records顯示以前執(zhí)行的指令Me

27、mory Map打開存貯器空間配置對(duì)話框Performance Analyzer打開性能分析器的設(shè)置對(duì)話框Inline Assembly對(duì)某一行重新匯編,可以修改匯編代碼Function Editor編輯調(diào)試函數(shù)和調(diào)試配置文件2.32.3 工程(項(xiàng)目)的創(chuàng)建與處理工程(項(xiàng)目)的創(chuàng)建與處理2.3.12.3.1 創(chuàng)建一個(gè)創(chuàng)建一個(gè)KeilKeil C51C51工程(項(xiàng)目)工程(項(xiàng)目)在Keil C51集成開發(fā)環(huán)境下使用Project(工程,或稱項(xiàng)目)來管理程序包含的所有文件模塊,包括源程序(C程序、匯編程序)文件、頭文件甚至說明性的技術(shù)文檔。對(duì)于剛剛使用Keil C51的用戶來講,一般可以按照下面的

28、步驟來創(chuàng)建一個(gè)Keil C51工程(項(xiàng)目)。(1) 雙擊桌面的Keil C51 快捷圖標(biāo),進(jìn)入進(jìn)入Keil C51集成開發(fā)環(huán)境集成開發(fā)環(huán)境。(2) 執(zhí)行Project菜單中的New Project命令,新建一個(gè)Vision2工程。在工程保存對(duì)話框中為工程取一個(gè)名字為工程取一個(gè)名字(這里以LedFlash.V2為例),工程名應(yīng)能反映其功能且名字不宜太長(最好不超過8個(gè)西文字符),每個(gè)工程最好單獨(dú)建一個(gè)目錄每個(gè)工程最好單獨(dú)建一個(gè)目錄(文件夾)。14(3) 接下來Vision2會(huì)立即彈出一個(gè)器件選擇器件選擇窗口。器件選擇的目的是告訴Vision2最終使用的51芯片是哪一家公司的哪一種型號(hào),因?yàn)椴煌?/p>

29、號(hào)的51芯片其內(nèi)部資源不完全相同,Vision2可以根據(jù)所選器件進(jìn)行SFR的預(yù)定義,在軟硬件仿真過程中可提供相應(yīng)的外設(shè)浮動(dòng)窗口等。 (4) 到現(xiàn)在用戶已經(jīng)建立了一個(gè)空的工程項(xiàng)目,并為工程選擇好了目標(biāo)器件,但是這個(gè)工程里沒有任何程序文件。下面先用Keil C51集成開發(fā)環(huán)境自帶的編輯器創(chuàng)建一個(gè)源程序文件。執(zhí)行File菜單中的New命令,會(huì)出現(xiàn)名為Text1的新文件窗口(如果多次執(zhí)行New命令則會(huì)出現(xiàn)Text2,Text3等多個(gè)新文件窗口)。在此窗口中輸入自己的源程序并保存為LedFlash.asm。以下是LedFlash.asm源程序清單:(5) 然后再把LedFlash.asm源程序文件添加到

30、LedFlash.V2工程中。在工程管理窗口內(nèi),點(diǎn)擊展開Target1,用鼠標(biāo)右鍵單擊Source Group1,執(zhí)行快捷菜單中的Add files to Group Source Group1命令,出現(xiàn)“添加源程序文件”窗口,選擇LedFlash.asm并單擊Add按鈕即可把已經(jīng)編好的源程序文件LedFlash.asm添加到工程中。可以將多個(gè)文件加到工程中(對(duì)LedFlash.V2只需要LedFlash.asm一個(gè)源程序文件就夠了),添加完以后,按Close結(jié)束。2.3.22.3.2 程序文件的編譯(匯編)、連接程序文件的編譯(匯編)、連接(1)工程選項(xiàng)的設(shè)置(Options for Tar

31、get):用鼠標(biāo)右鍵單擊Target1,執(zhí)行快捷菜單中的Options for Target Target 1命令,出現(xiàn)如圖2.2所示的工程選項(xiàng)設(shè)置窗口,該窗口包含多組選項(xiàng)。一般情況下只需設(shè)置部分組中的部分選項(xiàng)。點(diǎn)擊Output標(biāo)簽,選中其中的”Create Hex File”,系統(tǒng)將在編譯(匯編)、15連接后自動(dòng)生成與絕對(duì)目標(biāo)代碼文件對(duì)應(yīng)的Intel HEX文件(可用于下載調(diào)試或固化)。圖2.2 Keil C51工程選項(xiàng)設(shè)置窗口還可根據(jù)需要對(duì)其它選項(xiàng)進(jìn)行相應(yīng)的設(shè)置。(2) 程序的編譯(匯編)、連接接下來就可以對(duì)程序進(jìn)行編譯(匯編)、連接處理了。執(zhí)行Project菜單中的Build Targe

32、t或Rebuild All Target Files命令可對(duì)程序進(jìn)行編譯(匯編)、連接、生成HEX文件等一系列連續(xù)操作,可以在Build 輸出窗口看到處理過程的相關(guān)信息。如果有錯(cuò)誤發(fā)生,用戶可根據(jù)系統(tǒng)提示修改程序中的語法錯(cuò)誤或環(huán)境設(shè)置方面存在的問題,直到完全正確為止。到這里,一個(gè)沒有語法錯(cuò)誤的工程項(xiàng)目算是完成了。 但是,是否完全符合設(shè)計(jì)要求、是否含有潛在的BUG,還是不敢肯定的。需要根據(jù)設(shè)計(jì)要求進(jìn)行嚴(yán)格測試,若發(fā)現(xiàn)有BUG,就要通過軟件模擬、硬件仿真等調(diào)試手段逐步查找錯(cuò)誤根源直到系統(tǒng)能可靠工作為止。2.42.4 仿真調(diào)試功能的使用仿真調(diào)試功能的使用如果源程序比較簡單,并且用戶對(duì)程序非常有把握的

33、話,就可以將上面由Build或Rebuild命令生成的HEX文件用編程器(也叫燒錄器、固化器)或下載電纜直接燒寫到目標(biāo)系統(tǒng)的單片機(jī)中并通電運(yùn)行了。對(duì)于初學(xué)者,在程序量較大或程序運(yùn)行中發(fā)現(xiàn)BUG的16情況下,應(yīng)該利用仿真器這樣的設(shè)備對(duì)程序進(jìn)行仿真調(diào)試,直到發(fā)現(xiàn)問題所在。 DP-51PRO實(shí)驗(yàn)儀既是一臺(tái)多功能通用目標(biāo)系統(tǒng)機(jī),又是一種與Keil C51配合使用的仿真器。其工作原理是讓實(shí)驗(yàn)儀上的P87C52X2單片機(jī)運(yùn)行MON51監(jiān)控程序,把用戶的應(yīng)用程序裝載到外部SRAM中,利用Keil C51集成開發(fā)環(huán)境所提供的調(diào)試命令對(duì)用戶程序進(jìn)行仿真調(diào)試。2.4.12.4.1 調(diào)試狀態(tài)的存貯器模型調(diào)試狀態(tài)的存

34、貯器模型 DP-51PRO實(shí)驗(yàn)儀處于調(diào)試狀態(tài)時(shí)將執(zhí)行MON51監(jiān)控程序,與PC機(jī)上的Keil Vision2集成開發(fā)環(huán)境配合對(duì)用戶程序進(jìn)行調(diào)試。在調(diào)試狀態(tài)下(JP13中的SRAM_E和FLASH_E兩個(gè)跳線座不能短接),DP-51PRO實(shí)驗(yàn)儀的存儲(chǔ)器模型如圖2.3所示。圖2.3 調(diào)試狀態(tài)下存儲(chǔ)空間分配圖注意:在調(diào)試狀態(tài)下,用戶的應(yīng)用程序必須從SRAM的0 x8000地址開始存放,中斷入口地址也要做相應(yīng)的調(diào)整。另外,調(diào)試狀態(tài)下,定時(shí)器T2、串行口UART已被MON51監(jiān)控程序所占用,用戶不能再使用這些資源。2.4.22.4.2 仿真調(diào)試仿真調(diào)試 DP-51PRO實(shí)驗(yàn)儀與Keil C51集成開發(fā)環(huán)

35、境聯(lián)機(jī)聯(lián)機(jī)進(jìn)行硬件仿真硬件仿真的方法如下:(1)用配套的串口通信電纜串口通信電纜將DP-51PRO實(shí)驗(yàn)儀和PC機(jī)的串口連接起來。 (2)打開打開實(shí)驗(yàn)儀的工作電源電源。 (3)將實(shí)驗(yàn)儀A1區(qū)SRAM_E和FLASH_E兩個(gè)跳線座的短路器拔走(即不短接),把MOD_SW1開關(guān)切換為LOAD模式,按一下RESET,實(shí)驗(yàn)儀即進(jìn)入等待下載狀態(tài)。(4)下載下載MON51監(jiān)控程序監(jiān)控程序:在PC機(jī)上運(yùn)行DPFlash下載軟件,該軟件的主操作界面如圖2.4所示。先要對(duì)實(shí)驗(yàn)儀型號(hào)、通信口、波特率、單片機(jī)晶振進(jìn)行正確的設(shè)置。17圖2.4 DPFlash編程界面然后在主界面中點(diǎn)擊編程命令按鈕,出現(xiàn)如圖2.5所示的編

36、程窗口,選擇”其它編程選擇”欄的”編程編程MON51”選項(xiàng),單擊編程命令按鈕即可自動(dòng)把MON51.HEX監(jiān)控程序下載到實(shí)驗(yàn)儀的Flash中。若無異常,則提示編程正常結(jié)束,此時(shí)可關(guān)閉DPFlash軟件。將A1區(qū)MOD_SW1開關(guān)切換為RUN模式,按一下RESET,MON51程序就開始運(yùn)行了,實(shí)驗(yàn)儀即進(jìn)入調(diào)試狀態(tài)。圖2.5 MON51編程界面18(5)調(diào)試選項(xiàng)的設(shè)置:用鼠標(biāo)右鍵單擊Target1,執(zhí)行快捷菜單中的Options for Target Target 1命令,出現(xiàn)如圖2.6所示的工程選項(xiàng)設(shè)置窗口。圖2.6 工程選項(xiàng)設(shè)置窗口Target選項(xiàng)的設(shè)置:選項(xiàng)的設(shè)置: DP-51PRO實(shí)驗(yàn)儀處在

37、調(diào)試狀態(tài)時(shí),MON51監(jiān)控程序?qū)⒄加?000H7FFFH之間的程序存儲(chǔ)單元,用戶程序位于8000H-BFFFH之間的SRAM單元,源程序開頭也要用ORG偽指令進(jìn)行相應(yīng)的調(diào)整。Debug調(diào)試模式的設(shè)置:調(diào)試模式的設(shè)置:在圖2.7所示的Debug調(diào)試模式設(shè)置窗口中,若選擇”Use Simulator”則是軟件模擬仿真軟件模擬仿真;而” Keil Monitor51 Driver”則是硬件仿真硬件仿真,對(duì)于DP-51PRO單片機(jī)綜合仿真實(shí)驗(yàn)儀而言應(yīng)該選擇”Keil Monitor51 Driver”。圖2.7 Debug調(diào)試模式設(shè)置19至于其它的選項(xiàng)用戶可按默認(rèn)值進(jìn)行設(shè)置或不用設(shè)置,最后點(diǎn)擊確定加以

38、確認(rèn)。(6)設(shè)置完畢執(zhí)行Rebuild all target files命令對(duì)項(xiàng)目文件進(jìn)行重新編譯(匯編)、連接。正確無誤后,就可以對(duì)程序進(jìn)行仿真調(diào)試了。 (7)執(zhí)行Debug菜單中的Start/Stop Debug Session命令可啟動(dòng)或停止用戶程序的調(diào)試,調(diào)試界面如圖2.8所示。圖2.8 調(diào)試界面在調(diào)試過程中可交替采用連續(xù)、斷點(diǎn)、單步(step into)、宏單步(step over)、到光標(biāo)所在行等運(yùn)行方式,還可以復(fù)位CPU,重新開始程序的調(diào)試。調(diào)試過程中還可通過變量窗口、內(nèi)存窗口、寄存器窗口、外設(shè)窗口動(dòng)態(tài)觀察或設(shè)置有關(guān)的變量、內(nèi)存單元、寄存器以及輸入輸出部件。同時(shí),程序中涉及到的外

39、設(shè)接口操作也可以在實(shí)驗(yàn)儀的相應(yīng)設(shè)備模塊上反映出效果來。例如,在LedFlash程序執(zhí)行過程中,可以看到實(shí)驗(yàn)儀上與單片機(jī)P1口相連的8個(gè)發(fā)光管同時(shí)點(diǎn)亮一秒鐘再同時(shí)熄滅一秒鐘,反復(fù)不斷。軟件模擬方式:軟件模擬方式:除上述聯(lián)機(jī)硬件仿真的方法,用戶也可采用不需要實(shí)驗(yàn)儀的軟件模擬方式軟件模擬方式。進(jìn)行軟件模擬只需要2.4.2節(jié)(5)-(7)這三個(gè)步驟,只需將第(5)步的工程選項(xiàng)設(shè)置中的用戶程序定位至0000H起始單元(源程序的起始定位也要做相應(yīng)調(diào)整),將DEBUG方式選為”Use Simulator”即可。因?yàn)槭擒浖M調(diào)試,程序中對(duì)外設(shè)的訪問就無法通過DP-51PRO實(shí)驗(yàn)儀來觀察運(yùn)行效果,但是Keil

40、 C51集成開發(fā)環(huán)境提供了外設(shè)窗口來模擬外設(shè)動(dòng)作,對(duì)于簡單應(yīng)用程序基本夠用了。202.52.5 脫機(jī)運(yùn)行脫機(jī)運(yùn)行經(jīng)過在Keil C51集成開發(fā)環(huán)境下的軟件模擬、或是與DP-51PRO實(shí)驗(yàn)儀聯(lián)機(jī)進(jìn)行的硬件仿真,用戶程序中的錯(cuò)誤和不足已基本上得到了糾正。但在實(shí)際的工作環(huán)境中它是否仍然符合用戶的要求呢?還需要將調(diào)試好的程序下載到樣機(jī)并脫機(jī)運(yùn)行才可以確定。DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀提供了豐富的外圍器件和設(shè)備接口,可以作為用戶的通用實(shí)驗(yàn)樣機(jī),只需把調(diào)試、仿真過的程序所對(duì)應(yīng)的HEX文件下載文件下載(編程、固化編程、固化)到到DP-51PRO實(shí)驗(yàn)儀上的單片機(jī)程序存儲(chǔ)器(ROM)中)中,系統(tǒng)復(fù)位后

41、由單片機(jī)在脫離系統(tǒng)復(fù)位后由單片機(jī)在脫離計(jì)算機(jī)的情況下全速運(yùn)行用戶程序,計(jì)算機(jī)的情況下全速運(yùn)行用戶程序,就可以檢驗(yàn)用戶程序的實(shí)際效果檢驗(yàn)用戶程序的實(shí)際效果。 在DP-51PRO實(shí)驗(yàn)儀上,脫機(jī)運(yùn)行用戶程序的主要操作步驟如下:(1) 確認(rèn)源程序文件的起始地址為0000H(如仍為ORG 8000H則應(yīng)改為ORG 0000H或是去掉ORG偽指令,因?yàn)樵闯绦虻哪J(rèn)起始地址就是0000H);(2) 在工程選項(xiàng)設(shè)置窗口中將程序存儲(chǔ)器空間起始地址改為0000H,并選中Create Hex File;(3) 用Build或Rebuild命令重新編譯連接程序,生成所需的HEX文件;(4) 用串行電纜將DP-51PR

42、O實(shí)驗(yàn)儀和PC機(jī)的串口連接起來,把實(shí)驗(yàn)儀上的MOD_SW1切換為LOAD模式,按一下RESET,運(yùn)行PC機(jī)上的DPFLASH軟件,將HEX文件下載到實(shí)驗(yàn)儀上的單片機(jī)程序存儲(chǔ)器中;(5) 把實(shí)驗(yàn)儀上的MOD_SW1切換為RUN模式,按一下RESET,DP-51PRO實(shí)驗(yàn)儀就開始全速運(yùn)行用戶程序了。21實(shí)驗(yàn)部分實(shí)驗(yàn)一 Keil 集成開發(fā)環(huán)境練習(xí)和編程調(diào)試實(shí)驗(yàn)名稱:Keil 集成開發(fā)環(huán)境練習(xí)和編程調(diào)試 學(xué)時(shí)安排:2 學(xué)時(shí)實(shí)驗(yàn)類別:綜合性 實(shí)驗(yàn)要求:必做 一、實(shí)驗(yàn)?zāi)康暮腿蝿?wù)1 熟悉Keil C51 集成開發(fā)環(huán)境的使用方法;2 熟悉Keil C51 集成開發(fā)環(huán)境仿真條件下調(diào)試功能的使用。二、實(shí)驗(yàn)原理介紹

43、Keil 集成開發(fā)環(huán)境為我們提供了強(qiáng)大的學(xué)習(xí)、調(diào)試和開發(fā)工具。我們可以利用這套工具在計(jì)算機(jī)上直接進(jìn)行匯編語言的編輯、連接和調(diào)試。在程序調(diào)試時(shí),可以通過查看相關(guān)寄存器和存儲(chǔ)器內(nèi)容來判斷程序的執(zhí)行是否正確,通過修改相關(guān)寄存器和存儲(chǔ)器的內(nèi)容來改變程序,再執(zhí)行,來修改和驗(yàn)證程序。三、實(shí)驗(yàn)設(shè)備介紹1 IBM PC 機(jī)一臺(tái)四、實(shí)驗(yàn)內(nèi)容和步驟1 編寫程序,完成內(nèi)存中兩個(gè)字節(jié)內(nèi)容的交換。 建立工程文件建立工程文件。雙擊桌面的Keil快捷圖標(biāo),進(jìn)入Keil集成開發(fā)環(huán)境。點(diǎn)擊工具欄的Project選項(xiàng),在彈出的下拉菜單中選擇New Project命令,建立一個(gè)新Vision2工程,為工程命名(如MyProject

44、-1.uv2);并選擇將要使用的器件的型號(hào)(Philips公司P80/87C52X2 CPU)。編寫程序,加入到剛才建立工程文件中編寫程序,加入到剛才建立工程文件中。在File下采用New命令以建立新文件建立新文件,單擊FileSave as,在彈出對(duì)話框的“文件名”欄編輯框中輸入欲使用的文件名和正確擴(kuò)展名(如Test1.asm),然后單擊“保存”按鈕;這樣事先保存空白待編輯文件的好處是:Keil能自動(dòng)識(shí)別關(guān)鍵字并標(biāo)注不同顏色,提高編程效率。在Project Workspace窗口內(nèi),選中Source Group1后點(diǎn)擊鼠標(biāo)右鍵,在彈出菜單中選擇Add files to Group “Sour

45、ce Group1”(向工程中添加源程序文件)命令,選擇剛創(chuàng)建的文件,單擊Add命令即可把源程序文件添加到項(xiàng)目把源程序文件添加到項(xiàng)目中。之后就可以編寫程序內(nèi)容,并注意及時(shí)保存文件。參考程序如下:22ORG0000HLJMP MAINORG 0100HMAIN: MOV SP,#60H;SP= MOV R0,#30H;R0= MOV R1,#40H;R1= MOV R0,#55H ;(30H)= MOV R1,#0AAH;(40H)= MOV A,R1 ;A= XCH A,R0 ;A= (30H)= XCH A,R1 ;A= (40H)= NOPSJMP $ ;該程序完成了 和 兩字節(jié)的內(nèi)容交換

46、。 END匯編和連接:匯編和連接:選擇Project下的Rebuild all target files 對(duì)工程文件進(jìn)行匯編和連接:如果出錯(cuò),系統(tǒng)會(huì)提示出錯(cuò)并指出出錯(cuò)地方和出錯(cuò)類型,請按照提示返回程序進(jìn)行修改,直到系統(tǒng)提示沒有錯(cuò)誤,表明程序沒有語法錯(cuò)誤,可以進(jìn)行動(dòng)態(tài)調(diào)試了。動(dòng)態(tài)調(diào)試的參數(shù)設(shè)置動(dòng)態(tài)調(diào)試的參數(shù)設(shè)置:選擇Project下的Options for target Target1進(jìn)行動(dòng)態(tài)調(diào)試的參數(shù)設(shè)置,點(diǎn)擊debug,再點(diǎn)擊 Use Simulator,最后點(diǎn)擊完成。對(duì)程序進(jìn)行動(dòng)態(tài)調(diào)試動(dòng)態(tài)調(diào)試,查看相關(guān)寄存器、內(nèi)存和外部存儲(chǔ)器的內(nèi)容。將每行程序執(zhí)行后的結(jié)果寫到該行程序的注釋部分。重要提示重

47、要提示:常用工具條命令有開始開始/暫停動(dòng)態(tài)調(diào)試暫停動(dòng)態(tài)調(diào)試,單步執(zhí)行單步執(zhí)行或,執(zhí)行到光標(biāo)處執(zhí)行到光標(biāo)處等。查看存儲(chǔ)器內(nèi)容查看存儲(chǔ)器內(nèi)容的方法:在存儲(chǔ)區(qū)地址寫上要查看的初始地址即可。比如:D:0000H可查看內(nèi)存可查看內(nèi)存RAM,X:0000H可查看外部可查看外部RAM數(shù)據(jù),數(shù)據(jù), C:0000H可查看可查看ROM程程序序。 采用堆棧法也可以完成兩字節(jié)內(nèi)容的交換。(用下述程序替代上述虛線框中黑體字程序)MOV R0,#33H; (30H)= MOV R1,#44H; (40H)= MOV A,R0; A= PUSH ACC; SP= (61H)= MOV A,R1; A= PUSH ACC;

48、SP= (62H)= NOPPOP ACC; SP= A= MOV R0,A; (30H)= 23POP ACC; SP= A= MOV R1,A; (40H)= 2 編寫一個(gè)數(shù)據(jù)填充和數(shù)據(jù)塊搬移程序數(shù)據(jù)填充和數(shù)據(jù)塊搬移程序。仿照實(shí)驗(yàn)內(nèi)容和步驟1的過程,建立、編輯、匯編、連接和動(dòng)態(tài)調(diào)試程序,查看和驗(yàn)證數(shù)據(jù)區(qū)的內(nèi)容是否正確。參考程序如下:ORG 0000HLJMP MAINORG 0100HMAIN:MOVR0,#30H; R0指向30H單元MOVR2,#16; R2作循環(huán)計(jì)數(shù)器NEXT1:MOVR0,#*; 填充當(dāng)前單元INCR0; 指針下移一個(gè)單元DJNZR2,NEXT1; 未填完16個(gè)單元

49、,返回 繼續(xù)填充;以下程序?qū)?0H開始的16個(gè)字節(jié)內(nèi)容送到0100H開始的外部存儲(chǔ)器外部存儲(chǔ)器中MOVR1,#30HMOVDPTR,#0100H ;MOV R3,#10H ; 此處R3取值的理由是: NEXT2:MOVA,R1MOVX DPTR,AINC R1INC DPTRDJNZR3,NEXT2SJMP$END五、注意事項(xiàng)和要求1、按照實(shí)驗(yàn)步驟學(xué)會(huì)建立工程文件、加入文件、編輯文件過程。2、學(xué)會(huì)動(dòng)態(tài)調(diào)試程序、查看寄存器和存儲(chǔ)器內(nèi)容。六、實(shí)驗(yàn)報(bào)告要求1、總結(jié)程序建立、編輯、匯編、連接和調(diào)試過程,對(duì)所編寫的三個(gè)程序作適當(dāng)注釋,并標(biāo)明程序執(zhí)行后相關(guān)寄存器和存儲(chǔ)器的內(nèi)容。2、查表操作實(shí)驗(yàn):在程序中建

50、一個(gè)平方表,查出R2中數(shù)據(jù)(不大于15)的平方并重新存到R2中。(選做)3、編寫主、子兩程序。子程序名 AVERAGE,入口參數(shù):內(nèi)部 RAM 中 50H59H十個(gè)單元中的數(shù)(由主程序給出);出口參數(shù):A,存放十個(gè)數(shù)的平均值。主程序負(fù)責(zé)給出24十?dāng)?shù),再把求得的平均值轉(zhuǎn)換為 ASCII 碼,存在 70H 開始的單元以備送顯。(選做)七、參考書目1林立,單片機(jī)原理及應(yīng)用-基于 Proteus 和 Keil C,北京:電子工業(yè)出版社,2013.1.2劉湘濤,江世明,單片機(jī)原理與應(yīng)用,北京:電子工業(yè)出版社,2006.7.3周立功,單片機(jī)實(shí)驗(yàn)與實(shí)踐,北京:北京航空航天大學(xué)出版社,2004.8.25實(shí)驗(yàn)二

51、 指示燈循環(huán)控制基礎(chǔ)實(shí)驗(yàn)實(shí)驗(yàn)名稱:指示燈循環(huán)控制基礎(chǔ)實(shí)驗(yàn)學(xué)時(shí)安排:2 學(xué)時(shí)實(shí)驗(yàn)類別:綜合性 實(shí)驗(yàn)要求:必做 一、實(shí)驗(yàn)?zāi)康暮腿蝿?wù)1、學(xué)會(huì)DP-51PRO實(shí)驗(yàn)儀監(jiān)控程序下載、動(dòng)態(tài)調(diào)試功能的使用;2、理解和學(xué)會(huì)單片機(jī)并口的作為通用I/O的使用;二、實(shí)驗(yàn)原理介紹走馬燈實(shí)驗(yàn)是一個(gè)硬件實(shí)驗(yàn),因此要求使用 DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀進(jìn)行硬件仿真,首先要求先進(jìn)行軟件仿真,排除軟件語法錯(cuò)誤,保證關(guān)鍵程序段的正確。然后連接仿真儀,下載監(jiān)控程序,進(jìn)行硬件仿真。原理圖如下圖示:三、實(shí)驗(yàn)設(shè)備介紹 1、IBM PC 機(jī)一臺(tái);2、DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀一臺(tái)。四、實(shí)驗(yàn)內(nèi)容和步驟 實(shí)驗(yàn)前認(rèn)真閱讀實(shí)驗(yàn)

52、指導(dǎo)書的“2.42.4 仿真調(diào)試功能的使用仿真調(diào)試功能的使用”一節(jié)。1 編寫一段程序,用P1口作為控制端口,使D1區(qū)的LED 輪流點(diǎn)亮。建立工程;編寫程序、匯編、連接、軟件仿真,基本達(dá)到功能要求。ORG 0000HLJMPMAINORG 0100HMAIN:MOV A,#0FEH;準(zhǔn)備點(diǎn)亮第一只發(fā)光管NEXT:MOV P1,AACALLDELAYRLA; 準(zhǔn)備點(diǎn)亮下一只發(fā)光管SJMPNEXT; 延時(shí)子程序DELAYDELAY:MOV R2,#5 ; 延時(shí)時(shí)間為 ?寫出計(jì)算過程。DELAY2:MOV R3,#100DELAY3:MOV R4,#10026DJNZR4,$DJNZR3,DELAY3

53、DJNZR2,DELAY2RETEND 調(diào)試成功以后,將程序中的ORG部分的偏移地址再加上8000H,重新編譯。 接線:接線:按照原理圖,將A1區(qū)P1口的引線分別連接到D1區(qū)J52上。 下載監(jiān)控程序到實(shí)驗(yàn)儀上下載監(jiān)控程序到實(shí)驗(yàn)儀上。短接A1區(qū)的JP15的TXD和RXD,連接實(shí)驗(yàn)儀串口和主機(jī)的串口;將MOD-SW1撥到LOAD一邊,F(xiàn)LASH_E和SRAM_E斷開,運(yùn)行主機(jī)上DPFLASH,下載MON51.HEX到實(shí)驗(yàn)儀上;在Keil系統(tǒng)上,完成程序的動(dòng)態(tài)調(diào)試程序的動(dòng)態(tài)調(diào)試。在主菜單DEBUG下的Options for Target Target 1,點(diǎn)擊Debug,選擇選擇UseUse Kei

54、lKeil Monitor-51Monitor-51 DriverDriver,并且設(shè)置其他參數(shù);將MOD_SW1撥到RUN一邊即可進(jìn)行動(dòng)態(tài)調(diào)試。觀察和記錄各個(gè)寄存器內(nèi)容的變化,端口P1的內(nèi)容變化,以及對(duì)應(yīng)的LED的變化。全速運(yùn)行時(shí),觀察LED的變化。2. 用C語言編寫一段程序,實(shí)現(xiàn)與上面相同功能的指示燈循環(huán)。用P1口作為控制端口,使D1區(qū)的LED 輪流點(diǎn)亮。 參考程序如下:#include #include#defineuintunsigned int#defineucharunsigned charvoiddelay_ms(uint);uchar aa;main() aa=0 xfe; w

55、hile(1) P2=aa; delay_ms(1000); aa=_crol_(aa,1); voiddelay_ms(uint x) /延時(shí)x ms子程序uinti,j;for (i=x; i0; i-)for (j=114; j0;j-);注釋并分析注釋并分析上述C語言程序。27脫機(jī)運(yùn)行脫機(jī)運(yùn)行上述程序,觀測程序功能;借助Keil軟件的“Help”功能,分析_crol_crol_()()函數(shù)的功能及作用,并指出類似功能的函數(shù);檢驗(yàn)delay_ms()子程序的延時(shí)時(shí)間。3采用數(shù)組數(shù)據(jù)法,編寫一段程序,實(shí)現(xiàn)與上面相同功能的指示燈循環(huán)。用P1 口作為控制端口,使D1 區(qū)的LED 輪流點(diǎn)亮。五、

56、注意事項(xiàng)和要求1、程序建立和軟件仿真,保證語法正確和關(guān)鍵程序段的正確;2、下載監(jiān)控程序,進(jìn)行硬件調(diào)試,注意相關(guān)硬件的連接。六、實(shí)驗(yàn)報(bào)告要求1、總結(jié)程序加載和運(yùn)行時(shí)系統(tǒng)軟硬件的設(shè)置。2、對(duì)三個(gè)走馬燈程序作出注釋,并給出實(shí)驗(yàn)結(jié)果說明。3自己設(shè)想一種由更多LED組成的花樣控制圖案,并繪出電路圖,編程實(shí)現(xiàn)。(選做)七、參考書目1林立,單片機(jī)原理及應(yīng)用-基于 Proteus 和 Keil C,北京:電子工業(yè)出版社,2013.1.請自行編制相應(yīng)的匯編或 C51 語言程序:(參考教材第四章實(shí)例 4LED 數(shù)碼管顯示)28實(shí)驗(yàn)三 步進(jìn)電機(jī)控制實(shí)驗(yàn)實(shí)驗(yàn)名稱:步進(jìn)電機(jī)控制實(shí)驗(yàn) 學(xué)時(shí)安排:2 學(xué)時(shí)實(shí)驗(yàn)類別:設(shè)計(jì)性

57、實(shí)驗(yàn)要求:選做 一、實(shí)驗(yàn)?zāi)康模毫私獠竭M(jìn)電機(jī)的工作原理。掌握它的轉(zhuǎn)動(dòng)控制方式和速度控制方式。二、實(shí)驗(yàn)原理介紹 步進(jìn)電機(jī)是一種將電脈沖轉(zhuǎn)化為角位移的執(zhí)行機(jī)構(gòu),可以通過控制脈沖個(gè)數(shù)來控制角位移量,從而達(dá)到準(zhǔn)確定位的目的;同時(shí)可以通過控制脈沖頻率來控制電機(jī)轉(zhuǎn)動(dòng)的速度和加速度,從而達(dá)到調(diào)速的目的。步進(jìn)電動(dòng)機(jī)的輸入量是脈沖序列,輸出量則為相應(yīng)的增量位移或步進(jìn)運(yùn)動(dòng)。正常運(yùn)動(dòng)情況下,它每轉(zhuǎn)一周具有固定的步數(shù);做連續(xù)步進(jìn)運(yùn)動(dòng)時(shí),其旋轉(zhuǎn)轉(zhuǎn)速與輸入脈沖的頻率保持嚴(yán)格的對(duì)應(yīng)關(guān)系,不受電壓波動(dòng)和負(fù)載變化的影響。由于步進(jìn)電動(dòng)機(jī)能直接接受數(shù)字量的控制,所以特別適宜采用單片機(jī)或微機(jī)進(jìn)行控制。三、實(shí)驗(yàn)設(shè)備及器件IBM PC 機(jī)

58、一臺(tái)DP-51PRO 單片機(jī)綜合仿真實(shí)驗(yàn)儀一臺(tái)四、實(shí)驗(yàn)內(nèi)容和步驟:步進(jìn)電機(jī)驅(qū)動(dòng)原理如下圖所示:291編寫程序,通過單片機(jī)的P1口控制步進(jìn)電機(jī)的控制端,使其按一定的控制方式進(jìn)行轉(zhuǎn)動(dòng)。參考程序如下:BA EQUP1.0BB EQUP1.1BC EQUP1.2BD EQUP1.3ORG0000HLJMPMAINORG0100HMAIN:MOVSP,#60HACALLDELAYSMRUN: ;電機(jī)控制方式為單雙八拍MOVP1,#08H;AACALLDELAYMOVP1,#0CH;ABACALLDELAYMOVP1,#04H;BACALLDELAYMOVP1,#06H;BCACALLDELAYMOVP1

59、,#02H;CACALLDELAYMOVP1,#03H;CDACALLDELAYMOVP1,#01H;DACALLDELAYMOVP1,#09H;DAACALLDELAYSJMPSMRUN;循環(huán)轉(zhuǎn)動(dòng)DELAY: MOV R4,#10 ;單步延時(shí)程序DELAY1:MOV R5,#250DJNZR5,$DJNZR4,DELAY1RETEND程序流程圖:302. 安裝C10區(qū)JP6接口上的短路帽,將C10區(qū)的J41接口與A2區(qū)J61接口的P10P13對(duì)應(yīng)相連。3. 打開仿真器,仿真編寫好的軟件程序,觀察步進(jìn)電機(jī)的轉(zhuǎn)動(dòng)情況。4. 用C語言編制步進(jìn)電機(jī)控制程序,控制電機(jī)轉(zhuǎn)動(dòng)。 參考程序如下:#inclu

60、de #define uint unsigned intunsigned char code f_rotation8= 0 x08, 0 x0C, 0 x04, 0 x06, 0 x02, 0 x03, 0 x01, 0 x09 ; /正轉(zhuǎn)表格 unsignedchar code b_rotation = ;/反轉(zhuǎn)表格 void delay_ms(uint x) /延時(shí)x ms子程序 uinti,j;for (i=x; i0; i-)for (j=114; j0;j-); main() unsigned char i; while(1) for(i=0;i8;i+) / P1=f_rotationi;

溫馨提示

  • 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)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論