|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
外部中斷實(shí)驗(yàn)(急救車與交通燈) |
| 作者:laibohai 欄目:單片機(jī) |
二.實(shí)驗(yàn)?zāi)康?BR>1.學(xué)習(xí)外部中斷技術(shù)的基本使用方法。 2.學(xué)習(xí)中斷處理程序的編程方法。 三.實(shí)驗(yàn)電路及連線 中斷服務(wù)程序的關(guān)鍵是:1.保護(hù)進(jìn)入中斷時(shí)的狀態(tài),并在退出中斷之前恢復(fù)進(jìn)入時(shí)的狀態(tài)。2.必須在中斷程序中設(shè)定是否允許中斷重入,即設(shè)置EX0位。 本例中使用了INT0中斷,一般中斷程序進(jìn)入時(shí)應(yīng)保護(hù)PSW,ACC以及中斷程序使用但非其專用的寄存器。本例的INT0程序保護(hù)了PSW,ACC,2等三個(gè)寄存器并且在退出前恢復(fù)了這三個(gè)寄存器。另外中斷程序中涉及到關(guān)鍵數(shù)據(jù)的設(shè)置時(shí)應(yīng)關(guān)中斷,即設(shè)置時(shí)不允許重入。本例中沒有涉及這種情況。 實(shí)驗(yàn)開始時(shí)K8應(yīng)在H(高電平)端,要產(chǎn)生中斷時(shí)先撥向L(低電平)端再撥回H端。 五.實(shí)驗(yàn)程序框圖 ORG 0000H LJMP START ORG 0003H ;INT 0 中斷入口地址 LJMP INT0 ORG 0040H START: MOV SP,#60H SETB EX0 ;INT 0 中斷有效 SETB IT0 SETB EA LCALL STATUS0 ;初始狀態(tài)(都是紅燈) CIRCLE: LCALL STATUS1 ;南北綠燈,東西紅燈 LCALL STATUS2 ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈 LCALL STATUS3 ;南北紅燈,東西綠燈 LCALL STATUS4 ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈 LJMP CIRCLE INT0: PUSH PSW ;保護(hù)現(xiàn)場(chǎng) PUSH 2 PUSH ACC MOV DPTR,#8300H MOV A,#0FH ;南北,東西都亮紅燈 MOVX @DPTR,A MOV R2,#100 ;延時(shí)10秒 LCALL DELAY POP ACC ;恢復(fù)現(xiàn)場(chǎng) MOVX @DPTR,A POP 2 POP PSW RETI STATUS0: ;南北紅燈,東西紅燈 MOV DPTR,#8300H MOV A,#0FH MOVX @DPTR,A MOV R2,#10 ;延時(shí)1秒 LCALL DELAY RET STATUS1: ;南北綠燈,東西紅燈 MOV DPTR,#8300H MOV A,#5AH ;南北綠燈,東西紅燈 MOVX @DPTR,A MOV R2,#50 ;延時(shí)5秒 LCALL DELAY RET STATUS2: ;南北綠燈閃轉(zhuǎn)黃燈,東西紅燈 MOV DPTR,#8300H MOV R3,#03H ;綠燈閃3次 FLASH: MOV A,#5FH MOVX @DPTR,A MOV R2,#03H LCALL DELAY MOV A,#5AH MOVX @DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH MOV A,#0AH ;南北黃燈,東西紅燈 MOVX @DPTR,A MOV R2,#10 ;延時(shí)1秒 LCALL DELAY RET STATUS3: ;南北紅燈,東西綠燈 MOV DPTR,#8300H MOV A,#0A5H MOVX @DPTR,A MOV R2,#50 ;延時(shí)5秒 LCALL DELAY RET STATUS4: ;南北紅燈,東西綠燈閃轉(zhuǎn)黃燈 MOV DPTR,#8300H MOV R3,#03H ;綠燈閃3次 FLASH1: MOV A,#0AFH MOVX @DPTR,A MOV R2,#03H LCALL DELAY MOV A,#0A5H MOVX @DPTR,A MOV R2,#03H LCALL DELAY DJNZ R3,FLASH1 MOV A,#05H ;南北紅燈,東西黃燈 MOVX @DPTR,A MOV R2,#10 ;延時(shí)1秒 LCALL DELAY NOP RET DELAY: ;延時(shí)子程序 PUSH 2 PUSH 1 PUSH 0 DELAY1: MOV 1,#00H DELAY2: MOV 0,#0B2H DJNZ 0,$ DJNZ 1,DELAY2 ;延時(shí) 100 mS DJNZ 2,DELAY1 POP 0 POP 1 POP 2 RET END |
|
|
| 免費(fèi)注冊(cè)為維庫(kù)電子開發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào) |