單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書_第1頁
單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書_第2頁
單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書_第3頁
單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書_第4頁
單片機(jī)原理與接口技術(shù)實(shí)驗(yàn)指導(dǎo)書_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

PAGEPAGE3實(shí)驗(yàn)一P1口輸入、輸出實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康模?、學(xué)習(xí)P1口的使用方法2、學(xué)習(xí)延時(shí)子程序的編寫和使用二、實(shí)驗(yàn)說明P1口是準(zhǔn)雙向口,它作為輸出口時(shí)與一般的雙向口使用方法相同。由準(zhǔn)雙向口結(jié)構(gòu)可知當(dāng)P1口用作輸入口時(shí),必須先對(duì)口的鎖存器寫“1”,若不先對(duì)它寫“1”,讀入的數(shù)據(jù)是不正確的。三、實(shí)驗(yàn)內(nèi)容及步驟用P1口做輸出口,接八位邏輯電平顯示,程序功能使發(fā)光二極管從右到左輪流循環(huán)點(diǎn)亮。1、使用單片機(jī)最小應(yīng)用系統(tǒng)1模塊.關(guān)閉該模塊電源,用扁平數(shù)據(jù)線連接單片機(jī)P1口與八位邏輯電平顯示模塊。2、安裝好仿真器,用串行數(shù)據(jù)通信線連接計(jì)算機(jī)與仿真器,把仿真頭插到模塊的單片機(jī)插座中,打開模塊電源,打開仿真器電源。3、啟動(dòng)計(jì)算機(jī),打開偉福仿真軟件,進(jìn)入仿真環(huán)境.首先進(jìn)行仿真器的設(shè)置,選擇仿真器型號(hào)、仿真頭型號(hào)、CPU類型。選擇通信端口,點(diǎn)擊測(cè)試串行口,通信成功既可退出設(shè)置,進(jìn)行仿真。4、根據(jù)要求編寫源程序,進(jìn)行編譯。編譯無誤后,點(diǎn)擊全速執(zhí)行按鈕運(yùn)行程序,觀察發(fā)光二極管顯示情況。發(fā)光二極管單只從右到左輪流循環(huán)點(diǎn)亮.四、流程圖及源程序開始設(shè)置初始值開始設(shè)置初始值設(shè)移位次數(shù)數(shù)據(jù)輸出左一位延時(shí)移位次數(shù)完成?是否(A)P1口循環(huán)點(diǎn)燈程序框圖2.源程序:ORG00hLoop:mova,#0FEhmovr2,#8Output:movP1,arlaAcallDelaydjnzr2,OutputLjmpLoopDelay:movr6,#0movr7,#0DelayLoop:djnzr6,DelayLoop;延時(shí)程序djnzr7,DelayLoopretend五、思考題(1)對(duì)于本實(shí)驗(yàn)延時(shí)子程序Delay:MOVR6,0MOVR7,0DelayLoop:DJNZR6,DelayLoopDJNZR7,DelayLoopRET本模塊使用12MHz晶振,粗略計(jì)算此程序的執(zhí)行時(shí)間為多少?六、電路圖實(shí)驗(yàn)二十字路口交通燈實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、掌握51系列單片機(jī)的常用指令;2、掌握定時(shí)器的使用方法;3、掌握十字路口交通燈控制方法。二、實(shí)驗(yàn)內(nèi)容及步驟1、用CPU的P1口輸出控制信號(hào),控制六個(gè)LED燈(紅,綠,黃),模擬交通燈管理。按要求連接電路.2、根據(jù)要求編寫源程序,編譯無誤后,全速運(yùn)行程序。LED0、LED1、LED2分別表示東西方向綠、黃、紅燈三、實(shí)驗(yàn)電路連接LED0、LED1、LED2分別表示東西方向綠、黃、紅燈P1.0●-----—--—---—------●LED0P1。1●—-—-——--—-—-----———-●LED1LED3、LED4、LED5分別表示南北方向綠、黃、紅燈P1.2●—--—--—--—-—-----------●LED2LED3、LED4、LED5分別表示南北方向綠、黃、紅燈P1.3●—------—---————--—--●LED3P1.4●---—-—-——-——--—--———●LED4P1。5●-——-—--——-———----------●LED5四、實(shí)驗(yàn)說明l.因?yàn)楸緦?shí)驗(yàn)是交通燈控制實(shí)驗(yàn),所以要先了解實(shí)際交通燈的變化規(guī)律。假設(shè)一個(gè)十字路口為東西南北走向。初始為狀態(tài)0。狀態(tài)0:東西紅燈,南北紅燈;然后轉(zhuǎn)狀態(tài)1:南北綠燈通車,東西紅燈;過一段時(shí)間轉(zhuǎn)狀態(tài)2:南北綠燈閃幾次轉(zhuǎn)黃燈亮,延時(shí)幾秒,東西仍然紅燈;再轉(zhuǎn)狀態(tài)3:東西綠燈通車,南北紅燈;過一段時(shí)間轉(zhuǎn)狀態(tài)4:東西綠燈閃幾次轉(zhuǎn)亮黃燈,延時(shí)幾秒,南北仍然紅燈;最后循環(huán)至狀態(tài)1.2。各用一組紅、黃、綠色LED分別表示南北方向和東西方向紅綠燈。五、實(shí)驗(yàn)儀器和設(shè)備THKSCM-2單片機(jī)開發(fā)綜合實(shí)驗(yàn)裝置、PC機(jī)、WAVE軟件、E6000/S51仿真器+POD8X5X仿真頭等.六、流程圖及源程序LED_G1BITP1。0;東西綠燈LED_Y1BITP1.1;東西黃燈LED_R1BITP1.2;東西紅燈LED_G2BITP1.3;南北綠燈LED_Y2BITP1。4;南北黃燈LED_R2BITP1.5;南北紅燈ORG00HSTART:MOVTMOD,#01H;置T0工作方式1MOVTH0,#3CH;置T0定時(shí)初值50mSMOVTL0,#0B0HCLRTF0SETBTR0;啟動(dòng)T0LOOP0:MOVR2,#20;置1S計(jì)數(shù)初值50mS*20=1SMOVR3,#10;全亮10SLCALLSTATE0;調(diào)用狀態(tài)0WAIT0:JNBTF0,WAIT0;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR2,WAIT0;判1S到否?未到繼續(xù)狀態(tài)0MOVR2,#20DJNZR3,WAIT0;狀態(tài)0維持10SLOOP1:MOVR2,#20MOVR3,#20LCALLSTATE1WAIT1:JNBTF0,WAIT1;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR2,WAIT1;判1S到否?未到繼續(xù)狀態(tài)1MOVR2,#20DJNZR3,WAIT1;狀態(tài)1維持20SMOVR2,#5MOVR4,#4;閃爍200mSMOVR3,#3;綠燈閃3SLCALLSTATE2;調(diào)用狀態(tài)2WAIT2:JNBTF0,WAIT2;查詢50mS到否CLRTF0MOVTH0,#03CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR4,WAIT2;判200mS到否?未到繼續(xù)狀態(tài)2CPLLED_G1;東西綠燈閃MOVR4,#4;閃爍200mSDJNZR2,WAIT2;判1S到否?未到繼續(xù)狀態(tài)2MOVR2,#5DJNZR3,WAIT2;狀態(tài)2維持3SMOVR2,#20;MOVR3,#2;黃燈亮2SLCALLSTATE3;調(diào)用狀態(tài)3WAIT3:JNBTF0,WAIT3;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值50mSMOVTL0,#0B0HDJNZR2,WAIT3;判1S到否?未到繼續(xù)狀態(tài)3MOVR2,#20DJNZR3,WAIT3;狀態(tài)3維持2SMOVR2,#20MOVR3,#20;紅燈20SLCALLSTATE4;調(diào)用狀態(tài)4WAIT4:JNBTF0,WAIT4;查詢50mS到否CLRTF0MOVTH0,#3CH;恢復(fù)T0定時(shí)初值100mSMOVTL0,#0B0HDJNZR2,WAIT4;判1S到否?未到繼續(xù)狀態(tài)4MOVR2,#20;DJNZR3,WAIT4;狀態(tài)4維持20SMOVR2,#5;置50mS計(jì)數(shù)初值MOVR4,#4;閃爍200mSMOVR3,#3;綠燈閃3SLCALLSTATE5;調(diào)用狀態(tài)5WAIT5:JNBTF0,WAIT5;查詢50mS到否CLRTF0MOVTH0,#03CH;MOVTL0,#0B0HDJNZR4,WAIT5;判200mS到否?未到繼續(xù)狀態(tài)5CPLLED_G2;南北綠燈閃MOVR4,#4;閃爍200mSDJNZR2,WAIT5;判1S到否?未到繼續(xù)狀態(tài)5MOVR2,#5;DJNZR3,WAIT5;狀態(tài)5維持3SMOVR2,#20;MOVR3,#2;黃燈閃2SLCALLSTATE6;調(diào)用狀態(tài)6WAIT6:JNBTF0,WAIT6;查詢50mS到否CLRTF0MOVTH0,#3CH;MOVTL0,#0B0HDJNZR2,WAIT6;判1S到否?未到繼續(xù)狀態(tài)6MOVR2,#20DJNZR3,WAIT6;狀態(tài)6維持2SLJMPLOOP1;大循環(huán)STATE0:;狀態(tài)0,全亮SETBLED_G1SETBLED_Y1CLRLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2RETSTATE1:;狀態(tài)1CLRLED_G1;東西綠燈亮SETBLED_Y1SETBLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2;南北紅燈亮RETSTATE2:;狀態(tài)2SETBLED_Y1SETBLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2;南北紅燈亮RETSTATE3:;狀態(tài)3SETBLED_G1SETBLED_R1SETBLED_G2SETBLED_Y2CLRLED_R2;南北紅燈亮CLRLED_Y1;東西黃燈亮RETSTATE4:;狀態(tài)4SETBLED_G1SETBLED_Y1CLRLED_R1;東西紅燈亮CLRLED_G2;南北綠燈亮SETBLED_Y2SETBLED_R2RETSTATE5:;狀態(tài)5SETBLED_G1SETBLED_Y1CLRLED_R1;東西紅燈亮SETBLED_Y2SETBLED_R2RETSTATE6:;狀態(tài)6SETBLED_G1SETBLED_Y1CLRLED_R1;東西紅燈亮SETBLED_G2SETBLED_R2CLRLED_Y2;南北黃燈亮RET實(shí)驗(yàn)三電子時(shí)鐘實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?、進(jìn)一步掌握定時(shí)器的使用和編程方法2、進(jìn)一步掌握中斷處理程序的編程方法二、實(shí)驗(yàn)說明本實(shí)驗(yàn)是利用CPU的定時(shí)器和實(shí)驗(yàn)臺(tái)上提供的共陰極數(shù)碼顯示電路,設(shè)計(jì)一個(gè)電子時(shí)鐘。格式如下:XXXXXX由左向右分別為:時(shí)、分、秒本實(shí)驗(yàn)使用的是單片機(jī)內(nèi)部計(jì)數(shù)器的定時(shí)器功能,有關(guān)設(shè)置主要針對(duì)定時(shí)器/計(jì)數(shù)器工作方式寄存器TMOD。具體為:工作方式選擇位,設(shè)置為方式2;計(jì)數(shù)/定時(shí)方式選擇位,設(shè)置為定時(shí)器工作方式.定時(shí)器每100uS中斷一次,在中斷服務(wù)程序中,對(duì)中斷次數(shù)進(jìn)行計(jì)數(shù),100uS計(jì)數(shù)10000次就是1秒。然后再對(duì)秒計(jì)數(shù)得到分和小時(shí)值,并送入顯示緩沖區(qū).單片機(jī)P0口輸出字段碼,P1口輸出位碼.三、實(shí)驗(yàn)內(nèi)容及步驟1、單片機(jī)最小應(yīng)用系統(tǒng)1的P0口接動(dòng)態(tài)掃描顯示的段碼口a~dp,P1口接位碼口S1~S6。2、安裝好偉福仿真器,用串行數(shù)據(jù)通信線連接計(jì)算機(jī)與仿真器,把仿真頭插到模塊的單片機(jī)插座中,打開模塊電源,插上仿真器電源插頭。3、啟動(dòng)計(jì)算機(jī),打開偉福仿真軟件,進(jìn)入仿真環(huán)境。選擇仿真器型號(hào)、仿真頭型號(hào)、CPU類型;選擇通信端口,測(cè)試串行口。4、編寫電子時(shí)鐘.ASM源程序,編譯無誤后,全速運(yùn)行程序,6LED數(shù)字顯示時(shí)、分、秒值.四、流程圖及源程序1、流程圖主程序框圖序定時(shí)中斷子程序框圖是是中斷返回中斷入口保護(hù)現(xiàn)場恢復(fù)現(xiàn)場秒值加1小時(shí)值清0秒值清0,分鐘加1分值清0,小時(shí)加1設(shè)置下次10000次計(jì)數(shù)值10000次計(jì)數(shù)值減1到24小時(shí)到60分鐘到60秒計(jì)數(shù)值為0顯示數(shù)據(jù)送緩沖轉(zhuǎn)換成顯示數(shù)據(jù)調(diào)用顯示子程序轉(zhuǎn)換成顯示數(shù)據(jù)顯示數(shù)據(jù)送緩沖讀取分鐘值顯示數(shù)據(jù)送緩沖讀取秒值開始置定時(shí)器模式及工作方式啟動(dòng)定時(shí)器設(shè)置初始常數(shù) 讀取小時(shí)值 轉(zhuǎn)換成顯示數(shù)據(jù)否否否否2、原程序:LEDBufequ60h;顯示緩沖Hourequ40hMinuteequ41hSecondequ42hC100usequ43hTickequ10000T100usequ256-50ljmpStartorg000bhT0Int:pushPSWpushACCmova,C100us+1jnzGoondecC100usGoon:decC100us+1mova,C100usorla,C100us+1jnzExitmovC100us,#27h;#high(Tick)movC100us+1,#10h;#low(Tick)incSecondmova,Secondcjnea,#60,ExitmovSecond,#0incMinutemova,Minutecjnea,#60,ExitmovMinute,#0incHourmova,Hourcjnea,#24,ExitmovHour,#0Exit:popACCpopPSWretiDelay:;延時(shí)子程序movr7,#0FFHDelayLoop:djnzr7,DelayLoopdjnzr6,DelayLoopretLEDMAP:;八段管顯示碼db3fh,06h,5bh,4fh,66h,6dh,7dh,07hdb7fh,6fh,77h,7ch,39h,5eh,79h,71hDisplayLED:movr0,#LEDBufmovr1,#6;共6個(gè)八段管movr2,#00100000b;從左邊開始顯示Loop:mova,#0movp0,a;關(guān)所有八段管mova,@r0movp0,amova,r2movp1,a;顯示一位八段管movr6,#01HacallDelaymova,r2;顯示下一位rramovr2,aincr0djnzr1,Loopret;===============================================ToL(fēng)ED:movdptr,#LEDMAPmovca,@a+dptrret

溫馨提示

  • 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ì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論