單晶片MCS-51 C語言入門實習 第2章 KEIL-51工具軟體 作者:董勝源
2-1 μVision2基礎操作 圖2-1 μVision2整體操作步驟 2-4頁
2-1.1 如何進入µVision2軟體 各家公司8051暫存器名稱定義資料夾 C語言函數檔 ACER <DIR> DALLAS <DIR> STDARG. H ABSACC.H ADI <DIR> INFINEON <DIR> STDDEF. H ASSERT.H AMD <DIR> INTEL <DIR> STDIO.H CTYPE.H ATMEL <DIR> MAXIM <DIR> STDLIB.H ERRNO.H ATMELWM <DIR> OKI <DIR> STRING.H FLOAT.H CYBERNETICS <DIR> PHILIPS <DIR> INTRINS.H CYGNAL <DIR> TEMIC <DIR> RTX51TNY.H LIMITS.H CYPRESS <DIR> TRISCEND <DIR> REG51.H MATH.H WINBOND <DIR> REG52.H SETJMP.H 2-6頁
2-1.1 如何進入µVision2軟體 BL51_EX1 .UV2 專案檔 C_ROOT.C C語言主程式 BL51_EX1 .OBJ 程式目的檔 C_BANK0.C C語言函數程式 BL51_EX1 .LST 程式列表檔 C_BANK1.C BL51_EX1 .HEX 程式執行檔(16進制) C_BANK2.C L51_BANK.A51 組合語言程式 2-7頁
2-1.1 如何進入µVision2軟體 資料夾 CH2~CH12各章的範例程式 ***.UV2 專案檔 ***.C C語言主程式 ***.OBJ 程式目的檔 ***.LST 程式列表檔 ***.HEX 程式執行檔(16進制) ***.M51 記憶分配檔 硬體模擬 SIM51軟體模擬 DOWNLOAD.BAT 硬體模擬批次檔 SIM51.EXE 軟體模擬程式 HEXBIN.EXE HEX檔轉為二進制檔 2-7頁
2-1.1 如何進入µVision2軟體 圖2-2(a) µVision操作畫面 2-8頁 (程式視窗) (Debug工具列) (命令列) (輸出視窗-顯示程式編譯及連結動作) (Edit工具列) (開啟Debug) (專案視窗) (檔案管理) (Build工具列) 圖2-2(a) µVision操作畫面 2-8頁
2-1.1 如何進入µVision2軟體 圖2-2(b) 專案(Project)視窗 2-8頁
2-1.1 如何進入µVision2軟體 圖2-2(c) Debug操作畫面 2-9頁 (程式視窗) (Debug工具列) (命令列) (Edit工具列) (觀察視窗) (串列埠視窗) (輸出視窗) (專案視窗) (記憶視窗) (週邊視窗) (進入µVision) 圖2-2(c) Debug操作畫面 2-9頁
2-1.2 µVision2基本操作 (命令訊息:建立新檔) (游標位置) (輸出視窗) 圖2-3(a) 建立新檔案 2-10頁
2-1.2 µVision2基本操作 圖2-3(b) 存入C程式檔名 2-11頁
2-1.2 µVision2基本操作 圖2-4(a) 建立新的專案 2-12頁
2-1.2 µVision2基本操作 (Atmel 89C51資料庫) 圖2-4(b) 選擇CPU的廠牌及型號 2-13頁
2-1.2 µVision2基本操作 圖2-5(a) 建立Target1目標模組 2-14頁 (選擇CPU) (點左鍵出現群組) (點右鍵模組設定) (模組選項) (編譯 / 連結模組) (增 / 刪模組、群組及檔案) 圖2-5(a) 建立Target1目標模組 2-14頁
2-1.2 µVision2基本操作 圖2-5(b) 建立Source Group1程式群組 2-15頁 (點左鍵隱藏群組) (群組選項) (編輯 / 連結模組) (加入程式檔案) (點右鍵群組設定) (增 / 刪模組、群組及檔案) (刪除群組及檔案) 圖2-5(b) 建立Source Group1程式群組 2-15頁
2-1.2 µVision2基本操作 (點右鍵群組設定) (加入程式檔案到群組) 圖2-5(c) 程式加入到群組內 2-16頁
2-1.2 µVision2基本操作 圖2-5(d) 檔案設定 2-17頁 (設定程式選項) (點左鍵進入檔案) (開啟程式) (點右鍵檔案設定) (設定程式選項) (刪除程式) (開啟程式) (編譯/連結) (增/刪模組、群組及檔案) 圖2-5(d) 檔案設定 2-17頁
2-1.2 µVision2基本操作 (點左鍵開啟檔案) 圖2-5(e) 顯示demo.c程式 2-18頁
2-1.2 µVision2基本操作 圖2-6(a) 程式編譯動作 2-19頁 (Build工具列) (輸出視窗) (編譯程式) (連結) (無錯誤,無警告) (編譯程式) (連結) (Build工具列) 圖2-6(a) 程式編譯動作 2-19頁
2-1.2 µVision2基本操作 (點左鍵指出錯誤處) (指出錯誤處) 圖2-6(b) 程式編譯錯誤動作 2-20頁
2-1.2 µVision2基本操作 圖2-7 進入Debug偵錯環境 2-21頁
2-1.2 µVision2基本操作 圖2-8 Debug偵錯環境 2-22頁 (暫存器) (載入程式) (命令訊息) (教學版限制2K程式) (輸出視窗= Debug命令視窗) (開啟 / 停止偵錯環境) 圖2-8 Debug偵錯環境 2-22頁
2-1.2 µVision2基本操作 (Watch視窗) (重置) 圖2-9 打開Watch Window 2-23頁
2-1.2 µVision2基本操作 圖2-10(a) 開啟Port 1視窗 2-24頁
2-1.2 µVision2基本操作 圖2-10(b) Debug單步執行 2-25頁 (單步 執行) (執行過程) (暫存器變化) (區域變數) (Watch視窗) (執行過程) (暫存器變化) 圖2-10(b) Debug單步執行 2-25頁
2-1.2 µVision2基本操作 標籤 致能中斷點 程式已執行 目前程式位址 禁能中斷點 圖2-11 執行程式過程中的標示 2-26頁
2-2.1 μVision的操作 圖2-12 μVision的操作畫面 2-27頁 (命令列) (Edit工具列) (Debug工具列) (程式視窗) (Debug工具列) (命令列) (Edit工具列) (輸出視窗-顯示程式編譯及連結動作) (專案視窗) (Build工具列) (檔案管理) 圖2-12 μVision的操作畫面 2-27頁
2-2.1 μVision的操作 圖2-13 μVision命令列 表2-1 Edit(編輯)工具列說明 順序 顯示文字 說明 1 File 檔案管理 2 Edit 編輯程式 3 View 觀察各視窗 4 Project 專案管理 5 Debug 進入偵錯模擬管理 6 Peripherals 顯示週邊電路元件 7 Tools 工具,可外掛程式 8 SVCS Vision組態控制 9 Window 視窗管理 10 Help 求助說明 表2-1 Edit(編輯)工具列說明 2-28頁
2-2.1 μVision的操作 表2-2(a) File檔案命令列 檔案命令列(Alt+F) 說明 快速鍵 開新檔案 Ctrl+N 打開舊檔案 Ctrl+O 關閉程式檔案 Ctrl+F4 存入檔案 Alt+S 另存新檔案 存入所有檔案 取出CPU資料庫重新設定 列印環境設定 列印 Ctrl+P 預覽列印 開啟舊檔案 存入及退出 Alt+F4 表2-2(a) File檔案命令列 2-29頁
2-2.1 μVision的操作 表2-2(b) Edit編輯命令列 編輯命令列(Alt+E) 說明 快速鍵 向前復原 Ctrl+Z 向後復原 C+S+Z 剪下 Ctrl+X 複製 Ctrl+C 貼上 Ctrl+V 選取文字向右移 選取文字向左靠齊 設定或取消書籤 跳到下一個書籤 跳到上一個書籤 清除所有書籤 尋找文字 Ctrl+F 取代文字 Ctrl+H 在視窗內尋找文字 到指定行 表2-2(b) Edit編輯命令列 2-30頁
2-2.1 μVision的操作 表2-2(c) Wiew察看命令列 察看命令列(Alt+W) 說明 顯示或隱藏狀態命令列 顯示或隱藏檔案工具列 顯示或隱藏編譯工具列 顯示或隱藏偵錯工具列 顯示或隱藏專案視窗 顯示或隱藏輸出視窗 開啟瀏覽原始程式視窗 顯示或隱藏反組譯視窗 顯示或隱藏觀察視窗 顯示或隱藏記憶體視窗 顯示或隱藏程式執行比率視窗 顯示或隱藏效率分析視窗 顯示或隱藏符號視窗 顯示或隱藏串列埠1視窗 顯示或隱藏串列埠2視窗 顯示或隱藏工具列 快速執行時,即時更新視窗 顯示程式工作視窗模式選擇 μVision選項設定,如字型、色彩 表2-2(c) Wiew察看命令列 2-31頁
2-2.1 μVision的操作 表2-2(d) Project專案命令列 專案命令列(Alt+P) 說明 建立新的專案檔 載入舊版本的專案檔 開啟專案檔 關閉專案檔 設定檔案附檔名及環境 增/刪模組、群組及檔案 選擇模組的CPU元件 刪除檔案 設定檔案的選項 清除群組及檔案的選項 更新編譯/連結所有程式 重新編譯/連結所有程式 僅有編譯程式 停止編譯/連結 目前執行的專案檔 表2-2(d) Project專案命令列 2-32頁
2-2.1 μVision的操作 表2-2(e) Window視窗命令列 視窗命令列Window Alt+W 說明 重疊視窗顯示 水平並列視窗顯示 垂直並列視窗顯示 圖示移到視窗底下 分割顯示視窗 關閉所有視窗 顯示目前程式 表2-2(e) Window視窗命令列 2-32頁
2-2.1 μVision的操作 表2-2(f) Debug偵錯命令列 偵錯命令列(Alt+D) 工具列/說明 開啟/停止Debug偵錯軟體 快速執行 單步執行 單步執行,遇函數快速執行 在函數內快速執行退出 執行游標所指定的地方 停止執行程式 開啟或關閉程式的中斷點 插入/刪除程式的中斷點 致能/禁能程式的中斷點 禁能所有中斷點 清除所有中斷點 顯示下一個可執行的程序 致能/禁能程式追蹤記錄 開啟程式追蹤記錄 顯示記憶分配視窗 設定程式效率分析工作 線上輸入組合語言 編輯啟始功能設定檔(***.INI) 表2-2(f) Debug偵錯命令列 2-33頁
2-2.1 μVision的操作 表2-2(g) Peripheral週邊設備命令列 週邊設備命令(Alt+R) 說明 重置程式由位址0000開始執行 開啟中斷週邊視窗 開啟輸出埠視窗,有Port0~Port3 開啟串列埠視窗 開啟計時器視窗,有Timer 0~Timer1 表2-2(g) Peripheral週邊設備命令列 2-33頁
2-2.1 μVision的操作 表2-2(h) Tools工具命令列 表2-2(i) Help求助命令列 命令列Tools工具 說明 設定PC-Lint程式檔案 執行PC-Lint程式 執行PC-Lint了解原始檔案 設定外掛程式 執行/停止外掛程式 在檔案中開啟外掛程式 將外掛程式設在底下命令行 表2-2(h) Tools工具命令列 求助命令列(Alt+H) 說明 μVision說明 內容說明 可模擬CPU說明 文字索引 由最上層尋找 檢查版本更新 如何使用μVision說明 表2-2(i) Help求助命令列 2-34頁
2-2.1 μVision的操作 圖2-14 Edit(編輯)工具列 2-35頁
2-2.1 μVision的操作 表2-3 Edit(編輯)工具列說明 2-35頁 順序 顯示文字 說明 1 New file 打開新檔案 Open File 開啟舊檔案 3 Save file 存入舊檔案 4 Save all Files 存入全部檔案 5 Cut 剪下,存入剪貼簿 6 Copy 複製,存入剪貼簿 7 Paste 貼上剪貼簿 8 Undo 往前復原 9 Redo 往後復原 10 Indent 選取文字左移一大格 11 Unindent 選取文字右移一大格 12 Toggle Bookmark 切換書籤 13 Next Bookmark 換找下一個書籤 14 Previous Bookmark 換找上一個書籤 15 Clear all Bookmarks 清除所有書籤 16 Find in Files 尋找 17 Search Text 尋找下一個文字 18 Find 尋找文字 19 Print 列印 20 Project Window 開啟/關閉專案視窗 21 Output Window 開啟/關閉編譯視窗 22 Start/Stop Debug Session 開啟/停止偵錯環境 23 Toggle Breakpoint 切換中斷點 24 Kill all Breakpoint 清除所有中斷點 25 Enable/Disable Breakpoint 致能/禁能中斷點 26 Disable all Breakpoint 禁能所有中斷點 表2-3 Edit(編輯)工具列說明 2-35頁
2-2.1 μVision的操作 圖2-15 Debug(偵錯)工具列 2-36頁
2-2.1 μVision的操作 表2-4 Debug(偵錯)工具列說明 順序 顯示文字 說明 1 Reset CPU Run 快速執行程式 3 Halt Execution 停止執行程式 4 Single Step Into 單步執行程式 5 Step Over 單步執行程式,但遇到函數時會快速執行 6 Step Out 單步進入函數內時,可以快速執行立即退出函數 7 Run till Cursor line 快速執行程式到游標所指定的地方 8 Show next statement 顯示下一個程式段 9 Enable Trace Recording 致能追蹤記錄 10 Show Trace Records 顯示追蹤記錄 11 Disassembly Window 開啟/關閉反組譯視窗 12 Watch Window 開啟/關閉觀察視窗 13 Code Coverage Window 開啟/關閉程式執行比例視窗 14 Serial Window#1 開啟/關閉串列埠視窗 15 Memory Window 開啟/關閉記體體視窗 16 Performance Analyzer 開啟/關閉效率分析視窗 17 Toolbox 開啟/關閉工具盒 表2-4 Debug(偵錯)工具列說明 2-36頁
2-2.1 μVision的操作 圖2-16 反組譯視窗 2-37頁
2-2.1 μVision的操作 圖2-17(b) Watch#1觀察視窗 圖2-17(a) Local觀察視窗 (區域變數) 圖2-17(b) Watch#1觀察視窗 (按右鍵) 圖2-17(a) Local觀察視窗 圖2-17(c) 選擇顯示16進制或10進制 2-38頁
2-2.1 μVision的操作 圖2-18 程式執行比例視窗 2-39頁
2-2.1 μVision的操作 (按右鍵) (傳輸字串資料) 圖2-19 串列埠視窗 2-40頁
2-2.1 μVision的操作 圖2-20 記憶體視窗 2-41頁
2-2.1 μVision的操作 D:0 ;顯示的內部資料RAM的內容,由10進制位址0開始。 D:0x0A ;顯示內部資料RAM的內容,由16進制位址0Ah開始。 D:變數名稱 ;顯示內部資料RAM變數的內容。 D:TABLE ;顯示內部資料RAM陣列變數的內容。 X:0 ;顯示外部資料RAM的內容,由10進制位址0開始。 X:0x0A ;顯示外部資料RAM的內容,由16進制位址0Ah開始。 X:變數名稱 ;顯示外部資料RAM變數的內容。 X:TABLE ;顯示外部資料RAM陣列變數的內容。 C:0 ;顯示的程式ROM內容,由10進制位址0開始。 D:TABLE ;顯示程式ROM陣列資料的內容。 2-41頁
2-2.1 μVision的操作 圖2-20(b) 設定資料顯示的格式 2-42頁 (按右鍵) (10進制) (無符號) (有符號) (字元) (浮點數) (倍精度) 圖2-20(b) 設定資料顯示的格式 2-42頁
2-2.1 μVision的操作 (執行的時間及效率) 圖2-21(a) 效率分析視窗 2-42頁
2-2.1 μVision的操作 圖2-21(b) 效率分析視窗設定 2-43頁
2-2.1 μVision的操作 圖2-21(c) 效率分析視窗設定 2-43頁
2-2.1 μVision的操作 圖2-22(a) 手動及即時更新視窗執行的結果 2-44頁
2-2.1 μVision的操作 (即時更新視窗) 圖2-22(b) 即時更新視窗執行的結果 2-45頁
2-2.1 μVision的操作 圖2-23 Build工具列 2-45頁
2-2.1 μVision的操作 順序 顯示字 說明 1 Translate current file 僅編譯目前的C程式檔 2 Build Target 編譯/連結整個模組所有檔案 3 Rebuild Target 重新編譯/連結整個模組所有檔案 4 Stop Build Process 停止編譯/連結動作 5 Target Options Dialog 目標模組選項設定 6 Select current Target of the project 選擇現在的目標模組到專案內 表2-5 Build工具列說明 2-46頁
2-2.1 μVision的操作 表2-6(a) 功能鍵 2-46頁
2-2.1 μVision的操作 表2-6(b) EDIT功能鍵 2-47頁
2-2.2 μVision2的設定 圖2-24(a) Target模組設定 2-48頁 (選項設定) (點右鍵模組設定) (編譯/連結程式) (增加/刪除) 圖2-24(a) Target模組設定 2-48頁
2-2.2 μVision2的設定 圖2-24(b) Target1硬體設定 2-49頁 (使用內部ROM) (工作頻率) (變數記憶體模式) (程式記憶體容量) (操作系統) (外部RAM設定) 圖2-24(b) Target1硬體設定 2-49頁
2-2.2 μVision2的設定 圖2-24(c) Output輸出設定 2-50頁 (執行的檔名) (產生執行檔demo.hex) (編譯完成後執行動作) (產生程式庫檔demo.lib) (執行的檔名) (編譯完成後執行Debug動作) (編譯完成後嗶聲) (執行外部硬體模擬程式) (執行外部軟體模擬程式) 圖2-24(c) Output輸出設定 2-50頁
2-2.2 μVision2的設定 (切換書籤) (找下一個書籤) (清除所有書籤) (找上一個書籤) 圖2-25 書籤設定 2-52頁
2-2.2 μVision2的設定 圖2-26 中斷點設定 2-53頁 (清除所有中斷點) (致能/禁能中斷點) (禁能所有中斷點) (插入/刪除中斷點) (清除所有中斷點) (禁能所有中斷點) (致能/禁能中斷點) (設定中斷點) (禁能中斷點) 圖2-26 中斷點設定 2-53頁
2-2.2 μVision2的設定 表2-7 Debug命令型式 2-54頁