




版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用設(shè)置,新建一個(gè)工程,新建一個(gè)程序ASM文件,加載一個(gè)文件,編譯與傳輸?shù)接布?。觀察:學(xué)會(huì)硬件的觀察,以及存儲(chǔ)器單元的觀察實(shí)例:完成對(duì)一組LED燈的閃爍控制。1第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用觀察Keil軟件介紹啟動(dòng)界面2Keil軟件介紹啟動(dòng)界面2圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗口工程管理器窗口工具欄菜單欄編輯窗口3圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗441、新建一個(gè)項(xiàng)目(NewProject)點(diǎn)擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如下圖。接著彈出一個(gè)標(biāo)準(zhǔn)Windows文件對(duì)話窗口。51、新建一個(gè)項(xiàng)目(NewProject)5如下圖在“文件名”中輸入您的第一個(gè)C程序項(xiàng)目名稱(chēng),這里我們用“test”,“保存”后的文件擴(kuò)展名為uv2,這是KEILuVision2項(xiàng)目文件擴(kuò)展名
注意:先在F盤(pán)建“09DQxxxyyy”的文件夾6如下圖在“文件名”中輸入您的第一個(gè)C程序項(xiàng)目名稱(chēng),這里我們用2、選擇所用的單片機(jī)類(lèi)型
Atmal下的AT89C5272、選擇所用的單片機(jī)類(lèi)型
Atmal下的AT3、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,在“2”中出現(xiàn)一個(gè)新的文字編輯窗口“3”是存盤(pán)的快捷按鈕83、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,4、編輯源文件注意:Tab鍵的使用94、編輯源文件注意:Tab鍵的使用95、保存源文件為xxx.asm文件
注意:文件的后綴名105、保存源文件為xxx.asm文件
注意:文件的后綴名106、向項(xiàng)目中添加文件操作:選擇sourcegroup,按右鍵,選擇AddFilestoGroup’Sourcegroup1’116、向項(xiàng)目中添加文件操作:選擇sourcegroup,按右1、2、3都是編譯按鈕。1是用于編譯單個(gè)文件。2是編譯當(dāng)前項(xiàng)目(如果先前編譯過(guò)一次之后文件沒(méi)有編輯改動(dòng),不會(huì)再次重新編譯的)。3是重新編譯(每點(diǎn)擊一次均會(huì)再次編譯鏈接一次,不管程序是否有改動(dòng))。在3右邊的是停止編譯按鈕,只有點(diǎn)擊了前三個(gè)中的任一個(gè),停止按鈕才會(huì)生效。4是信息窗口。5是包含了1、2、3。6是進(jìn)入調(diào)試模式。7、編譯源文件為機(jī)器碼127、編譯源文件為機(jī)器碼128、選擇程序存儲(chǔ)目標(biāo)138、選擇程序存儲(chǔ)目標(biāo)139、創(chuàng)建EPROM可以存儲(chǔ)的HEX文件149、創(chuàng)建EPROM可以存儲(chǔ)的HEX文件1411、開(kāi)始/停止調(diào)試1511、開(kāi)始/停止調(diào)試1512、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開(kāi)始Debug”1612、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開(kāi)始D13、觀察程序存儲(chǔ)器操作:在“Address”中輸入:0000,或者c:00001713、觀察程序存儲(chǔ)器操作:在“Address”中輸入:00014、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序前)操作:在“Address”中輸入:D:00001814、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序前)操作:在“Address”15、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序后)1915、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序后)19總結(jié)(Keil過(guò)程)(1)新建一個(gè)Project項(xiàng)目文件(.uv2)選擇單片機(jī)型號(hào)(Atmel-AT89C51)(2)編輯源文件并存盤(pán)(.ASM)(3)將源程序添加到工程中(4)設(shè)置Keil工程目標(biāo)項(xiàng)Output:CreateHEXfilesDebug:UseKeilMonitor-51Driver(5)匯編源程序,生成HEX文件(6)運(yùn)行調(diào)試Debug—Start/StopDebugSession連接仿真器(注意復(fù)位)運(yùn)行:Go、Step、StepOver、Stop20總結(jié)(Keil過(guò)程)(1)新建一個(gè)Project項(xiàng)目文件(.實(shí)例:?jiǎn)纹瑱C(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低電平/高電平發(fā)亮?):MOVP1,#00H或者M(jìn)OVP1,#0FFH如何使LED燈閃爍?
按照Keil使用方法,連接仿真器,完成這個(gè)實(shí)驗(yàn),總結(jié)實(shí)驗(yàn)過(guò)程!21實(shí)例:?jiǎn)纹瑱C(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低硬件線路22硬件線路22回顧一下保存源文件時(shí),要輸入.ASM源程序修改后,除了保存之外,還要重新匯編(檢查程序錯(cuò)誤,一定要0Error方可)編譯生成HEX文件(機(jī)器碼)如何控制各個(gè)窗口?運(yùn)行:Go(Run,運(yùn)行整個(gè)程序)Step(單步運(yùn)行)StepOver(過(guò)程單步:將一個(gè)子程序這個(gè)過(guò)程作為單步運(yùn)行)StopRunning(停止運(yùn)行)斷點(diǎn)的設(shè)置與運(yùn)行觀察(MemoryWindow)以下在第三次課繼續(xù)23回顧一下保存源文件時(shí),要輸入.ASM以下在第三次課繼續(xù)23復(fù)雜問(wèn)題幾個(gè)發(fā)光管亮的情況幾個(gè)發(fā)光管循環(huán)亮的情況24復(fù)雜問(wèn)題幾個(gè)發(fā)光管亮的情況24部分源代碼一個(gè)發(fā)光管顯示的例子 ORG 0000HSTART: MOV P1,#0FEH SJMP$ END25部分源代碼一個(gè)發(fā)光管顯示的例子25部分源程序一個(gè)發(fā)光管閃爍的程序 ORG 0000HSTART:MOVP1,#0FEH ACALLDELAY MOVP1,#0FFH ACALLDELAY SJMPSTARTDELAY:MOVR5,#0FFHD1:MOVR4,#0FFHDJNZR4,$DJNZR5,D1RETEND26部分源程序一個(gè)發(fā)光管閃爍的程序DELAY:MOVR5,#0觀察:延時(shí)程序的延時(shí)時(shí)間Sec=0.06s=60ms如何計(jì)算,以后會(huì)講27觀察:延時(shí)程序的延時(shí)時(shí)間Sec=0.06s=60ms27部分源程序
發(fā)光管循環(huán)(流水燈)程序 ORG 0000HSTART: MOV A,#0FEHS1: MOVP1,A RLA ACALLDELAY SJMPS1DELAY: …… END開(kāi)始設(shè)置初始值設(shè)移位次數(shù)數(shù)據(jù)輸出左一位延時(shí)移位次數(shù)完成?是否(A)P1口循環(huán)點(diǎn)燈程序框圖28部分源程序
發(fā)光管循環(huán)(流水燈)程序 ORG 0000討論任意變化怎么辦?運(yùn)用查表法所編寫(xiě)的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無(wú)限,只要更改流水花樣數(shù)據(jù)表的流水?dāng)?shù)據(jù)就可以隨意添加或改變流水花樣,真正實(shí)現(xiàn)隨心所欲的流水燈效果。方法:把要顯示流水花樣的數(shù)據(jù)建在一個(gè)以TAB為標(biāo)號(hào)的數(shù)據(jù)表中,然后通過(guò)查表指令“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;所有花樣流完,則從頭開(kāi)始重復(fù)流SHOW: MOVP1,A;將數(shù)據(jù)送到P1口 ACALLDELAY;調(diào)用延時(shí)子程序 INCDPTR;取數(shù)據(jù)表指針指向下一數(shù)據(jù) AJMPLOOP;繼續(xù)查表取數(shù)據(jù)30發(fā)光管任意變換的程序 ORG0000H30TAB:;下面是流水花樣數(shù)據(jù)表,用戶可據(jù)要求任意編寫(xiě) 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ù)要求任意編一個(gè)新任務(wù):
P1口控制繼電器用P1.0作為控制輸出口,接繼電器電路,使繼電器重復(fù)吸合與斷開(kāi)。提示:如何使P1.0為1或0?方法一:MOVP1,#??H方法二:SETBP1.0;置P1.0為1CLRP1.0;置P1.0為0繼電器吸合延時(shí)繼電器斷開(kāi)開(kāi)始延時(shí)32一個(gè)新任務(wù):
P1電路設(shè)計(jì)33電路設(shè)計(jì)33第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用設(shè)置,新建一個(gè)工程,新建一個(gè)程序ASM文件,加載一個(gè)文件,編譯與傳輸?shù)接布?。觀察:學(xué)會(huì)硬件的觀察,以及存儲(chǔ)器單元的觀察實(shí)例:完成對(duì)一組LED燈的閃爍控制。34第2講單片機(jī)控制LED燈本講內(nèi)容:介紹Keil的使用觀察Keil軟件介紹啟動(dòng)界面35Keil軟件介紹啟動(dòng)界面2圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗口工程管理器窗口工具欄菜單欄編輯窗口36圖2-6KeilC51在編輯狀態(tài)下的操作界面輸出信息窗3741、新建一個(gè)項(xiàng)目(NewProject)點(diǎn)擊Project菜單,選擇彈出的下拉式菜單中的NewProject,如下圖。接著彈出一個(gè)標(biāo)準(zhǔn)Windows文件對(duì)話窗口。381、新建一個(gè)項(xiàng)目(NewProject)5如下圖在“文件名”中輸入您的第一個(gè)C程序項(xiàng)目名稱(chēng),這里我們用“test”,“保存”后的文件擴(kuò)展名為uv2,這是KEILuVision2項(xiàng)目文件擴(kuò)展名
注意:先在F盤(pán)建“09DQxxxyyy”的文件夾39如下圖在“文件名”中輸入您的第一個(gè)C程序項(xiàng)目名稱(chēng),這里我們用2、選擇所用的單片機(jī)類(lèi)型
Atmal下的AT89C52402、選擇所用的單片機(jī)類(lèi)型
Atmal下的AT3、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,在“2”中出現(xiàn)一個(gè)新的文字編輯窗口“3”是存盤(pán)的快捷按鈕413、新建單片機(jī)源文件(.ASM)“1”是新建文件的快捷按鈕,4、編輯源文件注意:Tab鍵的使用424、編輯源文件注意:Tab鍵的使用95、保存源文件為xxx.asm文件
注意:文件的后綴名435、保存源文件為xxx.asm文件
注意:文件的后綴名106、向項(xiàng)目中添加文件操作:選擇sourcegroup,按右鍵,選擇AddFilestoGroup’Sourcegroup1’446、向項(xiàng)目中添加文件操作:選擇sourcegroup,按右1、2、3都是編譯按鈕。1是用于編譯單個(gè)文件。2是編譯當(dāng)前項(xiàng)目(如果先前編譯過(guò)一次之后文件沒(méi)有編輯改動(dòng),不會(huì)再次重新編譯的)。3是重新編譯(每點(diǎn)擊一次均會(huì)再次編譯鏈接一次,不管程序是否有改動(dòng))。在3右邊的是停止編譯按鈕,只有點(diǎn)擊了前三個(gè)中的任一個(gè),停止按鈕才會(huì)生效。4是信息窗口。5是包含了1、2、3。6是進(jìn)入調(diào)試模式。7、編譯源文件為機(jī)器碼457、編譯源文件為機(jī)器碼128、選擇程序存儲(chǔ)目標(biāo)468、選擇程序存儲(chǔ)目標(biāo)139、創(chuàng)建EPROM可以存儲(chǔ)的HEX文件479、創(chuàng)建EPROM可以存儲(chǔ)的HEX文件1411、開(kāi)始/停止調(diào)試4811、開(kāi)始/停止調(diào)試1512、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開(kāi)始Debug”4912、連接到仿真器操作:先按仿真器的“復(fù)位”按鈕,再“開(kāi)始D13、觀察程序存儲(chǔ)器操作:在“Address”中輸入:0000,或者c:00005013、觀察程序存儲(chǔ)器操作:在“Address”中輸入:00014、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序前)操作:在“Address”中輸入:D:00005114、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序前)操作:在“Address”15、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序后)5215、觀察數(shù)據(jù)存儲(chǔ)器(運(yùn)行程序后)19總結(jié)(Keil過(guò)程)(1)新建一個(gè)Project項(xiàng)目文件(.uv2)選擇單片機(jī)型號(hào)(Atmel-AT89C51)(2)編輯源文件并存盤(pán)(.ASM)(3)將源程序添加到工程中(4)設(shè)置Keil工程目標(biāo)項(xiàng)Output:CreateHEXfilesDebug:UseKeilMonitor-51Driver(5)匯編源程序,生成HEX文件(6)運(yùn)行調(diào)試Debug—Start/StopDebugSession連接仿真器(注意復(fù)位)運(yùn)行:Go、Step、StepOver、Stop53總結(jié)(Keil過(guò)程)(1)新建一個(gè)Project項(xiàng)目文件(.實(shí)例:?jiǎn)纹瑱C(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低電平/高電平發(fā)亮?):MOVP1,#00H或者M(jìn)OVP1,#0FFH如何使LED燈閃爍?
按照Keil使用方法,連接仿真器,完成這個(gè)實(shí)驗(yàn),總結(jié)實(shí)驗(yàn)過(guò)程!54實(shí)例:?jiǎn)纹瑱C(jī)控制LED燈從P1輸出數(shù)據(jù),控制LED(觀察:低硬件線路55硬件線路22回顧一下保存源文件時(shí),要輸入.ASM源程序修改后,除了保存之外,還要重新匯編(檢查程序錯(cuò)誤,一定要0Error方可)編譯生成HEX文件(機(jī)器碼)如何控制各個(gè)窗口?運(yùn)行:Go(Run,運(yùn)行整個(gè)程序)Step(單步運(yùn)行)StepOver(過(guò)程單步:將一個(gè)子程序這個(gè)過(guò)程作為單步運(yùn)行)StopRunning(停止運(yùn)行)斷點(diǎn)的設(shè)置與運(yùn)行觀察(MemoryWindow)以下在第三次課繼續(xù)56回顧一下保存源文件時(shí),要輸入.ASM以下在第三次課繼續(xù)23復(fù)雜問(wèn)題幾個(gè)發(fā)光管亮的情況幾個(gè)發(fā)光管循環(huán)亮的情況57復(fù)雜問(wèn)題幾個(gè)發(fā)光管亮的情況24部分源代碼一個(gè)發(fā)光管顯示的例子 ORG 0000HSTART: MOV P1,#0FEH SJMP$ END58部分源代碼一個(gè)發(fā)光管顯示的例子25部分源程序一個(gè)發(fā)光管閃爍的程序 ORG 0000HSTART:MOVP1,#0FEH ACALLDELAY MOVP1,#0FFH ACALLDELAY SJMPSTARTDELAY:MOVR5,#0FFHD1:MOVR4,#0FFHDJNZR4,$DJNZR5,D1RETEND59部分源程序一個(gè)發(fā)光管閃爍的程序DELAY:MOVR5,#0觀察:延時(shí)程序的延時(shí)時(shí)間Sec=0.06s=60ms如何計(jì)算,以后會(huì)講60觀察:延時(shí)程序的延時(shí)時(shí)間Sec=0.06s=60ms27部分源程序
發(fā)光管循環(huán)(流水燈)程序 ORG 0000HSTART: MOV A,#0FEHS1: MOVP1,A RLA ACALLDELAY SJMPS1DELAY: …… END開(kāi)始設(shè)置初始值設(shè)移位次數(shù)數(shù)據(jù)輸出左一位延時(shí)移位次數(shù)完成?是否(A)P1口循環(huán)點(diǎn)燈程序框圖61部分源程序
發(fā)光管循環(huán)(流水燈)程序 ORG 0000討論任意變化怎么辦?運(yùn)用查表法所編寫(xiě)的流水燈程序,能夠?qū)崿F(xiàn)任意方式流水,而且流水花樣無(wú)限,只要更改流水花樣數(shù)據(jù)表的流水?dāng)?shù)據(jù)就可以隨意添加或改變流水花樣,真正實(shí)現(xiàn)隨心所欲的流水燈效果。方法:把要顯示流水花樣的數(shù)據(jù)建在一個(gè)以TAB為標(biāo)號(hào)的數(shù)據(jù)表中,然后通過(guò)查表指令“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;所有花樣流完,則從頭開(kāi)始重復(fù)流SHOW: MOVP1,A;將數(shù)據(jù)送到P1口 ACALLDELAY;調(diào)用延時(shí)子程序
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 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ì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 工業(yè)鍋爐司爐??荚囶}與答案
- 個(gè)人年度簡(jiǎn)短的工作總結(jié)
- 中級(jí)電工模擬習(xí)題含參考答案
- 廠區(qū)綠化管護(hù)合同范例
- 古建舊房出售合同范本
- 原料合同范本
- 《看望老人》教學(xué)反思
- 《撈鐵?!方虒W(xué)反思
- 雙人簽合同范本
- 《小人國(guó)》中班教案
- QSB質(zhì)量體系基礎(chǔ)課件
- 仁愛(ài)版八年級(jí)英語(yǔ)上復(fù)習(xí)課Unit 2 Keep Healthy Topic1 2教學(xué)課件
- 系統(tǒng)運(yùn)維投標(biāo)文件含運(yùn)維方案
- 《鹿角和鹿腿》 完整版課件
- 心理健康教育課《在變化中成長(zhǎng)》課件
- JJF 1341-2012 鋼筋銹蝕測(cè)量?jī)x校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 人教版數(shù)學(xué)五年級(jí)下冊(cè) 全冊(cè)各單元教材解析
- 給水排水管道工程質(zhì)量通病以及防治
- 偏癱臨床路徑流程
- GB-T 9251-2022 氣瓶水壓試驗(yàn)方法(高清版)
- 基于單片機(jī)的電子廣告牌設(shè)計(jì)畢業(yè)設(shè)計(jì)論文
評(píng)論
0/150
提交評(píng)論