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

下載本文檔

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

文檔簡(jiǎn)介

1、實(shí)驗(yàn)一實(shí)驗(yàn)一 P1 口輸入、輸出實(shí)驗(yàn)口輸入、輸出實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康囊?、?shí)驗(yàn)?zāi)康?1、學(xué)習(xí)P1口的使用方法 2、學(xué)習(xí)延時(shí)子程序的編寫和使用 二、實(shí)驗(yàn)說(shuō)明二、實(shí)驗(yàn)說(shuō)明 P1口是準(zhǔn)雙向口,它作為輸出口時(shí)與一般的雙向口使用方法相同。由準(zhǔn)雙向口結(jié)構(gòu)可知 當(dāng)P1口用作輸入口時(shí),必須先對(duì)口的鎖存器寫“1”,若不先對(duì)它寫“1”,讀入的數(shù)據(jù)是 不正確的。 三、實(shí)驗(yàn)內(nèi)容及步驟三、實(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、安裝好仿真器,用串

2、行數(shù)據(jù)通信線連接計(jì)算機(jī)與仿真器,把仿真頭插到模塊的單 片機(jī)插座中,打開(kāi)模塊電源,打開(kāi)仿真器電源。 3、啟動(dòng)計(jì)算機(jī),打開(kāi)偉福仿真軟件,進(jìn)入仿真環(huán)境。首先進(jìn)行仿真器的設(shè)置,選擇 仿真器型號(hào)、仿真頭型號(hào)、CPU 類型。選擇通信端口,點(diǎn)擊測(cè)試串行口,通信成功既可退 出設(shè)置,進(jìn)行仿真。 4、根據(jù)要求編寫源程序,進(jìn)行編譯。編譯無(wú)誤后,點(diǎn)擊全速執(zhí)行按鈕運(yùn)行程序,觀 察發(fā)光二極管顯示情況。發(fā)光二極管單只從右到左輪流循環(huán)點(diǎn)亮。 四、流程圖及源程序四、流程圖及源程序 1 1流程圖流程圖 開(kāi)始 設(shè)置初始值 設(shè)移位次數(shù) 數(shù)據(jù)輸出 左一位 延時(shí) 移位次數(shù)完成? 是 否 (A)P1 口循環(huán)點(diǎn)燈程序框圖 1K 100 33

3、pF 33pF 12MHz RESET EA/VP 31 X1 19 X2 18 RESET 9 RD 17 WR 16 INT0 12 INT1 13 T0 14 T1 15 P10 1 P11 2 P12 3 P13 4 P14 5 P15 6 P16 7 P17 8 P00 39 P01 38 P02 37 P03 36 P04 35 P05 34 P06 33 P07 32 P20 21 P21 22 P22 23 P23 24 P24 25 P25 26 P26 27 P27 28 PSEN 29 ALE/P 30 TXD 11 RXD 10 AT89C51 10uF D0 3 Q0

4、 2 D1 4 Q1 5 D2 7 Q2 6 D3 8 Q3 9 D4 13 Q4 12 D5 14 Q5 15 D6 17 Q6 16 D7 18 Q7 19 OE 1 LE 11 74LS373 270*8 VCC VCC VCC 2 2源程序:源程序: ORG 00H LOOP: MOV A, #0FEH MOV R2,#8 OUTPUT: MOV P1,A RL A ACALL DELAY DJNZ R2,OUTPUT LJMP LOOP DELAY: MOV R6,#0 MOV R7,#0 DELAYLOOP: DJNZ R6,DELAYLOOP ;延時(shí)程序 DJNZ R7,DELA

5、YLOOP RET END 五、思考題五、思考題 (1)對(duì)于本實(shí)驗(yàn)延時(shí)子程序 Delay: MOV R6,0 MOV R7, 0 DelayLoop:DJNZ R6,DelayLoop DJNZ R7,DelayLoop RET 本模塊使用 12MHz 晶振,粗略計(jì)算此程序的執(zhí)行時(shí)間為多少? 六、電路圖六、電路圖 實(shí)驗(yàn)二實(shí)驗(yàn)二 十字路口交通燈實(shí)驗(yàn)十字路口交通燈實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康囊?、?shí)驗(yàn)?zāi)康?1、掌握 51 系列單片機(jī)的常用指令; 2、掌握定時(shí)器的使用方法; 3、掌握十字路口交通燈控制方法。 二、實(shí)驗(yàn)內(nèi)容及步驟二、實(shí)驗(yàn)內(nèi)容及步驟 1、用 CPU 的 P1 口輸出控制信號(hào),控制六個(gè) LED 燈(紅

6、,綠,黃),模擬交通燈管理。 按要求連接電路。 2、根據(jù)要求編寫源程序,編譯無(wú)誤后,全速運(yùn)行程序。 三、實(shí)驗(yàn)電路連接三、實(shí)驗(yàn)電路連接 P10 - LED0 P11 - LED1 P12 - LED2 P13 - LED3 P14 - LED4 P15 - LED5 四、實(shí)驗(yàn)說(shuō)明四、實(shí)驗(yàn)說(shuō)明 l. 因?yàn)楸緦?shí)驗(yàn)是交通燈控制實(shí)驗(yàn),所以要先了解實(shí)際交通燈的變化規(guī)律。假設(shè)一個(gè)十字 路口為東西南北走向。初始為狀態(tài) 0。 狀態(tài)狀態(tài) 0:東西紅燈,紅燈,南北紅燈紅燈;然后轉(zhuǎn) 狀態(tài)狀態(tài) 1:南北綠燈綠燈通車,東西紅燈紅燈;過(guò)一段時(shí)間轉(zhuǎn) 狀態(tài)狀態(tài) 2:南北綠燈閃綠燈閃幾次轉(zhuǎn)黃燈亮黃燈亮,延時(shí)幾秒,東西仍然紅燈;紅

7、燈;再轉(zhuǎn) 狀態(tài)狀態(tài) 3:東西綠燈綠燈通車,南北紅燈紅燈;過(guò)一段時(shí)間轉(zhuǎn) 狀態(tài)狀態(tài) 4:東西綠燈閃綠燈閃幾次轉(zhuǎn)亮黃燈亮黃燈,延時(shí)幾秒,南北仍然紅燈紅燈;最后循環(huán)至狀態(tài)狀態(tài) 1。 2. 各用一組紅、黃、綠色 LED 分別表示南北方向和東西方向紅綠燈。 五、實(shí)驗(yàn)儀器和設(shè)備五、實(shí)驗(yàn)儀器和設(shè)備 THKSCM-2 單片機(jī)開(kāi)發(fā)綜合實(shí)驗(yàn)裝置、PC 機(jī)、WAVE 軟件、E6000/S51 仿真器 +POD8X5X 仿真頭等。 六、流程圖及源程序六、流程圖及源程序 LED_G1 BIT P1.0 ;東西綠燈 LED_Y1 BIT P1.1 ;東西黃燈 LED_R1 BIT P1.2 ;東西紅燈 LED_G2 BIT

8、 P1.3 ;南北綠燈 LED_Y2 BIT P1.4 ;南北黃燈 LED_R2 BIT P1.5 ;南北紅燈 ORG 00H START: MOV TMOD,#01H ;置T0工作方式1 MOV TH0, #3CH ;置T0定時(shí)初值50mS LED3、LED4、LED5 分別 表示南北方向綠、黃、紅 燈 LED0、LED1、LED2 分別 表示東西方向綠、黃、紅 燈 MOV TL0, #0B0H CLR TF0 SETB TR0 ;啟動(dòng)T0 LOOP0: MOV R2,#20 ;置1S計(jì)數(shù)初值 50mS*20=1S MOV R3,#10 ;全亮10S LCALL STATE0 ;調(diào)用狀態(tài)0

9、WAIT0: JNB TF0,WAIT0 ;查詢50mS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50mS MOV TL0, #0B0H DJNZ R2,WAIT0 ;判1S到否?未到繼續(xù)狀態(tài)0 MOV R2,#20 DJNZ R3,WAIT0 ;狀態(tài)0維持10S LOOP1: MOV R2,#20 MOV R3,#20 LCALL STATE1 WAIT1: JNB TF0,WAIT1 ;查詢50mS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50mS MOV TL0, #0B0H DJNZ R2,WAIT1 ;判1S到否?未到繼續(xù)狀態(tài)1 M

10、OV R2,#20 DJNZ R3,WAIT1 ;狀態(tài)1維持20S MOV R2,#5 MOV R4,#4 ;閃爍200mS MOV R3,#3 ;綠燈閃3S LCALL STATE2 ;調(diào)用狀態(tài)2 WAIT2:JNB TF0,WAIT2 ;查詢50mS到否 CLR TF0 MOV TH0, #03CH ;恢復(fù)T0定時(shí)初值50mS MOV TL0, #0B0H DJNZ R4,WAIT2 ;判200mS到否?未到繼續(xù)狀態(tài)2 CPL LED_G1 ;東西綠燈閃 MOV R4,#4 ;閃爍200mS DJNZ R2,WAIT2 ;判1S到否?未到繼續(xù)狀態(tài)2 MOV R2,#5 DJNZ R3,WA

11、IT2 ;狀態(tài)2維持3S MOV R2,#20 ; MOV R3,#2 ;黃燈亮2S LCALL STATE3 ;調(diào)用狀態(tài)3 WAIT3:JNB TF0,WAIT3 ;查詢50mS到否 CLR TF0 MOV TH0, #3CH ;恢復(fù)T0定時(shí)初值50mS MOV TL0, #0B0H DJNZ R2,WAIT3 ;判1S到否?未到繼續(xù)狀態(tài)3 MOV R2,#20 DJNZ R3,WAIT3 ;狀態(tài)3維持2S MOV R2,#20 MOV R3,#20 ;紅燈20S LCALL STATE4 ;調(diào)用狀態(tài)4 WAIT4: JNB TF0,WAIT4 ;查詢50mS到否 CLR TF0 MOV T

12、H0, #3CH ;恢復(fù)T0定時(shí)初值100mS MOV TL0, #0B0H DJNZ R2,WAIT4 ;判1S到否?未到繼續(xù)狀態(tài)4 MOV R2,#20 ; DJNZ R3,WAIT4 ;狀態(tài)4維持20S MOV R2,#5 ;置50mS計(jì)數(shù)初值 MOV R4,#4 ;閃爍200mS MOV R3,#3 ;綠燈閃3S LCALL STATE5 ;調(diào)用狀態(tài)5 WAIT5: JNB TF0,WAIT5 ;查詢50mS到否 CLR TF0 MOV TH0, #03CH ; MOV TL0, #0B0H DJNZ R4,WAIT5 ;判200mS到否?未到繼續(xù)狀態(tài)5 CPL LED_G2 ;南北綠

13、燈閃 MOV R4,#4 ;閃爍200mS DJNZ R2,WAIT5 ;判1S到否?未到繼續(xù)狀態(tài)5 MOV R2,#5 ; DJNZ R3,WAIT5 ;狀態(tài)5維持3S MOV R2,#20 ; MOV R3,#2 ;黃燈閃2S LCALL STATE6 ;調(diào)用狀態(tài)6 WAIT6: JNB TF0,WAIT6 ;查詢50mS到否 CLR TF0 MOV TH0, #3CH ; MOV TL0, #0B0H DJNZ R2,WAIT6 ;判1S到否?未到繼續(xù)狀態(tài)6 MOV R2,#20 DJNZ R3,WAIT6 ;狀態(tài)6維持2S LJMP LOOP1 ;大循環(huán) STATE0: ;狀態(tài)0,全亮

14、 SETB LED_G1 SETB LED_Y1 CLR LED_R1 SETB LED_G2 SETB LED_Y2 CLR LED_R2 RET STATE1: ;狀態(tài)1 CLR LED_G1 ;東西綠燈亮 SETB LED_Y1 SETB LED_R1 SETB LED_G2 SETB LED_Y2 CLR LED_R2 ;南北紅燈亮 RET STATE2: ;狀態(tài)2 SETB LED_Y1 SETB LED_R1 SETB LED_G2 SETB LED_Y2 CLR LED_R2 ;南北紅燈亮 RET STATE3: ;狀態(tài)3 SETB LED_G1 SETB LED_R1 SETB

15、 LED_G2 SETB LED_Y2 CLR LED_R2 ;南北紅燈亮 CLR LED_Y1 ;東西黃燈亮 RET STATE4: ;狀態(tài)4 SETB LED_G1 SETB LED_Y1 CLR LED_R1 ;東西紅燈亮 CLR LED_G2 ;南北綠燈亮 SETB LED_Y2 SETB LED_R2 RET STATE5: ;狀態(tài)5 SETB LED_G1 SETB LED_Y1 CLR LED_R1 ;東西紅燈亮 SETB LED_Y2 SETB LED_R2 RET STATE6: ;狀態(tài)6 SETB LED_G1 SETB LED_Y1 CLR LED_R1 ;東西紅燈亮 S

16、ETB LED_G2 SETB LED_R2 CLR LED_Y2 ;南北黃燈亮 RET 實(shí)驗(yàn)三實(shí)驗(yàn)三 電子時(shí)鐘實(shí)驗(yàn)電子時(shí)鐘實(shí)驗(yàn) 一、實(shí)驗(yàn)?zāi)康囊?、?shí)驗(yàn)?zāi)康?1、進(jìn)一步掌握定時(shí)器的使用和編程方法 2、進(jìn)一步掌握中斷處理程序的編程方法 二、實(shí)驗(yàn)說(shuō)明二、實(shí)驗(yàn)說(shuō)明 本實(shí)驗(yàn)是利用 CPU 的定時(shí)器和實(shí)驗(yàn)臺(tái)上提供的共陰極數(shù)碼顯示電路,設(shè)計(jì)一個(gè)電子時(shí) 鐘。格式如下: XX XX XX 由左向右分別為:時(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í)器每

17、 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)容及步驟三、實(shí)驗(yàn)內(nèi)容及步驟 1、單片機(jī)最小應(yīng)用系統(tǒng) 1 的 P0 口接動(dòng)態(tài)掃描顯示的段碼口 adp,P1 口接位碼口 S1S6。 2、安裝好偉福仿真器,用串行數(shù)據(jù)通信線連接計(jì)算機(jī)與仿真器,把仿真頭插到模塊的 單片機(jī)插座中,打開(kāi)模塊電源,插上仿真器電源插頭。 3、啟動(dòng)計(jì)算機(jī),打開(kāi)偉福仿真軟件,進(jìn)入仿真環(huán)境。選擇仿真器型號(hào)、仿真頭型號(hào)、 CPU 類型;選擇通信端口,測(cè)試串行口。 4、編

18、寫電子時(shí)鐘.ASM 源程序,編譯無(wú)誤后,全速運(yùn)行程序,6LED 數(shù)字顯示時(shí)、分、 秒值。 四、流程圖及源程序四、流程圖及源程序 1、流程圖 主程序框圖 序序 定時(shí)中斷子程序框圖 是 中斷返回 中斷入口 保護(hù)現(xiàn)場(chǎng) 恢復(fù)現(xiàn)場(chǎng) 秒值加 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ù)送緩沖 讀取秒值 開(kāi)始 置定時(shí)器模式及工作方式 啟動(dòng)定時(shí)器 設(shè)置初始常數(shù) 讀取小時(shí)值

19、 轉(zhuǎn)換成顯示數(shù)據(jù) 否 否 否 否 2、原程序: LEDBuf equ 60h ; 顯示緩沖 Hour equ 40h Minute equ 41h Second equ 42h C100us equ 43h Tick equ 10000 T100us equ 256-50 ljmp Start org 000bh T0Int: push PSW push ACC mov a, C100us+1 jnz Goon dec C100us Goon: dec C100us+1 mov a, C100us orl a, C100us+1 jnz Exit mov C100us, #27h;#high(

20、Tick) mov C100us+1, #10h;#low(Tick) inc Second mov a, Second cjne a, #60, Exit mov Second, #0 inc Minute mov a, Minute cjne a, #60, Exit mov Minute, #0 inc Hour mov a, Hour cjne a, #24, Exit mov Hour, #0 Exit: pop ACC pop PSW reti Delay: ; 延時(shí)子程序 mov r7, #0FFH DelayLoop: djnz r7, DelayLoop djnz r6, DelayLoop ret LEDMAP: ; 八段管顯示碼 db 3fh, 06h, 5bh, 4fh, 66h, 6dh, 7dh, 07h db 7fh, 6fh, 77h, 7ch, 39h, 5eh, 79h, 71h DisplayLED: mov r0, #LEDBuf mov r1, #6 ; 共 6 個(gè)八段管 mov r2, #b ; 從左邊開(kāi)始顯示 Loop: mov a, #0 mov p0, a ; 關(guān)所有八段管 mov a, r0 mov p0,a mov a, r2 mov p1, a ; 顯示一位八段管 mo

溫馨提示

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

評(píng)論

0/150

提交評(píng)論