Keil的使用及流水燈設(shè)計_第1頁
Keil的使用及流水燈設(shè)計_第2頁
Keil的使用及流水燈設(shè)計_第3頁
Keil的使用及流水燈設(shè)計_第4頁
Keil的使用及流水燈設(shè)計_第5頁
已閱讀5頁,還剩25頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、Keil uVision2 的使用的使用 1、keil C51 的安裝的安裝 2、項目的建立、項目的建立 3、ASM文件的建立文件的建立 4、項目的編譯、項目的編譯 5、項目的調(diào)試、項目的調(diào)試 6、項目程序的燒寫、項目程序的燒寫一、 keil C51 的安裝:的安裝: 先運行光盤中先運行光盤中 單片機(jī)軟件單片機(jī)軟件setupsetup.exe 安裝程序,選擇安裝安裝程序,選擇安裝“Eval Version”版進(jìn)行安裝。一直點擊版進(jìn)行安裝。一直點擊“Yes”或或“Next”,直到,直到“Finish”完成。完成。 安裝好后,在桌面上會產(chǎn)生快捷圖標(biāo),如下安裝好后,在桌面上會產(chǎn)生快捷圖標(biāo),如下圖:圖

2、:二、二、 keil C51 的使用:的使用: 點擊桌面快捷圖標(biāo),可以直接進(jìn)入主畫面:點擊桌面快捷圖標(biāo),可以直接進(jìn)入主畫面:v 現(xiàn)在,我一步一步學(xué)著做,實際體驗一下從現(xiàn)在,我一步一步學(xué)著做,實際體驗一下從編輯源程序到程序調(diào)試的全過程。編輯源程序到程序調(diào)試的全過程。 我們做一個我們做一個 讓單片機(jī)讓單片機(jī) P0 口所驅(qū)動的口所驅(qū)動的 LED 燈隔一個亮隔一個滅的程序。燈隔一個亮隔一個滅的程序。 v1、在、在Keil系統(tǒng)中,系統(tǒng)中,每做個獨立的程序,都視為工程每做個獨立的程序,都視為工程(或者(或者叫項目)。首先從菜但的叫項目)。首先從菜但的“工程工程”中中“新建工程新建工程.”,建立,建立我們將

3、要做的工程項目:我們將要做的工程項目:v新建的工程要起個與工程項目意義一致的名字新建的工程要起個與工程項目意義一致的名字,可以是中文名;我們這,可以是中文名;我們這里的程序是實驗測試程序,所以起的名字為里的程序是實驗測試程序,所以起的名字為 Test ,并將,并將 Test 工程工程“保保存存”到到 C:Keil 下:下:v接下來,接下來,Keil環(huán)境要求我們?yōu)榄h(huán)境要求我們?yōu)?Test 工程選擇一個單片機(jī)型號;我們選工程選擇一個單片機(jī)型號;我們選擇擇 Atmel 公司的公司的 89C51(雖然我們使用的是(雖然我們使用的是89S51,但由于,但由于89S51與與89C51內(nèi)、外部結(jié)構(gòu)完全一樣,

4、所以這里依然選擇內(nèi)、外部結(jié)構(gòu)完全一樣,所以這里依然選擇“89C51”)。)?!按_定確定”后工程項目就算建立了。后工程項目就算建立了。v 2、立了工程項目,肯定要實施這個工程,現(xiàn)在就為工程添加程序;立了工程項目,肯定要實施這個工程,現(xiàn)在就為工程添加程序; 點擊點擊“文件文件”中的中的“新建新建”,新建一個空白文檔;這個空白文檔就是,新建一個空白文檔;這個空白文檔就是讓我們編寫單片機(jī)程序的場所。在這里你可以進(jìn)行編輯、修改等操作。讓我們編寫單片機(jī)程序的場所。在這里你可以進(jìn)行編輯、修改等操作。 v根據(jù)題意,在文檔中寫入下列代碼:(下列代碼你根據(jù)題意,在文檔中寫入下列代碼:(下列代碼你暫時不要管什么意思

5、,只要照抄正確就可以,今后暫時不要管什么意思,只要照抄正確就可以,今后在學(xué)習(xí)匯編時你會明白的)在學(xué)習(xí)匯編時你會明白的) mov p0,#01010101B ;將將01010101二進(jìn)制代碼送二進(jìn)制代碼送P0口口 ajmp $ ;程序在此原地踏步程序在此原地踏步 end ;程序結(jié)束標(biāo)志程序結(jié)束標(biāo)志 寫完后再檢查一下,并保存文件,保存文件時,寫完后再檢查一下,并保存文件,保存文件時,其文件名最好與前面建立的工程名相同(當(dāng)然這里其文件名最好與前面建立的工程名相同(當(dāng)然這里為為 Test 了),了),其擴(kuò)展名必須為其擴(kuò)展名必須為 .Asm !“文件名文件名”中一定要寫全,如:中一定要寫全,如:Test

6、.Asm ;保存后的文檔彩;保存后的文檔彩色語法會起作用,將關(guān)鍵字實行彩色顯示:色語法會起作用,將關(guān)鍵字實行彩色顯示:v3、保存了、保存了Asm文件后,還要將其添加到工程中。具體做法如下:(見文件后,還要將其添加到工程中。具體做法如下:(見下圖)鼠標(biāo)右鍵點擊下圖)鼠標(biāo)右鍵點擊 “Source Group 1”,在彈出的菜單中選,在彈出的菜單中選“增加文增加文件到組件到組 Source Group 1”:v在接下來出現(xiàn)的窗口中,選擇在接下來出現(xiàn)的窗口中,選擇“文件類型文件類型”為為“Asm源文件源文件(*.a*,*.src)”(由于我們使用的是匯編語言,所以選擇(由于我們使用的是匯編語言,所以選

7、擇Asm源文件),源文件),選中剛才保存的選中剛才保存的 Test.Asm,按,按“Add”,再按,再按“關(guān)閉關(guān)閉”,文件就添加到,文件就添加到了工程中。了工程中。 v 向工程添加了源文件后,鼠標(biāo)右鍵點擊向工程添加了源文件后,鼠標(biāo)右鍵點擊 “TarGet 1” ,在彈出的菜單,在彈出的菜單中選中選“目標(biāo)目標(biāo) Target 1 屬性屬性”,如下圖:,如下圖:v在打開的話框中,選擇在打開的話框中,選擇“輸出輸出”選項卡,在這個選項卡中,選項卡,在這個選項卡中,“E生成生成HEX文件文件”選項前要打勾,按選項前要打勾,按“確定確定”退出。退出。v4、 最后,從菜單的最后,從菜單的“工程工程”中執(zhí)行中

8、執(zhí)行“R重新構(gòu)造所有目標(biāo)重新構(gòu)造所有目標(biāo)”(或者按下圖紅圈(或者按下圖紅圈中的按鈕),匯編、連接、創(chuàng)建中的按鈕),匯編、連接、創(chuàng)建Hex文件一氣呵成;在工程文件的目錄下就會生文件一氣呵成;在工程文件的目錄下就會生成與工程名相同的一些文件,其中大部分文件我們并不必關(guān)心,而生成的成與工程名相同的一些文件,其中大部分文件我們并不必關(guān)心,而生成的 Hex 文件是我們需要的!它是要燒寫到單片機(jī)中的最終代碼,也就是單片機(jī)可以執(zhí)文件是我們需要的!它是要燒寫到單片機(jī)中的最終代碼,也就是單片機(jī)可以執(zhí)行的程序。這里生成的是行的程序。這里生成的是 Test.HEX ,稍后就寫入。,稍后就寫入。 若在下面的狀態(tài)窗中有

9、錯誤提示,就需要再次編輯、修改源程序(如語法、字若在下面的狀態(tài)窗中有錯誤提示,就需要再次編輯、修改源程序(如語法、字符有錯等)、保存、構(gòu)造所有。直至沒有錯誤。符有錯等)、保存、構(gòu)造所有。直至沒有錯誤。 v 5、在沒有語法錯誤的情況下,按下圖紅圈在沒有語法錯誤的情況下,按下圖紅圈中的按鈕就可以進(jìn)行模擬調(diào)試:中的按鈕就可以進(jìn)行模擬調(diào)試: v下面是調(diào)試窗。由于我們的程序是讓下面是調(diào)試窗。由于我們的程序是讓 P0 口口8個腳隔一個輸出個腳隔一個輸出0,隔一個,隔一個輸出輸出1,所以要從菜單的,所以要從菜單的“外圍設(shè)備外圍設(shè)備”中打開中打開“Prot 0” P0口窗:口窗:v 單擊單擊“單步運行單步運行

10、”,在,在P0窗中就可以看到我們原先設(shè)想的效果:窗中就可以看到我們原先設(shè)想的效果:#include /52系列單片機(jī)頭文件sbit led1=P10; /聲明單片機(jī)P1口的第一位void main() /主函數(shù)led1=0; /*點亮第一個發(fā)光二極管*/ 總線操作#include /52系列單片機(jī)頭文件void main() /主函數(shù)P1=0 xaa; 燈的閃爍#include /52系列單片機(jī)頭文件#define uint unsigned int /宏定義sbit led1=P10; /聲明單片機(jī)P1口的第一位uint i,j;void main() /主函數(shù)while(1) /大循環(huán)le

11、d1=0;/*點亮第一個發(fā)光二極管*/for(i=1;i0;i-)/延時for(j=110;j0;j-);led1=1;/*關(guān)閉第一個發(fā)光二極管*/for(i=1000;i0;i-)/延時for(j=110;j0;j-); 使用延時函數(shù)#include /52系列單片機(jī)頭文件#define uint unsigned int /宏定義sbit led1=P10; /聲明單片機(jī)P1口的第一位void delay1s();/聲明子函數(shù)void main() /主函數(shù)while(1) /大循環(huán)led1=0;/*點亮第一個發(fā)光二極管*/delay1s();/調(diào)用延時子函數(shù)led1=1;/*關(guān)閉第一個發(fā)

12、光二極管*/delay1s();/調(diào)用延時子函數(shù)void delay1s()/子函數(shù)體uint i,j;for(i=500;i0;i-)for(j=110;j0;j-);使用帶參數(shù)的延時函數(shù)#include /52系列單片機(jī)頭文件#define uint unsigned int /宏定義sbit led1=P10; /聲明單片機(jī)P1口的第一位void delayms(uint);/聲明子函數(shù)void main() /主函數(shù)while(1) /大循環(huán)led1=0;/*點亮第一個發(fā)光二極管*/delayms(200);/延時200毫秒led1=1;/*關(guān)閉第一個發(fā)光二極管*/delayms(80

13、0);/延時800毫秒void delayms(uint xms)uint i,j;for(i=xms;i0;i-) /i=xms即延時約xms毫秒for(j=110;j0;j-);Keil仿真及延時語句的精確計算#include /52系列單片機(jī)頭文件#define uint unsigned int /宏定義sbit led1=P10; /聲明單片機(jī)P1口的第一位uint i,j;void main() /主函數(shù)while(1) /大循環(huán)led1=0;/*點亮第一個發(fā)光二極管*/for(i=1;i0;i-)/延時for(j=110;j0;j-);led1=1;/*關(guān)閉第一個發(fā)光二極管*/f

14、or(i=1000;i0;i-)/延時for(j=110;j0;j-); 利用C51庫函數(shù)實現(xiàn)流水燈#include /52系列單片機(jī)頭文件#include #define uint unsigned int /宏定義#define uchar unsigned charvoid delayms(uint);/聲明子函數(shù)uchar aa;void main() /主函數(shù)aa=0 xfe;/賦初值11111110 while(1) /大循環(huán)P1=aa;delayms(500); /延時500毫秒aa=_crol_(aa,1); /將aa循環(huán)左移1位后再賦給aavoid delayms(uint

15、xms)uint i,j;for(i=xms;i0;i-) /i=xms即延時約xms毫秒for(j=110;j0;j-);花樣流水燈v#include v#define INT8Uunsigned charv#define INT16U unsigned intvcode INT16U Pattern =/本例16位的花樣數(shù)組vv0 xFCFF,0 xF9FF,0 xF3FF,0 xE7FF,0 xCFFF,0 x9FFF,0 x3FFF,0 x7FFE,0 xFFFC,v0 xFFF9,0 xFFF3,0 xFFE7,0 xFFCF,0 xFF9F,0 xFF3F,0 xFFFF,0 xE

16、7E7,0 xDBDB,v0 xBDBD,0 x7E7E,0 xBDBD,0 xDBDB,0 xE7E7,0 xFFFF,0 xE7E7,0 xC3C3,0 x8181,v0 x0000,0 x8181,0 xC3C3,0 xE7E7,0 xFFFF,0 xAAAA,0 x5555,0 x1818,0 xFFFF,v0 xF0F0,0 x0F0F,0 x0000,0 xFFFF,0 xF8F8,0 xF1F1,0 xE3E3,0 xC7C7,0 x8F8F,v0 x1F1F,0 x3F3F,0 x7F7F,0 x7F7F,0 x3F3F,0 x1F1F,0 x8F8F,0 xC7C7,0 xE

17、3E3,v0 xF1F1,0 xF8F8,0 xFFFF,0 x0000,0 x0000,0 xFFFF,0 xFFFF,0 x0F0F,0 xF0F0,v0 xFEFF,0 xFDFF,0 xFBFF,0 xF7FF,0 xEFFF,0 xDFFF,0 xBFFF,0 x7FFF,0 xFFFE,v0 xFFFD,0 xFFFB,0 xFFF7,0 xFFEF,0 xFFDF,0 xFFBF,0 xFF7F,0 xFF7F,0 xFFBF,v0 xFFDF,0 xFFEF,0 xFFF7,0 xFFFB,0 xFFFD,0 xFFFE,0 x7FFF,0 xBFFF,0 xDFFF,v0 x

18、EFFF,0 xF7FF,0 xFBFF,0 xFDFF,0 xFEFF,0 xFEFF,0 xFCFF,0 xF8FF,0 xF0FF,v0 xE0FF,0 xC0FF,0 x80FF,0 x00FF,0 x00FE,0 x00FC,0 x00F8,0 x00F0,0 x00E0,v0 x00C0,0 x0080,0 x0000,0 x0000,0 x0080,0 x00C0,0 x00E0,0 x00F0,0 x00F8,v0 x00FC,0 x00FE,0 x00FF,0 x80FF,0 xC0FF,0 xE0FF,0 xF0FF,0 xF8FF,0 xFCFF,v0 xFEFF,0 x

19、0000,0 xFFFF,0 x0000,0 xFFFF,0 x0000,0 xFFFF,0 x0000,0 xFFFFv;vvoid delay_ms(INT16U x) vvINT8U t; while(x-) for(t = 0; t 120; t+);vvvoid main()vv INT8U i;vwhile(1)vvfor (i=0;i8;vP2=Patterni;vdelay_ms(50);vvv方波發(fā)生器v用任一IO口做一個周期為20ms的方波發(fā)生器#include /52系列單片機(jī)頭文件#define uint unsigned int /宏定義sbit l1=P10; /聲明單片機(jī)P1口的第一位void delay1s();/聲明子函數(shù)void main() /主函數(shù)while(1) /大循環(huán)l1=0;/*點亮第一個發(fā)光二極管*/

溫馨提示

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

評論

0/150

提交評論