新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 匯編語言實現中斷嵌套的典型程序

        匯編語言實現中斷嵌套的典型程序

        作者: 時間:2016-11-18 來源:網絡 收藏
        設計一個基于單片機的聲光報警電路。要求:利用按鍵觸發外部中斷0,蜂鳴器發音,發光二極管點亮,聲光報警延遲1S后停止(利用定時器TO延時)。蜂鳴器由P1.2控制,發光二極管由P2.0控制。設計硬件電路并給出其完整的程序。

        /*典型錯誤一*/
        /*ORG 0000H
        AJMP MAIN
        ORG 0003H
        AJMP INTE0
        ORG 000BH
        AJMP INT120
        ORG 0030H
        MAIN: MOV R0,#00H
        SETB IT0
        SETB EX0
        SETB EA
        MOV TMOD,#01H
        MOV TH0,#4CH
        MOV TL0,#00H
        SETB ET0
        HERE: AJMP HERE
        INTE0: CLR P1.2
        CLR P2.0
        CLR EX0;可有可無
        SETB TR0
        RETI
        ORG 0080H
        INT120: MOV TH0,#4CH
        MOV TL0,#00H
        INC R0
        HERE0:CJNE R0,#14H,HERE0;典型錯誤1
        ;此程序已經在定時器T0中斷內部,利用
        ;此程序等待T0中斷,中斷無從進入。所以
        ;程序在此行成死循環,即停在此處。聲光
        ;報警啟動但停不下來。
        SETB P1.2
        SETB P2.0
        CLR ET0
        RETI
        END
        */
        /*典型錯誤二*/
        /*ORG 0000H
        AJMP MAIN
        ORG 0003H
        AJMP INTE0
        ORG 000BH
        AJMP INT120
        ORG 0030H
        MAIN: MOV R0,#00H
        SETB IT0
        SETB EX0
        SETB EA
        MOV TMOD,#01H
        MOV TH0,#4CH
        MOV TL0,#00H
        SETB ET0
        HERE: AJMP HERE
        INTE0: CLR P1.2
        CLR P2.0
        CLR EX0;可有可無
        SETB TR0
        RETI
        ORG 0080H
        INT120: MOV TH0,#4CH
        MOV TL0,#00H
        INC R0
        CJNE R0,#14H,HERE;典型錯誤2
        ;此程序已經在定時器T0中斷內部,利用
        ;此程序等待T0中斷,中斷無從進入。所以
        ;程序在此行成死循環,即停在此處。聲光
        ;報警啟動但停不下來。和上例一樣。
        SETB P1.2
        SETB P2.0
        CLR ET0
        RETI
        END
        */
        /*正確答案*/
        ORG 0000H
        AJMP MAIN
        ORG 0003H
        AJMP INTEX0
        ORG 000BH
        AJMP INTT0
        ORG 0030H
        MAIN:MOV R0,#00H
        SETB EX0
        SETB IT0
        MOV TMOD,#01H
        MOV TH0,#4CH
        MOV TL0,#00H
        SETB EA
        SETB ET0
        HERE:CJNE R0,#14H,HERE
        MOV R0,#00H
        SETB P2.0
        SETB P1.2
        CLR TR0
        AJMP HERE
        INTEX0: SETB TR0
        CLR P2.0
        CLR P1.2
        RETI
        INTT0: MOV TH0,#4CH
        MOV TL0,#00H
        INC R0
        RETI
        END

        本文引用地址:http://www.104case.com/article/201611/315742.htm


        關鍵詞: 匯編語言中斷嵌

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 荥经县| 视频| 拜泉县| 宜兴市| 屏南县| 政和县| 通化市| 岳普湖县| 舞阳县| 襄汾县| 德江县| 休宁县| 融水| 普陀区| 淮阳县| 隆德县| 鹤岗市| 钟祥市| 梧州市| 屯门区| 漾濞| 襄汾县| 苍南县| 通化县| 常山县| 松原市| 额济纳旗| 满洲里市| 沂水县| 桐庐县| 五寨县| 香格里拉县| 灵武市| 上思县| 苏尼特右旗| 华宁县| 兰溪市| 甘洛县| 唐海县| 灌阳县| 繁峙县|