第2-3講Keil使用(單片機(jī)控制LED燈)課件_第1頁
第2-3講Keil使用(單片機(jī)控制LED燈)課件_第2頁
第2-3講Keil使用(單片機(jī)控制LED燈)課件_第3頁
第2-3講Keil使用(單片機(jī)控制LED燈)課件_第4頁
第2-3講Keil使用(單片機(jī)控制LED燈)課件_第5頁
已閱讀5頁,還剩61頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用設(shè)置,新建一個工程,新建一個程序ASM文件,加載一個文件,編譯與傳輸?shù)接布?。觀察:學(xué)會硬件的觀察,以及存儲器單元的觀察實例:完成對一組LED燈的閃爍控制。1第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用觀察Keil軟件介紹啟動界面2Keil軟件介紹啟動界面2圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗口工程管理器窗口工具欄菜單欄編輯窗口3圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗441、新建一個項目(NewProject)點擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如下圖。接著彈出一個標(biāo)準(zhǔn)Windows文件對話窗口。51、新建一個項目(NewProject)5如下圖在“文件名”中輸入您的第一個C程序項目名稱,這里我們用“test”,“保存”后的文件擴(kuò)展名為uv2,這是KEILuVision2項目文件擴(kuò)展名

注意:先在F盤建“09DQxxxyyy”的文件夾6如下圖在“文件名”中輸入您的第一個C程序項目名稱,這里我們用2、選擇所用的單片機(jī)類型

Atmal下的AT89C5272、選擇所用的單片機(jī)類型

Atmal下的AT3、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,在“2”中出現(xiàn)一個新的文字編輯窗口“3”是存盤的快捷按鈕83、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,4、編輯源文件注意:Tab鍵的使用94、編輯源文件注意:Tab鍵的使用95、保存源文件為xxx.asm文件

注意:文件的后綴名105、保存源文件為xxx.asm文件

注意:文件的后綴名106、向項目中添加文件操作:選擇sourcegroup,按右鍵,選擇AddFilestoGroup’Sourcegroup1’116、向項目中添加文件操作:選擇sourcegroup,按右1、2、3都是編譯按鈕。1是用于編譯單個文件。2是編譯當(dāng)前項目(如果先前編譯過一次之后文件沒有編輯改動,不會再次重新編譯的)。3是重新編譯(每點擊一次均會再次編譯鏈接一次,不管程序是否有改動)。在3右邊的是停止編譯按鈕,只有點擊了前三個中的任一個,停止按鈕才會生效。4是信息窗口。5是包含了1、2、3。6是進(jìn)入調(diào)試模式。7、編譯源文件為機(jī)器碼127、編譯源文件為機(jī)器碼128、選擇程序存儲目標(biāo)138、選擇程序存儲目標(biāo)139、創(chuàng)建EPROM可以存儲的HEX文件149、創(chuàng)建EPROM可以存儲的HEX文件1411、開始/停止調(diào)試1511、開始/停止調(diào)試1512、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開始Debug”1612、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開始D13、觀察程序存儲器操作:在“Address”中輸入:0000,或者c:00001713、觀察程序存儲器操作:在“Address”中輸入:00014、觀察數(shù)據(jù)存儲器(運行程序前)操作:在“Address”中輸入:D:00001814、觀察數(shù)據(jù)存儲器(運行程序前)操作:在“Address”15、觀察數(shù)據(jù)存儲器(運行程序后)1915、觀察數(shù)據(jù)存儲器(運行程序后)19總結(jié)(Keil過程)(1)新建一個Project項目文件(.uv2)選擇單片機(jī)型號(Atmel-AT89C51)(2)編輯源文件并存盤(.ASM)(3)將源程序添加到工程中(4)設(shè)置Keil工程目標(biāo)項Output:CreateHEXfilesDebug:UseKeilMonitor-51Driver(5)匯編源程序,生成HEX文件(6)運行調(diào)試Debug—Start/StopDebugSession連接仿真器(注意復(fù)位)運行:Go、Step、StepOver、Stop20總結(jié)(Keil過程)(1)新建一個Project項目文件(.實例:單片機(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低電平/高電平發(fā)亮?):MOVP1,#00H或者M(jìn)OVP1,#0FFH如何使LED燈閃爍?

按照Keil使用方法,連接仿真器,完成這個實驗,總結(jié)實驗過程!21實例:單片機(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低硬件線路22硬件線路22回顧一下保存源文件時,要輸入.ASM源程序修改后,除了保存之外,還要重新匯編(檢查程序錯誤,一定要0Error方可)編譯生成HEX文件(機(jī)器碼)如何控制各個窗口?運行:Go(Run,運行整個程序)Step(單步運行)StepOver(過程單步:將一個子程序這個過程作為單步運行)StopRunning(停止運行)斷點的設(shè)置與運行觀察(MemoryWindow)以下在第三次課繼續(xù)23回顧一下保存源文件時,要輸入.ASM以下在第三次課繼續(xù)23復(fù)雜問題幾個發(fā)光管亮的情況幾個發(fā)光管循環(huán)亮的情況24復(fù)雜問題幾個發(fā)光管亮的情況24部分源代碼一個發(fā)光管顯示的例子 ORG 0000HSTART: MOV P1,#0FEH SJMP$ END25部分源代碼一個發(fā)光管顯示的例子25部分源程序一個發(fā)光管閃爍的程序 ORG 0000HSTART:MOVP1,#0FEH ACALLDELAY MOVP1,#0FFH ACALLDELAY SJMPSTARTDELAY:MOVR5,#0FFHD1:MOVR4,#0FFHDJNZR4,$DJNZR5,D1RETEND26部分源程序一個發(fā)光管閃爍的程序DELAY:MOVR5,#0觀察:延時程序的延時時間Sec=0.06s=60ms如何計算,以后會講27觀察:延時程序的延時時間Sec=0.06s=60ms27部分源程序

發(fā)光管循環(huán)(流水燈)程序 ORG 0000HSTART: MOV A,#0FEHS1: MOVP1,A RLA ACALLDELAY SJMPS1DELAY: …… END開始設(shè)置初始值設(shè)移位次數(shù)數(shù)據(jù)輸出左一位延時移位次數(shù)完成?是否(A)P1口循環(huán)點燈程序框圖28部分源程序

發(fā)光管循環(huán)(流水燈)程序 ORG 0000討論任意變化怎么辦?運用查表法所編寫的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無限,只要更改流水花樣數(shù)據(jù)表的流水?dāng)?shù)據(jù)就可以隨意添加或改變流水花樣,真正實現(xiàn)隨心所欲的流水燈效果。方法:把要顯示流水花樣的數(shù)據(jù)建在一個以TAB為標(biāo)號的數(shù)據(jù)表中,然后通過查表指令“MOVCA,@A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進(jìn)行顯示。29討論任意變化怎么辦?29發(fā)光管任意變換的程序 ORG0000HSTART: MOVDPTR,#TAB;流水花樣表首地址送DPTRLOOP: CLRA;累加器清零 MOVCA,@A+DPTR;取數(shù)據(jù)表中的值 CJNEA,#0FFH,SHOW;檢查流水結(jié)束標(biāo)志 AJMPSTART;所有花樣流完,則從頭開始重復(fù)流SHOW: MOVP1,A;將數(shù)據(jù)送到P1口 ACALLDELAY;調(diào)用延時子程序 INCDPTR;取數(shù)據(jù)表指針指向下一數(shù)據(jù) AJMPLOOP;繼續(xù)查表取數(shù)據(jù)30發(fā)光管任意變換的程序 ORG0000H30TAB:;下面是流水花樣數(shù)據(jù)表,用戶可據(jù)要求任意編寫 DB11111110B;二進(jìn)制表示的流水花樣數(shù)據(jù),從低到高左移 DB11111101B DB11111011B DB11110111B DB11101111B DB11011111B DB10111111B DB01111111B DB01111111B;二進(jìn)制表示的流水花樣數(shù)據(jù),從高到低右移 DB10111111B DB11011111B DB11101111B DB11110111B DB11111011B DB11111101B DB11111110B DB0FEH,0FDH,0FBH,0F7H;十六進(jìn)制表示的流水花樣數(shù)據(jù) DB0EFH,0DFH,0BFH,7FH DB7FH,0BFH,0DFH,0EFH DB0F7H,0FBH,0FDH,0FEH DB0FFH;流水花樣結(jié)束標(biāo)志0FFH END;程序結(jié)束31TAB:;下面是流水花樣數(shù)據(jù)表,用戶可據(jù)要求任意編一個新任務(wù):

P1口控制繼電器用P1.0作為控制輸出口,接繼電器電路,使繼電器重復(fù)吸合與斷開。提示:如何使P1.0為1或0?方法一:MOVP1,#??H方法二:SETBP1.0;置P1.0為1CLRP1.0;置P1.0為0繼電器吸合延時繼電器斷開開始延時32一個新任務(wù):

P1電路設(shè)計33電路設(shè)計33第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用設(shè)置,新建一個工程,新建一個程序ASM文件,加載一個文件,編譯與傳輸?shù)接布S^察:學(xué)會硬件的觀察,以及存儲器單元的觀察實例:完成對一組LED燈的閃爍控制。34第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用觀察Keil軟件介紹啟動界面35Keil軟件介紹啟動界面2圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗口工程管理器窗口工具欄菜單欄編輯窗口36圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗3741、新建一個項目(NewProject)點擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如下圖。接著彈出一個標(biāo)準(zhǔn)Windows文件對話窗口。381、新建一個項目(NewProject)5如下圖在“文件名”中輸入您的第一個C程序項目名稱,這里我們用“test”,“保存”后的文件擴(kuò)展名為uv2,這是KEILuVision2項目文件擴(kuò)展名

注意:先在F盤建“09DQxxxyyy”的文件夾39如下圖在“文件名”中輸入您的第一個C程序項目名稱,這里我們用2、選擇所用的單片機(jī)類型

Atmal下的AT89C52402、選擇所用的單片機(jī)類型

Atmal下的AT3、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,在“2”中出現(xiàn)一個新的文字編輯窗口“3”是存盤的快捷按鈕413、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,4、編輯源文件注意:Tab鍵的使用424、編輯源文件注意:Tab鍵的使用95、保存源文件為xxx.asm文件

注意:文件的后綴名435、保存源文件為xxx.asm文件

注意:文件的后綴名106、向項目中添加文件操作:選擇sourcegroup,按右鍵,選擇AddFilestoGroup’Sourcegroup1’446、向項目中添加文件操作:選擇sourcegroup,按右1、2、3都是編譯按鈕。1是用于編譯單個文件。2是編譯當(dāng)前項目(如果先前編譯過一次之后文件沒有編輯改動,不會再次重新編譯的)。3是重新編譯(每點擊一次均會再次編譯鏈接一次,不管程序是否有改動)。在3右邊的是停止編譯按鈕,只有點擊了前三個中的任一個,停止按鈕才會生效。4是信息窗口。5是包含了1、2、3。6是進(jìn)入調(diào)試模式。7、編譯源文件為機(jī)器碼457、編譯源文件為機(jī)器碼128、選擇程序存儲目標(biāo)468、選擇程序存儲目標(biāo)139、創(chuàng)建EPROM可以存儲的HEX文件479、創(chuàng)建EPROM可以存儲的HEX文件1411、開始/停止調(diào)試4811、開始/停止調(diào)試1512、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開始Debug”4912、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開始D13、觀察程序存儲器操作:在“Address”中輸入:0000,或者c:00005013、觀察程序存儲器操作:在“Address”中輸入:00014、觀察數(shù)據(jù)存儲器(運行程序前)操作:在“Address”中輸入:D:00005114、觀察數(shù)據(jù)存儲器(運行程序前)操作:在“Address”15、觀察數(shù)據(jù)存儲器(運行程序后)5215、觀察數(shù)據(jù)存儲器(運行程序后)19總結(jié)(Keil過程)(1)新建一個Project項目文件(.uv2)選擇單片機(jī)型號(Atmel-AT89C51)(2)編輯源文件并存盤(.ASM)(3)將源程序添加到工程中(4)設(shè)置Keil工程目標(biāo)項Output:CreateHEXfilesDebug:UseKeilMonitor-51Driver(5)匯編源程序,生成HEX文件(6)運行調(diào)試Debug—Start/StopDebugSession連接仿真器(注意復(fù)位)運行:Go、Step、StepOver、Stop53總結(jié)(Keil過程)(1)新建一個Project項目文件(.實例:單片機(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低電平/高電平發(fā)亮?):MOVP1,#00H或者M(jìn)OVP1,#0FFH如何使LED燈閃爍?

按照Keil使用方法,連接仿真器,完成這個實驗,總結(jié)實驗過程!54實例:單片機(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低硬件線路55硬件線路22回顧一下保存源文件時,要輸入.ASM源程序修改后,除了保存之外,還要重新匯編(檢查程序錯誤,一定要0Error方可)編譯生成HEX文件(機(jī)器碼)如何控制各個窗口?運行:Go(Run,運行整個程序)Step(單步運行)StepOver(過程單步:將一個子程序這個過程作為單步運行)StopRunning(停止運行)斷點的設(shè)置與運行觀察(MemoryWindow)以下在第三次課繼續(xù)56回顧一下保存源文件時,要輸入.ASM以下在第三次課繼續(xù)23復(fù)雜問題幾個發(fā)光管亮的情況幾個發(fā)光管循環(huán)亮的情況57復(fù)雜問題幾個發(fā)光管亮的情況24部分源代碼一個發(fā)光管顯示的例子 ORG 0000HSTART: MOV P1,#0FEH SJMP$ END58部分源代碼一個發(fā)光管顯示的例子25部分源程序一個發(fā)光管閃爍的程序 ORG 0000HSTART:MOVP1,#0FEH ACALLDELAY MOVP1,#0FFH ACALLDELAY SJMPSTARTDELAY:MOVR5,#0FFHD1:MOVR4,#0FFHDJNZR4,$DJNZR5,D1RETEND59部分源程序一個發(fā)光管閃爍的程序DELAY:MOVR5,#0觀察:延時程序的延時時間Sec=0.06s=60ms如何計算,以后會講60觀察:延時程序的延時時間Sec=0.06s=60ms27部分源程序

發(fā)光管循環(huán)(流水燈)程序 ORG 0000HSTART: MOV A,#0FEHS1: MOVP1,A RLA ACALLDELAY SJMPS1DELAY: …… END開始設(shè)置初始值設(shè)移位次數(shù)數(shù)據(jù)輸出左一位延時移位次數(shù)完成?是否(A)P1口循環(huán)點燈程序框圖61部分源程序

發(fā)光管循環(huán)(流水燈)程序 ORG 0000討論任意變化怎么辦?運用查表法所編寫的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無限,只要更改流水花樣數(shù)據(jù)表的流水?dāng)?shù)據(jù)就可以隨意添加或改變流水花樣,真正實現(xiàn)隨心所欲的流水燈效果。方法:把要顯示流水花樣的數(shù)據(jù)建在一個以TAB為標(biāo)號的數(shù)據(jù)表中,然后通過查表指令“MOVCA,@A+DPTR”把數(shù)據(jù)取到累加器A中,然后再送到P1口進(jìn)行顯示。62討論任意變化怎么辦?29發(fā)光管任意變換的程序 ORG0000HSTART: MOVDPTR,#TAB;流水花樣表首地址送DPTRLOOP: CLRA;累加器清零 MOVCA,@A+DPTR;取數(shù)據(jù)表中的值 CJNEA,#0FFH,SHOW;檢查流水結(jié)束標(biāo)志 AJMPSTART;所有花樣流完,則從頭開始重復(fù)流SHOW: MOVP1,A;將數(shù)據(jù)送到P1口 ACALLDELAY;調(diào)用延時子程序

溫馨提示

  • 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

提交評論