(編程時(shí)也可以使用Windows自帶的記事本編寫程序)KeilC51軟件本身帶有匯編器和編譯器 (Keil軟件文本框?qū)χ形牡闹С植皇呛芎每梢允褂闷渌谋揪庉嬈魅鏦indows自帶的記事本編寫程序再將程序加載到Keil軟件中進(jìn)行編譯仿真和調(diào)試) (在編寫程序前需要先安裝KeilC51然后在該軟件中建立項(xiàng)目和源程序文件再在源程序文件中編寫程序) https://m.toutiao.com/is/UkpYE13/?= 單片機(jī)軟件開發(fā)過程是先編寫程序,,再編譯、仿真和調(diào)試程序,,然后用編程器將程序?qū)懭雴纹瑱C(jī)。這幾個(gè)過程可以分別用幾個(gè)軟件完成,,也可以在一個(gè)軟件中完成?,F(xiàn)在很多單片機(jī)開發(fā)人員都采用Keil公司開發(fā)的KeilC51軟件來編寫、編譯,、仿真和調(diào)試程序,。 3.2.1、編寫程序 在編寫程序前,,需要先安裝 KeilC51 軟件,,然后在該軟件中建立項(xiàng)目和源程序文件,再在源程序文件中編寫程序,。 1.KeilC51軟件的獲取與安裝KeilC51軟件是德國(guó)Keil公司開發(fā)的51系列單片機(jī)編程軟件,,在該軟件中,用戶可用匯編語言或C語言編寫程序,,然后對(duì)程序進(jìn)行編譯,、仿真和調(diào)試。 如果讀者需要該軟件,,可到Keil公司網(wǎng)站http://www. Keil.com下載Eval(評(píng)估)版本,,也可登錄易天教學(xué)網(wǎng)(www.eTV100.com)下載。下載該軟件后獲得的是一個(gè)壓縮包,,解壓后運(yùn)行SETUP文件夾中的Setup.exe文件,,即開始安裝軟件。在安裝時(shí),,首先會(huì)出現(xiàn)圖3-3所示的對(duì)話框,,如果不是商業(yè)用戶,單擊“Eval Version”(評(píng)估版本)按鈕,,軟件即開始安裝,,后面的安裝過程與一般的軟件安裝過程相同,這里不再贅述(注:評(píng)估版本軟件對(duì)編寫的程序要求不能大于 2KB,,其他與商業(yè)版軟件相同,。對(duì)于初學(xué)者來說, KeilC51評(píng)估版本基本夠用),。 圖3-3 選擇軟件安裝版本對(duì)話框 2.新建項(xiàng)目和源程序文件 KeilC51 軟件安裝完成后,,雙擊桌面上的“Keil μVision2”圖標(biāo),或單擊桌面左下角的“開始”按鈕,,在彈出的菜單中選擇“程序”→“Keil μVision2”命令,,就可以啟動(dòng) Keil μVision2,進(jìn)入圖3-4所示的“μVision2”軟件窗口,。 (1)新建項(xiàng)目 在進(jìn)行單片機(jī)程序開發(fā)時(shí),,為了便于管理,,需要先在“μVision2”中建立一個(gè)項(xiàng)目,然后在該項(xiàng)目中編寫,、仿真和調(diào)試程序,。新建項(xiàng)目的操作過程如下。 ① 選擇“Project”→“New Project”菜單命令,,如圖3-5所示,,立刻彈出圖3-6所示的“Create New Project”(建立新項(xiàng)目)對(duì)話框。 ② 在“Create New Project”對(duì)話框中選擇文件保存的位置,,再輸入項(xiàng)目文件名“test1”,,文件的默認(rèn)擴(kuò)展名(類型)為“.uv2”,然后單擊“保存”按鈕,,立刻彈出圖3-7所示的對(duì)話框,,要求選擇為哪種型號(hào)的單片機(jī)編寫程序。 圖3-4 μVision2軟件窗口 圖3-5 執(zhí)行新建項(xiàng)目命令 圖3-6 建立新項(xiàng)目對(duì)話框 圖3-7 選擇單片機(jī)型號(hào)對(duì)話框 ③ 在圖3-7所示對(duì)話框左側(cè)的選擇區(qū)內(nèi)選擇單片機(jī)型號(hào)為 Atmel 公司的“AT89S51”,,然后單擊“確定”按鈕,,會(huì)彈出圖3-8所示的對(duì)話框,該對(duì)話框詢問是否要把標(biāo)準(zhǔn)8051的啟動(dòng)代碼添加到項(xiàng)目中,。 圖3-8 詢問是否將標(biāo)準(zhǔn)8051的啟動(dòng)代碼加入到項(xiàng)目中 KeilC51既支持C語言編程也支持匯編語言編程,,如果欲用匯編語言編寫程序,則應(yīng)單擊“否”按鈕,;如果想用C語言編寫程序,,一般也單擊“否”按鈕,;但是如果用到了某些增強(qiáng)功能需要初始化配置時(shí),,則可以單擊“是”按鈕。這里單擊“否”按鈕(即不添加啟動(dòng)代碼),,新建項(xiàng)目結(jié)束,,在圖3-9所示μVision2 軟件窗口左邊的項(xiàng)目管理器中新增了一個(gè)“Target 1”文件夾,該文件夾中還有一個(gè)“Source Group 1”文件夾,。 圖3-9 新建項(xiàng)目完畢,,在μVision2軟件窗口中新增“Target 1”文件夾 (2)新建源程序文件 要編寫程序,還需要新建一個(gè)源程序文件,,再在該文件中編寫程序,。 新建源程序文件的操作過程如下。 ① 新建源程序文件,。單擊工具欄中的新建按鈕 ,,也可選擇“File”→“New”菜單命令,即新建一個(gè)默認(rèn)名為“Text 1”的空白文件,,同時(shí)該文件在軟件窗口中打開,,如圖3-10所示,。 圖3-10 新建源程序文件 ② 保存源程序文件。單擊工具欄上的保存按鈕 ,,也可選擇“File”→“Save As”菜單命令,,彈出圖3-11所示的“Save As”對(duì)話框。在對(duì)話框中打開之前建立的項(xiàng)目文件所在的文件夾,,再將文件命名為“test1.asm”(擴(kuò)展名.asm表示為匯編程序,,不能省略),單擊“保存”按鈕即將該文件保存下來,。 圖3-11 保存源程序文件對(duì)話框 ③ 建立源程序文件與項(xiàng)目關(guān)聯(lián),。新建的源程序文件與新建的項(xiàng)目沒有什么關(guān)聯(lián),需要將它加入到項(xiàng)目中,。打開項(xiàng)目管理器的“Source Group 1”文件夾,,右擊該文件夾,彈出圖3-12所示的快捷菜單,,在該快捷菜單中選擇“Add Files to Group’Source Group 1’”項(xiàng),,會(huì)出現(xiàn)圖3-13所示的加載文件對(duì)話框。在該對(duì)話框中選文件類型為“Asm Source file”,,找到新建的“test1.asm”文件,,再單擊“Add”按鈕,test1.asm文件即被加入到項(xiàng)目中,,此時(shí)對(duì)話框并不會(huì)消失,,可以繼續(xù)加載其他文件,單擊“Close”按鈕關(guān)閉對(duì)話框,。在Keil軟件項(xiàng)目管理器的“Source Group 1”文件夾中可以看到新加載的“test1.asm”文件,,如圖3-14所示。 圖3-12 在快捷菜單中選擇加載文件命令 圖3-13 在對(duì)話框中選擇要加載的文件 3.編寫程序 編寫程序有兩種方式:一是直接在 Keil 軟件中編寫,;二是在其他軟件中編寫,,再加載到 Keil軟件中。 圖3-14 軟件項(xiàng)目管理器中出現(xiàn)加載的文件 (1)在Keil軟件中編寫程序 在Keil軟件的源程序文件中用匯編語言編寫程序(也可以用C語言編寫),,如圖3-15所示,。 圖3-15 在源程序文件的文本框內(nèi)編寫程序 源程序文件中的匯編語言程序如下: MAIN: MOV P3,#0FFH LOOP: MOV P1,,P3 LJMP LOOP END 有關(guān)程序的編寫方法在后面的章節(jié)將專門介紹,。 (2)加載其他軟件編寫的程序 Keil 軟件源程序文件的文本框?qū)χ形牡闹С植皇呛芎茫谳斎胫形臅r(shí),,有時(shí)會(huì)出現(xiàn)文字殘缺現(xiàn)象,。編程時(shí)也可以使用其他文本編輯器(如 Windows 自帶的記事本)編寫程序,再將程序加載到Keil軟件中進(jìn)行編譯,、仿真和調(diào)試,。加載其他軟件編寫的程序的過程如下,。 ① 用文本編輯器編寫程序。打開Windows 自帶的記事本,,在其中編寫程序,,如圖3-16所示。編寫完后將該文件保存下來,,文件的擴(kuò)展名為.asm或.a51,,這里將文件保存為test1S.asm 圖3-16 用記事本編寫程序 ② 將程序文件裝載進(jìn) Keil 軟件。加載程序文件的過程與圖3-12~圖3-14所示的過程相同,,具體操作過程如下,。 打開Keil軟件,在項(xiàng)目管理器中的“Source Group 1”文件夾上右擊,,彈出快捷菜單,,選擇其中的“Add Files to Group’Source Group 1’”項(xiàng),會(huì)出現(xiàn)加載文件對(duì)話框,,在對(duì)話框中選文件類型為“Asm Source file”,,然后找到之前編寫的“test1S.asm”文件,再單擊“Add”按鈕,,test1S.asm文件即被加載進(jìn)Keil軟件中,,單擊“Close”按鈕關(guān)閉對(duì)話框。 加載程序結(jié)束后,,可以在項(xiàng)目管理器的“Source Group 1”文件夾中看到加載進(jìn)來的“test1S.asm”文件,,如圖3-17所示,雙擊可以打開該文件,。 圖3-17 用記事本編寫的程序被加載進(jìn)項(xiàng)目管理器 3.2.2,、編譯或匯編程序 用匯編語言寫好程序后,程序還不能直接寫入單片機(jī),,因?yàn)閱纹瑱C(jī)只接受二進(jìn)制數(shù),,所以要將匯編語言程序轉(zhuǎn)換成二進(jìn)制或十六進(jìn)制代碼(又稱機(jī)器代碼),。將匯編語言程序或其他程序(如 C語言程序)轉(zhuǎn)換成二進(jìn)制或十六進(jìn)制代碼的過程稱為匯編或編譯,。 匯編要用到匯編器,匯編器可以將匯編語言程序轉(zhuǎn)換成二進(jìn)制或十六進(jìn)制代碼,;編譯要用到編譯器,,編譯器可以將高級(jí)語言程序(如C語言程序)轉(zhuǎn)換成二進(jìn)制或十六進(jìn)制代碼。不同類型的單片機(jī)需要使用不同的匯編器或編譯器,,MCS-51系列單片機(jī)對(duì)匯編語言程序匯編時(shí)采用A51匯編器,,而對(duì)C語言程序編譯時(shí)采用C51編譯器。 KeilC51 軟件本身帶有匯編器和編譯器,,在對(duì)程序進(jìn)行匯編或編譯時(shí),,會(huì)自動(dòng)調(diào)用相應(yīng)的匯編器或編譯器,。下面以匯編test1.asm程序?yàn)槔f明匯編和編譯的過程,。 (1)匯編或編譯前的設(shè)置 在匯編或編譯程序前需要對(duì)項(xiàng)目進(jìn)行一些設(shè)置,。設(shè)置時(shí),選擇“Project”→“Options for Target ’Target 1’”菜單命令,,彈出圖3-18所示的對(duì)話框,。該對(duì)話框中有 10 個(gè)選項(xiàng)卡,每個(gè)選項(xiàng)卡中都有一些設(shè)置內(nèi)容,,其中“Target”和“Output”選項(xiàng)卡較為常用,,默認(rèn)打開“Target”選項(xiàng)卡,這里保持默認(rèn)值,。 圖3-18 Target選項(xiàng)卡中的內(nèi)容 單擊“Output”選項(xiàng)卡即可切換到該選項(xiàng)卡,,該選項(xiàng)卡的內(nèi)容如圖3-19所示。這里只選中“Create HEX Fi”復(fù)選框,,選中該復(fù)選框后在匯編或編譯時(shí)會(huì)生成擴(kuò)展名為.hex的十六進(jìn)制文件 圖3-19 Output選項(xiàng)卡中的內(nèi)容 (2)進(jìn)行匯編或編譯 在圖3-19所示的“Options for Target’Target 1’”對(duì)話框中設(shè)置完成后,,單擊“確定”按鈕,返回到Keil軟件界面,,然后單擊編譯或匯編按鈕 ,,軟件就開始對(duì)test1.asm文件中的程序進(jìn)行編譯或匯編,完成后,,在軟件窗口下方的輸出窗口中可看到有關(guān)的編譯或匯編信息,。如圖3-20所示,如果出現(xiàn)“0 Error(s),,0 Warning(s)”,,則表示程序沒有問題(至少在語法上不存在問題);如果存在錯(cuò)誤或警告,,則要認(rèn)真檢查程序,,修改后再編譯或匯編,直到通過為止,。 圖3-20 程序匯編或編譯結(jié)束出現(xiàn)有關(guān)的匯編或編譯信息 編譯或匯編完成后,,打開項(xiàng)目文件所在的文件夾,會(huì)發(fā)現(xiàn)生成了一個(gè)“test1.hex”文件,。該文件是由匯編器將匯編語言程序匯編成的十六進(jìn)制代碼,,用記事本程序打開它,可以看見該文件的具體內(nèi)容,,如圖3-21所示,。通過編程 器可以將test1.hex文件中的內(nèi)容寫入到單片機(jī)中。 圖3-21 匯編生成的test1.hex文件的內(nèi)容 |
|