




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
項(xiàng)目38個(gè)LED發(fā)光二極管控制知識(shí)與能力目標(biāo)進(jìn)一步掌握單片機(jī)的I/O口功能與特性。1掌握簡(jiǎn)單按鍵接口電路及消除抖動(dòng)的措施。2初步學(xué)會(huì)按鍵軟件消抖的編程實(shí)現(xiàn)方法。34學(xué)會(huì)使用匯編語言進(jìn)行較復(fù)雜I/O口控制程序的分析與設(shè)計(jì)。12學(xué)會(huì)使用C語言進(jìn)行較復(fù)雜I/O口控制程序的分析與設(shè)計(jì)。5進(jìn)一步學(xué)習(xí)KeiluVsion3與Proteus軟件的使用。6項(xiàng)目38個(gè)LED發(fā)光二極管控制訓(xùn)練任務(wù)3.1雙邊拉幕燈控制3.1.1訓(xùn)練目的與控制要求3.1.3Proteus仿真電路圖創(chuàng)建3.1.5C語言程序設(shè)計(jì)與調(diào)試3.2.2硬件系統(tǒng)與控制流程分析3.1.2硬件系統(tǒng)與控制流程分析3.1.4匯編語言程序設(shè)計(jì)與調(diào)試3.2.1訓(xùn)練目的與控制要求3.2.3Proteus仿真電路圖創(chuàng)建3.2.4匯編語言程序設(shè)計(jì)與調(diào)試3.2.5C語言程序設(shè)計(jì)與調(diào)試2訓(xùn)練任務(wù)3.2雙向跑馬燈控制訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
1)進(jìn)一步掌握單片機(jī)I/O端口的知識(shí);2)掌握開關(guān)與LED接口電路分析與設(shè)計(jì);3)學(xué)會(huì)較復(fù)雜的單片機(jī)I/O口應(yīng)用程序分析與編寫;4)進(jìn)一步掌握單片機(jī)軟件延時(shí)程序的分析與編寫;5)進(jìn)一步學(xué)會(huì)程序的調(diào)試過程與仿真方法。1.訓(xùn)練目的3.1.1訓(xùn)練目的與控制要求2.訓(xùn)練任務(wù)訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
所示電路為一個(gè)89C51單片機(jī)控制8個(gè)LED發(fā)光管進(jìn)行“雙邊拉幕燈控制”運(yùn)行的電路原理圖,LED1至LED4為模擬的左邊幕,LED5至LED8為模擬的右邊幕。該單片機(jī)應(yīng)用系統(tǒng)的具體功能為:當(dāng)系統(tǒng)上電運(yùn)行工作時(shí),模擬左右兩邊幕的LED燈同步由兩邊向中間逐一點(diǎn)亮,當(dāng)全部亮后,再同步由中間向兩邊逐一熄滅。以此往復(fù)循環(huán)運(yùn)行,形成“雙邊拉幕燈”效果。開關(guān)S2用于系統(tǒng)的運(yùn)行和停止控制,當(dāng)其閉合時(shí),系統(tǒng)工作;當(dāng)其斷開時(shí),系統(tǒng)暫停處于當(dāng)前狀態(tài)訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
3.訓(xùn)練要求訓(xùn)練任務(wù)要求如下:1)進(jìn)行單片機(jī)應(yīng)用電路分析,并完成Proteus仿真電路圖的繪制。2)根據(jù)任務(wù)要求進(jìn)行單片機(jī)控制程序流程和程序設(shè)計(jì)思路分析,畫出程序流程圖。3)依據(jù)程序流程圖在Keil中進(jìn)行源程序的編寫與編譯工作。4)在Proteus中進(jìn)行程序的調(diào)試與仿真工作,最終完成實(shí)現(xiàn)任務(wù)要求的程序。5)完成單片機(jī)應(yīng)用系統(tǒng)實(shí)物裝置的焊接制作,并下載程序?qū)崿F(xiàn)正常運(yùn)行。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
3.1.2硬件系統(tǒng)與控制流程分析1.任務(wù)硬件系統(tǒng)分析該電路是在單片機(jī)最小系統(tǒng)的基礎(chǔ)之上,添加8個(gè)LED驅(qū)動(dòng)電路設(shè)計(jì)而成。所有LED電路都與P1連接,接口方式均設(shè)計(jì)為低電平驅(qū)動(dòng)。同時(shí),在P2.3口外接一個(gè)開關(guān)接口電路。2.任務(wù)控制流程分析根據(jù)電路原理圖和任務(wù)控制功能要求可知,本任務(wù)功能上主要是通過一個(gè)開關(guān)控制單片機(jī)應(yīng)用系統(tǒng)的運(yùn)行和停止。當(dāng)開關(guān)斷開時(shí),系統(tǒng)暫停且處于當(dāng)前狀態(tài);當(dāng)開關(guān)閉合時(shí),系統(tǒng)運(yùn)行。運(yùn)行方式為:左右兩邊幕的LED燈同步由兩邊向中間逐一點(diǎn)亮,當(dāng)全部亮后,再同步由中間向兩邊逐一熄滅,以此往復(fù)循環(huán)運(yùn)行。如圖3-2所示為本任務(wù)程序設(shè)計(jì)的程序控制流程圖。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
3.1.3Proteus仿真電路圖創(chuàng)建名稱型號(hào)數(shù)量備注(Protues中元器件名稱)單片機(jī)AT89C511AT89C51陶瓷電容30pF2CAP電解電容22uF1CAP-ELEC晶振12MHZ1CRYSTAL發(fā)光二極管黃色8LED-YELLOW電阻1KΩ1RES電阻300Ω8RES電阻10KΩ1RES電阻200Ω1RES按鈕
1BUTTON刀開關(guān)
1SW-SPST表3-1元器件配置表訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
圖3-3雙邊拉幕燈控制仿真圖匯編語言程序設(shè)計(jì)分析訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
3.1.4匯編語言程序設(shè)計(jì)與調(diào)試1)按照前面任務(wù)2.1.4中Proteus與Keil聯(lián)調(diào)的步驟完成基本的軟件設(shè)置。如果前面已經(jīng)設(shè)置過一次,在此可以跳過忽略。2)用Proteus打開已繪制好的“雙邊拉幕燈控制.DSN”文件,在Proteus的“Debug”菜單中選中“UseRemoteDebugMonitor(遠(yuǎn)程監(jiān)控)”。同時(shí),右鍵選中STC89C51單片機(jī),在彈出對(duì)話框“ProgramFile”項(xiàng)中,導(dǎo)入在Keil中生成的十六進(jìn)制HEX文件“雙邊拉幕燈控制.HEX”。3)用Keil打開剛才創(chuàng)建好的“雙邊拉幕燈控制.UV2”文件,打開窗口“OptionforTarget‘工程名’”。在Debug選項(xiàng)中右欄上部的下拉菜單選中ProteusVSMSimulator。接著再點(diǎn)擊進(jìn)入Settings窗口,設(shè)置IP為127.0.0.1,端口號(hào)為8000。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
4)在Keil中點(diǎn)擊,使用單步執(zhí)行來調(diào)試程序,同時(shí)在Proteus中查看直觀的仿真結(jié)果。這樣就可以像使用仿真器一樣調(diào)試程序了,如圖3-4所示。圖3-4Proteus與Keil聯(lián)調(diào)界面訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
首先,將Proteus仿真電路中的開關(guān)SW閉合,來聯(lián)合調(diào)試當(dāng)開關(guān)閉合時(shí)的系統(tǒng)運(yùn)行情況。當(dāng)執(zhí)行完“MOVR0,#0FFH”、“MOVR1,#7EH”、“MOVR2,#3CH”、“MOVR3,#18H”、“MOVR4,#00H”程序時(shí),能夠看到右側(cè)Keil軟件CPU窗口中R0=0XFF(全都熄滅的值)、R1=0X7E(左右各點(diǎn)亮一盞其余熄滅的值)、R2=0X3C(左右各點(diǎn)亮兩盞其余熄滅的值)、R3=0X18(中間兩盞熄滅其余點(diǎn)亮的值)以及R4=0X00(全都點(diǎn)亮的值)的賦值。當(dāng)單步執(zhí)行程序,按順序分別執(zhí)行完“MOVP1,R0”、“MOVP1,R1”、“MOVP1,R2”、“MOVP1,R3”和“MOVP1,R4”程序語句后,就能看到LED燈由兩邊同步向中間逐一點(diǎn)亮的效果,如圖3-5和圖3-6所示。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
P1.0、P1.7點(diǎn)亮P1.0、P1.7低電平R0~R4的賦值圖3-5點(diǎn)亮2個(gè)LED訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
全部點(diǎn)亮P1口低電平圖3-6點(diǎn)亮8個(gè)LED訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
當(dāng)單步執(zhí)行程序,按順序分別執(zhí)行完“MOVP1,R4”、“MOVP1,R3”、“MOVP1,R2”、“MOVP1,R1”、“MOVP1,R0”程序語句后,就能看到LED燈由中間同步向兩邊逐一熄滅的效果,如圖3-7所示。P1.3、P1.4熄滅高電平熄滅訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
其次,將Proteus仿真電路在聯(lián)合調(diào)試過程中斷開開關(guān)SW,觀察開關(guān)斷開時(shí)的系統(tǒng)運(yùn)行情況。SW斷開P2.3高電平暫停狀態(tài)訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
Proteus仿真運(yùn)行圖3-9仿真運(yùn)行結(jié)果(一)界面當(dāng)開關(guān)閉合時(shí),系統(tǒng)運(yùn)行,觀察到LED燈由兩邊同步向中間逐一點(diǎn)亮,其運(yùn)行結(jié)果如圖3-9。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
圖3-10仿真運(yùn)行結(jié)果(二)界面當(dāng)全部點(diǎn)亮后,再由中間同步向兩邊逐一熄滅,其運(yùn)行結(jié)果如圖3-10,以此往復(fù)循環(huán)運(yùn)行。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
圖3-11仿真運(yùn)行結(jié)果(三)界面當(dāng)開關(guān)斷開時(shí),系統(tǒng)運(yùn)行暫停,會(huì)觀察到LED燈運(yùn)行暫停在SW開光斷開之前的狀態(tài),其運(yùn)行結(jié)果如圖3-11所示。仿真運(yùn)行視頻C語言程序設(shè)計(jì)分析訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
3.1.5C語言程序設(shè)計(jì)與調(diào)試1)按照前面任務(wù)2.1.5中Proteus與Keil聯(lián)調(diào)的步驟完成基本的軟件設(shè)置。如果前面已經(jīng)設(shè)置過一次,在此可以跳過忽略。2)用Proteus打開已繪制好的“雙邊拉幕燈控制.DSN”文件,在Proteus的“Debug”菜單中選中“UseRemoteDebugMonitor(遠(yuǎn)程監(jiān)控)”。同時(shí),右鍵選中STC89C51單片機(jī),在彈出對(duì)話框“ProgramFile”項(xiàng)中,導(dǎo)入在Keil中生成的十六進(jìn)制HEX文件“雙邊拉幕燈控制.HEX”。3)用Keil打開剛才創(chuàng)建好的“雙邊拉幕燈控制.UV2”文件,打開窗口“OptionforTarget‘工程名’”。在Debug選項(xiàng)中右欄上部的下拉菜單選中ProteusVSMSimulator。接著再點(diǎn)擊進(jìn)入Settings窗口,設(shè)置IP為127.0.0.1,端口號(hào)為8000。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
4)在Keil中點(diǎn)擊,使用單步執(zhí)行來調(diào)試程序,同時(shí)在Proteus中查看直觀的仿真結(jié)果。這樣就可以像使用仿真器一樣調(diào)試程序了,Proteus與Keil聯(lián)調(diào)界面如圖3-12所示。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
首先,將Proteus仿真電路中的開關(guān)SW閉合,來聯(lián)合調(diào)試當(dāng)開關(guān)閉合時(shí)的系統(tǒng)運(yùn)行情況。當(dāng)單步執(zhí)行程序運(yùn)行到“LED=0X7E;”時(shí),能夠清楚地看到左側(cè)Proteus仿真電路中P1口中P1.0和P1.7所接的LED發(fā)光管點(diǎn)亮,其余熄滅,如圖3-13所示。P1.0、P1.7點(diǎn)亮P1.0、P1.7低電平R0~R4的賦值訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
當(dāng)單步執(zhí)行程序運(yùn)行到“for(i=0;i<4;i++)”時(shí),程序在for程序段進(jìn)行4次循環(huán),在循環(huán)里每次執(zhí)行完一次語句“LED=(LED<<1&LED>>1);”后,就會(huì)增加點(diǎn)亮2個(gè)LED燈,就能觀察到LED燈由兩邊同步向中間逐一點(diǎn)亮的效果。直到程序進(jìn)行完4次循環(huán)后,程序?qū)⑻鰂or程序段繼續(xù)往下執(zhí)行,如圖3-14所示。全部點(diǎn)亮P1口低電平訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
當(dāng)單步執(zhí)行程序運(yùn)行到“LED=0X18;”后,能夠清楚地看到左側(cè)Proteus仿真電路中P1口中P1.3和P1.4所接的LED發(fā)光管熄滅,其余點(diǎn)亮,如圖3-15所示。P1.3、P1.4熄滅2位高電平訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
當(dāng)單步執(zhí)行程序又運(yùn)行到“for(i=0;i<4;i++)”時(shí),程序再進(jìn)行4次循環(huán),在循環(huán)里每次執(zhí)行完一次“LED=(LED<<1|LED>>1);”后,就會(huì)增加熄滅2個(gè)LED燈,就能觀察到LED燈由中間同步向兩邊逐一熄滅的效果,4次循環(huán)后8個(gè)LED燈全部熄滅,且跳出for循環(huán)體,如圖3-16和圖3-17所示。熄滅4個(gè)LED4位高電平訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
熄滅8個(gè)LED全部高電平圖3-17熄滅8個(gè)LED訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
其次,將Proteus仿真電路在聯(lián)合調(diào)試過程中斷開開關(guān)SW,觀察開關(guān)斷開時(shí)的系統(tǒng)運(yùn)行情況。當(dāng)單步執(zhí)行程序到“LED=0X7E;for(i=0;i<4;i++);”程序時(shí),斷開開光SW,繼續(xù)單步執(zhí)行程序到“while(SW==1);”程序后,因?yàn)镻2.3輸出為高電平,所以運(yùn)行程序?qū)和T凇皐hile(SW==1);”程序上,不能再執(zhí)行。而左側(cè)Proteus仿真電路中P1口所接的發(fā)光管的狀態(tài),暫停在上一步程序運(yùn)行狀態(tài)中,如圖3-18所示。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
SW斷開暫停狀態(tài)P2.3高電平圖3-18運(yùn)行暫停狀態(tài)訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
用Proteus打開已繪制好的“雙邊拉幕燈控制.DSN”文件,并將最后調(diào)試完成的程序重新編譯生成新“.HEX”文件導(dǎo)入Proteus中。當(dāng)單片機(jī)運(yùn)行時(shí),SW開關(guān)控制單片機(jī)應(yīng)用系統(tǒng)的運(yùn)行和暫停。當(dāng)開關(guān)閉合時(shí),系統(tǒng)運(yùn)行,觀察到LED燈由兩邊同步向中間逐一點(diǎn)亮;當(dāng)全部點(diǎn)亮后,再由中間同步向兩邊逐一熄滅,以此往復(fù)循環(huán)運(yùn)行。當(dāng)開關(guān)斷開時(shí),系統(tǒng)運(yùn)行暫停,會(huì)觀察到LED燈運(yùn)行暫停在SW開光斷開之前的狀態(tài)。仿真運(yùn)行結(jié)果參照任務(wù)3.1.4的仿真運(yùn)行結(jié)果。訓(xùn)練任務(wù)3.1雙邊拉幕燈控制
訓(xùn)練任務(wù)3.2雙向跑馬燈控制
1)進(jìn)一步掌握單片機(jī)I/O端口的知識(shí);2)掌握簡(jiǎn)單按鍵接口電路分析與設(shè)計(jì);3)學(xué)會(huì)較復(fù)雜的單片機(jī)I/O口應(yīng)用程序分析與編寫;4)學(xué)習(xí)掌握單片機(jī)按鍵消除抖動(dòng)的程序分析與編寫;5)進(jìn)一步學(xué)會(huì)程序的調(diào)試過程與仿真方法。1.訓(xùn)練目的3.2.1訓(xùn)練目的與控制要求訓(xùn)練任務(wù)3.2雙向跑馬燈控制
2.訓(xùn)練任務(wù)如圖3-19所示電路為一個(gè)89C51單片機(jī)控制8個(gè)LED發(fā)光管進(jìn)行“雙向跑馬燈控制”運(yùn)行的電路原理圖。該單片機(jī)應(yīng)用系統(tǒng)的具體功能為:當(dāng)系統(tǒng)上電運(yùn)行工作時(shí),當(dāng)有啟動(dòng)按鈕按下后,8個(gè)LED從LED1開始輪流右移點(diǎn)亮,當(dāng)右移到LED8點(diǎn)亮?xí)r;再返向左移輪流點(diǎn)亮,一直到LED1點(diǎn)亮為止,以此往復(fù)循環(huán)運(yùn)行,形成一個(gè)亮點(diǎn)來回跑動(dòng)的“雙向跑馬燈”效果。當(dāng)停止按鈕按下時(shí),系統(tǒng)暫停處于當(dāng)前狀態(tài),但是啟動(dòng)按鈕按下時(shí)又會(huì)繼續(xù)運(yùn)行;其具體的工作運(yùn)行情況見本書配套教材附帶光盤中的仿真運(yùn)行視頻文件。訓(xùn)練任務(wù)3.2雙向跑馬燈控制
3.訓(xùn)練要求訓(xùn)練任務(wù)要求如下:1)進(jìn)行單片機(jī)應(yīng)用電路分析,并完成Proteus仿真電路圖的繪制。2)根據(jù)任務(wù)要求進(jìn)行單片機(jī)控制程序流程和程序設(shè)計(jì)思路分析,畫出程序流程圖。3)依據(jù)程序流程圖在Keil中進(jìn)行源程序的編寫與編譯工作。4)在Proteus中進(jìn)行程序的調(diào)試與仿真工作,最終完成實(shí)現(xiàn)任務(wù)要求的程序。5)完成單片機(jī)應(yīng)用系統(tǒng)實(shí)物裝置的焊接制作,并下載程序?qū)崿F(xiàn)正常運(yùn)行。訓(xùn)練任務(wù)3.2雙向跑馬燈控制
3.2.2硬件系統(tǒng)與控制流程分析1.任務(wù)硬件系統(tǒng)分析該電路是在單片機(jī)最小系統(tǒng)的基礎(chǔ)之上,添加8個(gè)LED驅(qū)動(dòng)電路設(shè)計(jì)而成。所有LED電路都與P2口連接,接口方式均設(shè)計(jì)為低電平驅(qū)動(dòng)。同時(shí),在P3.0和P3.1口外分別接有一按鍵接口電路,用于系統(tǒng)的運(yùn)行和暫停輸入控制。2.任務(wù)控制流程分析根據(jù)電路原理圖和任務(wù)控制功能要求可知,本任務(wù)功能上主要是通過兩個(gè)按鈕控制單片機(jī)的應(yīng)用系統(tǒng)啟動(dòng)和停止。當(dāng)啟動(dòng)按鈕按下后,8個(gè)LED從LED1開始輪流右移點(diǎn)亮;當(dāng)右移到LED8點(diǎn)亮?xí)r,再返向左移輪流點(diǎn)亮,一直到LED1點(diǎn)亮為止,以此往復(fù)循環(huán)運(yùn)行。當(dāng)暫停按鈕按下時(shí),系統(tǒng)暫停于當(dāng)前狀態(tài),直到啟動(dòng)按鈕再次按下時(shí)繼續(xù)運(yùn)行。訓(xùn)練任務(wù)3.2雙向跑馬燈控制
圖3-20雙向跑馬燈控制流程圖訓(xùn)練任務(wù)3.2雙向跑馬燈控制
3.2.3Proteus仿真電路圖創(chuàng)建名稱型號(hào)數(shù)量備注(Protues中元器件名稱)單片機(jī)AT89C511AT89C51陶瓷電容30pF2CAP電解電容22uF1CAP-ELEC晶振12MHZ1CRYSTAL發(fā)光二極管黃色8LED-YELLOW電阻1KΩ1RES電阻300Ω8RES電阻10KΩ2RES電阻200Ω1RES按鈕
3BUTTON表3-2元器件配置表訓(xùn)練任務(wù)3.2雙向跑馬燈控制
用鼠標(biāo)雙擊桌面上的圖標(biāo)進(jìn)入“ProteusISIS”編輯窗口,單擊菜單命令“File”“NewDesign”,新建一個(gè)DEFAULT模板,并保存為“雙向跑馬燈控制.DSN”。在器件選擇按鈕單擊“P”按鈕,將表3-2中的元器件添加至對(duì)象選擇器窗口中。然后將各個(gè)元器件擺放好,最后依照?qǐng)D3-19所示的原理圖將各個(gè)器件連接起來,如圖3-21所示。匯編語言程序設(shè)計(jì)分析訓(xùn)練任務(wù)3.2雙向跑馬燈控制
3.2.4匯編語言程序設(shè)計(jì)與調(diào)試1)按照前面任務(wù)2.1.4中Proteus與Keil聯(lián)調(diào)的步驟完成基本的軟件設(shè)置。如果前面已經(jīng)設(shè)置過一次,在此可以跳過忽略。2)用Proteus打開已繪制好的“雙向跑馬燈控制.DSN”文件,在Proteus的“Debug”菜單中選中“UseRemoteDebugMonitor(遠(yuǎn)程監(jiān)控)”。同時(shí),右鍵選中STC89C51單片機(jī),在彈出對(duì)話框“ProgramFile”項(xiàng)中,導(dǎo)入在Keil中生成的十六進(jìn)制HEX文件“雙向跑馬燈控制.HEX”。3)用Keil打開剛才創(chuàng)建好的“雙向跑馬燈控制.UV2”文件,打開窗口“OptionforTarget‘工程名’”。在Debug選項(xiàng)中右欄上部的下拉菜單選中ProteusVSMSimulator。接著再點(diǎn)擊進(jìn)入Settings窗口,設(shè)置IP為127.0.0.1,端口號(hào)為8000。訓(xùn)練任務(wù)3.2雙向跑馬燈控制
4)在Keil中點(diǎn)擊,使用單步執(zhí)行來調(diào)試程序,同時(shí)在Proteus中查看直觀的仿真結(jié)果。這樣就可以像使用仿真器一樣調(diào)試程序了,Proteus與Keil聯(lián)調(diào)界面如圖3-22所示。訓(xùn)練任務(wù)3.2雙向跑馬燈控制
在聯(lián)調(diào)時(shí)需要啟動(dòng)按鍵輸入信號(hào),點(diǎn)擊按鍵旁的雙向箭頭,單擊此箭頭按鈕變成常閉導(dǎo)通狀態(tài);再次單擊箭頭或單擊按鈕,則按鈕恢復(fù)原狀。先將啟動(dòng)按鍵設(shè)置為常閉狀態(tài),再使用單步執(zhí)行程序。模擬啟動(dòng)按鈕按下,P3.0輸入低電平,執(zhí)行程序“LCALLAN_JIAN”。由于AN_JIAN子程序中有調(diào)用按鍵按下和松開功能的去抖子程序,所以退出子程序之前必須將模擬啟動(dòng)按鈕斷開。當(dāng)有檢測(cè)有運(yùn)行信號(hào)后,子程序執(zhí)行結(jié)果反饋X為0,執(zhí)行雙向跑馬燈的程序段,如圖3-23和3-24所示。訓(xùn)練任務(wù)3.2雙向跑馬燈控制
P3.0輸入低電平模擬運(yùn)行信號(hào)B=0X01、初始狀態(tài)圖3-23模擬運(yùn)行信號(hào)調(diào)試界面訓(xùn)練任務(wù)3.2雙向跑馬燈控制
B.0=0、運(yùn)行狀態(tài)P3.0=1解除模擬運(yùn)行信號(hào)圖3-24模擬運(yùn)行信號(hào)解除界面訓(xùn)練任務(wù)3.2雙向跑馬燈控制
單步運(yùn)行程序,可在左側(cè)Proteus仿真電路圖中看到跑馬燈的效果,如圖3-25所示圖3-25雙向跑馬燈運(yùn)行狀態(tài)調(diào)試界面訓(xùn)練任務(wù)3.2雙向跑馬燈控制
同樣,暫停信號(hào)也可以使用這樣方法模擬,當(dāng)暫停信號(hào)產(chǎn)生后跑馬燈會(huì)立即停止移動(dòng),直到運(yùn)行信號(hào)重新產(chǎn)生,如圖3-26所示。B.0=1、暫停狀態(tài)圖3-26雙向跑馬燈暫停狀態(tài)調(diào)試界面訓(xùn)練任務(wù)3.2雙向跑馬燈控制
Proteus仿真運(yùn)行用Proteus打開已繪制好的“雙向跑馬燈控制.DSN”,并將最后調(diào)試完成的程序重新編譯生成新“.HEX”文件導(dǎo)入Proteus中。運(yùn)行時(shí),當(dāng)P3.0啟動(dòng)按鈕按下后,8個(gè)LED進(jìn)行雙向點(diǎn)亮運(yùn)行,如圖3-26所示。圖3-27仿真運(yùn)行結(jié)果(一)界面訓(xùn)練任務(wù)3.2雙向跑馬燈控制
當(dāng)P3.1暫停按鈕按下后,8個(gè)LED暫停運(yùn)行并保持在當(dāng)前狀態(tài),如圖3-28所示。直到P3.0再次按下,8個(gè)LED從暫停狀態(tài)再次繼續(xù)運(yùn)行。圖3-28仿真運(yùn)行結(jié)果(二)界面仿真運(yùn)行視頻C語言程序設(shè)計(jì)分析訓(xùn)練任務(wù)3.2雙向跑馬燈控制
3.2.5C語言程序設(shè)計(jì)與調(diào)試1)按照前面任務(wù)2.1.5中Proteus與Keil聯(lián)調(diào)的步驟完成基本的軟件設(shè)置。如果前面已經(jīng)設(shè)置過一次,在此可以跳過。2)用Proteus打開已繪制好的“雙向跑馬燈控制.DSN”文件,在Proteus的“Debug”菜單中選中“UseRemoteDebugMonitor(遠(yuǎn)程監(jiān)控)”。同時(shí),右鍵選中STC89C51單片機(jī),在彈出對(duì)話框“ProgramFile”項(xiàng)中,導(dǎo)入在Keil中生成的十六進(jìn)制HEX文件“雙向跑馬燈控制.HEX”。3)用Keil打開剛才創(chuàng)建好的“雙向跑馬燈控制.UV2”文件,打開窗口“OptionforTarget‘工程名’”。在Debug選項(xiàng)中右欄上部的下拉菜單選中ProteusVSMSimulator。接著再點(diǎn)擊進(jìn)入Settings窗口,設(shè)置IP為
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 合作協(xié)議(五)-合同細(xì)則
- 空調(diào)購銷合作合同書
- 品牌商與供應(yīng)商采購合同范本
- 技術(shù)服務(wù)合同(實(shí)例)
- 詳解:威海房屋過戶合同辦理步驟
- 廢鋼采購及服務(wù)合同全文
- 醫(yī)療事故賠償合同協(xié)議書
- 度證券登記服務(wù)合同協(xié)議
- 雙方黨組織結(jié)對(duì)共建合同書
- 建筑試驗(yàn)培訓(xùn)課件
- 林木種子質(zhì)量分級(jí)
- 白條豬分割測(cè)算參考表
- 廣東佛山生育保險(xiǎn)待遇申請(qǐng)表
- DB11-T 825-2021綠色建筑評(píng)價(jià)標(biāo)準(zhǔn)
- 2019安徽中考語文真題含答案
- 新生兒科出科考試試卷試題
- 信息化教學(xué)設(shè)計(jì)教案大學(xué)語文
- 氧氣、二氧化碳、氬氣安全周知卡
- 基層醫(yī)療衛(wèi)生機(jī)構(gòu)崗位設(shè)置指導(dǎo)意見
- FSC-COC培訓(xùn)學(xué)習(xí)
- 焊接線能量的計(jì)算公式
評(píng)論
0/150
提交評(píng)論