單片機(jī)實(shí)驗(yàn)1(Kiel 軟件的使用和C程序調(diào)試)_第1頁(yè)
單片機(jī)實(shí)驗(yàn)1(Kiel 軟件的使用和C程序調(diào)試)_第2頁(yè)
單片機(jī)實(shí)驗(yàn)1(Kiel 軟件的使用和C程序調(diào)試)_第3頁(yè)
單片機(jī)實(shí)驗(yàn)1(Kiel 軟件的使用和C程序調(diào)試)_第4頁(yè)
單片機(jī)實(shí)驗(yàn)1(Kiel 軟件的使用和C程序調(diào)試)_第5頁(yè)
已閱讀5頁(yè),還剩13頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)單片機(jī)原理與接口技術(shù)實(shí)驗(yàn) 實(shí)驗(yàn)一:實(shí)驗(yàn)一:Kiel Kiel 軟件的使用和軟件的使用和C C程序調(diào)試程序調(diào)試一、實(shí)驗(yàn)?zāi)康模阂弧?shí)驗(yàn)?zāi)康模?1 1、通過(guò)實(shí)驗(yàn)學(xué)會(huì)用、通過(guò)實(shí)驗(yàn)學(xué)會(huì)用C C語(yǔ)言進(jìn)行程序的設(shè)計(jì)。語(yǔ)言進(jìn)行程序的設(shè)計(jì)。 2 2、學(xué)會(huì)應(yīng)用、學(xué)會(huì)應(yīng)用keil-uvisionkeil-uvision集成調(diào)試軟件對(duì)集成調(diào)試軟件對(duì)C C語(yǔ)言程語(yǔ)言程序進(jìn)行調(diào)試。掌握序進(jìn)行調(diào)試。掌握C C語(yǔ)言程序的編輯、編譯、運(yùn)行、語(yǔ)言程序的編輯、編譯、運(yùn)行、單步調(diào)試的過(guò)程和通過(guò)寄存器、存儲(chǔ)器檢查程序運(yùn)行單步調(diào)試的過(guò)程和通過(guò)寄存器、存儲(chǔ)器檢查程序運(yùn)行結(jié)果是否正確的方法。結(jié)果是否正確的方法。 二、

2、二、kerl-uvisionkerl-uvision集成調(diào)試軟件的操作集成調(diào)試軟件的操作 操作步驟:操作步驟:1、雙擊桌面上的、雙擊桌面上的UV2UV2快捷圖快捷圖 ,啟動(dòng),啟動(dòng)軟件。軟件。 2 2、點(diǎn)擊、點(diǎn)擊P P工程工程 N N新建工程新建工程 輸入文件名(如輸入文件名(如A1A1)并點(diǎn)擊保存。)并點(diǎn)擊保存。 3 3、出現(xiàn)、出現(xiàn)CPUCPU屏幕,選屏幕,選AtmelAtmel AT89C51 AT89C51 點(diǎn)確定。點(diǎn)確定。屏幕左上方出現(xiàn)圖標(biāo)目標(biāo)屏幕左上方出現(xiàn)圖標(biāo)目標(biāo)1 1。 4 4、點(diǎn)擊文件、點(diǎn)擊文件 新建文件新建文件 出現(xiàn)程序輸入?yún)^(qū)。出現(xiàn)程序輸入?yún)^(qū)。輸入輸入C C語(yǔ)言程序:語(yǔ)言程序:#

3、includevoid main(void) int x,y,sum,sub,mul,div; x=5; y=8; sum=x+y; sub=x-y; mul=x*y; div=y/x; while(1); 輸入后點(diǎn)擊文件中的保輸入后點(diǎn)擊文件中的保存,輸入程序名存,輸入程序名( (例如例如S1.C)S1.C)并選擇存入的盤(pán)并選擇存入的盤(pán)( (如如D:)D:)點(diǎn)點(diǎn)擊保存。擊保存。 程序名一般不超過(guò)程序名一般不超過(guò)6 6個(gè)個(gè)字母數(shù)字字母數(shù)字, ,以字母打頭,以字母打頭,C C語(yǔ)言要加尾綴:語(yǔ)言要加尾綴:.C.C。 如果程序已經(jīng)存在,可如果程序已經(jīng)存在,可點(diǎn)擊文件點(diǎn)擊文件 打開(kāi)文件,打開(kāi)文件,找到需

4、要選擇的文件。找到需要選擇的文件。 5 5、點(diǎn)擊(圖標(biāo))目標(biāo)、點(diǎn)擊(圖標(biāo))目標(biāo)1 1前的前的“+”+”號(hào),出現(xiàn)(號(hào),出現(xiàn)(圖標(biāo)圖標(biāo))源程序組源程序組1 1,選中并點(diǎn)右鍵,選,選中并點(diǎn)右鍵,選“文件增加到源程序組文件增加到源程序組1”1”,選擇文件類(lèi)型為,選擇文件類(lèi)型為C C,再選要輸入的程序,再選要輸入的程序 S1.CS1.C,點(diǎn),點(diǎn)ADDADD(加入),點(diǎn)確定。(加入),點(diǎn)確定。 此時(shí)點(diǎn)擊源程序組此時(shí)點(diǎn)擊源程序組1 1可以看到可以看到要輸入的程序要輸入的程序S1.CS1.C 。在對(duì)程序編譯前要進(jìn)行以下的設(shè)置:在對(duì)程序編譯前要進(jìn)行以下的設(shè)置: 1、單擊“project”(工程)菜單,在下拉菜單

5、中單擊“options for target 1”(目標(biāo) 目標(biāo)1屬性),再單擊“target”(目標(biāo)),將輸入仿真器的晶振頻率改為12.0MHz。 2、在目標(biāo) 目標(biāo)1屬性 頁(yè)面下選擇output(輸出) ,點(diǎn)擊“Create HEX file”(產(chǎn)生hex文件)的選項(xiàng),以便匯編后生成HEX代碼,供編程器使用。 3、對(duì)于軟件仿真,在目標(biāo) 目標(biāo)1屬性 頁(yè)面下點(diǎn)“Debug”(調(diào)試),再選“S 使用軟件仿真器”,同時(shí)選中“加載代碼到仿真器”和“運(yùn)行到main0”,然后點(diǎn)擊“確定”。 6 6、程序的編譯和鏈接、程序的編譯和鏈接 依次依次點(diǎn)擊屏幕上方左下角的編譯和建造目標(biāo)圖標(biāo)點(diǎn)擊屏幕上方左下角的編譯和建

6、造目標(biāo)圖標(biāo) 對(duì)文件進(jìn)行編譯和鏈接,對(duì)文件進(jìn)行編譯和鏈接,觀察左下角的調(diào)試觀察左下角的調(diào)試程序信息顯示,如有錯(cuò)可根據(jù)該欄提示的信息進(jìn)行修程序信息顯示,如有錯(cuò)可根據(jù)該欄提示的信息進(jìn)行修改,修改后要重新保存和編譯改,修改后要重新保存和編譯, ,直到無(wú)錯(cuò)誤提示。直到無(wú)錯(cuò)誤提示。 7 7、點(diǎn)擊調(diào)試圖標(biāo)、點(diǎn)擊調(diào)試圖標(biāo) ,進(jìn)入程序調(diào)試畫(huà)面,此時(shí),進(jìn)入程序調(diào)試畫(huà)面,此時(shí)黃箭頭所指是將要執(zhí)行的指令。黃箭頭所指是將要執(zhí)行的指令。 (1 1)調(diào)試界面分為)調(diào)試界面分為4 4部分:部分: 左上角為左上角為REGREG和系統(tǒng)顯示區(qū)和系統(tǒng)顯示區(qū), ,可觀察寄存器的變化;可觀察寄存器的變化; 左下角為調(diào)試程序時(shí)的信息顯示;

7、左下角為調(diào)試程序時(shí)的信息顯示; 右上角為程序編寫(xiě)和修改區(qū);右上角為程序編寫(xiě)和修改區(qū); 右下角存儲(chǔ)器的顯示區(qū)。右下角存儲(chǔ)器的顯示區(qū)。 (2 2)存儲(chǔ)區(qū)設(shè)置)存儲(chǔ)區(qū)設(shè)置: : 如果未出現(xiàn)存儲(chǔ)區(qū),設(shè)置方式如下:點(diǎn)如果未出現(xiàn)存儲(chǔ)區(qū),設(shè)置方式如下:點(diǎn)擊擊:V:V視圖視圖 M M存儲(chǔ)器窗口,右下角會(huì)出現(xiàn)存儲(chǔ)器窗口,右下角會(huì)出現(xiàn)4 4個(gè)存儲(chǔ)區(qū):存儲(chǔ)器個(gè)存儲(chǔ)區(qū):存儲(chǔ)器#1-#4#1-#4??梢愿鶕?jù)需要設(shè)置。通常設(shè)置??梢愿鶕?jù)需要設(shè)置。通常設(shè)置程序存儲(chǔ)區(qū)程序存儲(chǔ)區(qū)、內(nèi)部數(shù)據(jù)存內(nèi)部數(shù)據(jù)存儲(chǔ)區(qū)儲(chǔ)區(qū)、外部數(shù)據(jù)存儲(chǔ)區(qū)外部數(shù)據(jù)存儲(chǔ)區(qū)。 點(diǎn)擊存儲(chǔ)器點(diǎn)擊存儲(chǔ)器1#1#,在上面地址欄中輸入,在上面地址欄中輸入C:0000HC:

8、0000H,存儲(chǔ)器,存儲(chǔ)器1#1#被被設(shè)計(jì)為設(shè)計(jì)為程序存儲(chǔ)器程序存儲(chǔ)器,地址從,地址從0000H0000H開(kāi)始。開(kāi)始。 點(diǎn)擊存儲(chǔ)器點(diǎn)擊存儲(chǔ)器2#2#,在上面地址欄中輸入,在上面地址欄中輸入D:0000HD:0000H,此時(shí)存儲(chǔ)器,此時(shí)存儲(chǔ)器2#2#被設(shè)計(jì)為內(nèi)部數(shù)據(jù)存儲(chǔ)器,被設(shè)計(jì)為內(nèi)部數(shù)據(jù)存儲(chǔ)器,地址從地址從0000H0000H開(kāi)始。開(kāi)始。 點(diǎn)擊存儲(chǔ)器點(diǎn)擊存儲(chǔ)器3#3#,在上面地址欄中輸入,在上面地址欄中輸入X:0000HX:0000H,此時(shí)存儲(chǔ)器,此時(shí)存儲(chǔ)器3#3#被設(shè)計(jì)為外部數(shù)據(jù)存儲(chǔ)器,被設(shè)計(jì)為外部數(shù)據(jù)存儲(chǔ)器,地址從地址從0000H0000H開(kāi)始。開(kāi)始。 8 8、運(yùn)行程序、運(yùn)行程序 點(diǎn)擊點(diǎn)擊

9、 (左圖標(biāo))為全速運(yùn)行或停止程(左圖標(biāo))為全速運(yùn)行或停止程序運(yùn)行(右圖標(biāo));如果希望單步執(zhí)行(即一條一條的執(zhí)行指序運(yùn)行(右圖標(biāo));如果希望單步執(zhí)行(即一條一條的執(zhí)行指令,以便調(diào)試程序)可點(diǎn)擊令,以便調(diào)試程序)可點(diǎn)擊 圖標(biāo),每點(diǎn)擊一次黃箭頭會(huì)向下圖標(biāo),每點(diǎn)擊一次黃箭頭會(huì)向下移動(dòng),指向下一條指令。移動(dòng),指向下一條指令。 9 9、對(duì)、對(duì)C C語(yǔ)言程序,調(diào)試時(shí)需打開(kāi)以下窗口:語(yǔ)言程序,調(diào)試時(shí)需打開(kāi)以下窗口:(1 1)變量的查詢(xún):)變量的查詢(xún): 打開(kāi)打開(kāi)V V視圖:視圖:W W監(jiān)視監(jiān)視& &調(diào)用堆棧窗,在局部欄中或監(jiān)調(diào)用堆棧窗,在局部欄中或監(jiān)視視#1#1、2 2中觀察結(jié)果。中觀察結(jié)果。(

10、2 2)用)用scanfscanf輸入,或用輸入,或用printfprintf輸出時(shí):輸出時(shí): 打開(kāi)打開(kāi)V V視圖:串行口視圖:串行口1#1#觀察結(jié)果。觀察結(jié)果。 當(dāng)單步運(yùn)行時(shí),在當(dāng)單步運(yùn)行時(shí),在scanfscanf語(yǔ)句運(yùn)行后,在串行口語(yǔ)句運(yùn)行后,在串行口1#1#中光標(biāo)位置按輸入格式要求輸入數(shù)據(jù)后中光標(biāo)位置按輸入格式要求輸入數(shù)據(jù)后回車(chē)?;剀?chē)。(3 3)修改或停止運(yùn)行程序時(shí)再次點(diǎn)擊)修改或停止運(yùn)行程序時(shí)再次點(diǎn)擊 ,退出,退出運(yùn)行狀態(tài),可以進(jìn)行程序的修改。運(yùn)行狀態(tài),可以進(jìn)行程序的修改。 三、三、實(shí)驗(yàn)內(nèi)容實(shí)驗(yàn)內(nèi)容 熟悉熟悉Kiel CKiel C軟件界面軟件界面, ,編輯、編譯、運(yùn)行程序。編輯、編譯

11、、運(yùn)行程序。1 1、順序程序:輸入下面程序,調(diào)試并觀察運(yùn)算結(jié)果。、順序程序:輸入下面程序,調(diào)試并觀察運(yùn)算結(jié)果。#include#includevoid main(void) int x,y; SCON=0 x52; TMOD=0 x20; TH1=0 xF3; TR1=1; printf(input x,y:n); scanf(%d%d,&x,&y); printf(%X,x+y); printf(%d,x+y); while(1);2 2、分支程序、分支程序#include#include#include#includemain()main() int x,y,max; in

12、t x,y,max; SCON=0 x52; SCON=0 x52; TMOD=0 x20;TMOD=0 x20; TH1=0 xf4; TH1=0 xf4; TR1=1; TR1=1; printf(input x,y:n);printf(input x,y:n); scanf(%d %d,&x,&y); scanf(%d %d,&x,&y); if(xy) max=x; if(xy) max=x; else max=y; else max=y; printf(%dn,max); printf(%dn,max); while(1); while(1);2021-11-3 3 3、循環(huán)程序:輸入下面程序、循環(huán)程序:輸入下面程序( (有錯(cuò)誤有錯(cuò)誤) ),調(diào)試并,調(diào)試并觀察運(yùn)算結(jié)果觀察運(yùn)算結(jié)果。#include#includevoid main (void) int i;s=0; i=1; SCON=0 x52;TMOD=0 x20; TH1=0 xf3;TR1=1 while (i101); s=s+i ; i+ printf(“%dn”,s); while(1) 四、自編程序四、自編程序 編寫(xiě)編寫(xiě)C C程序,用程序,用forfor語(yǔ)句實(shí)現(xiàn)語(yǔ)句實(shí)現(xiàn)0-1000-100的求和。的求和。 要求:程序必須編譯通過(guò)并運(yùn)行正

溫馨提示

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

評(píng)論

0/150

提交評(píng)論