新聞中心

        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


        關鍵詞: 匯編語言中斷嵌

        評論


        技術專區

        關閉
        主站蜘蛛池模板: 东兴市| 江都市| 婺源县| 绥中县| 庄河市| 甘孜县| 望奎县| 禄丰县| 青河县| 屯留县| 利辛县| 凤凰县| 孟州市| 郓城县| 石门县| 湛江市| 黑龙江省| 上饶市| 望奎县| 东丽区| 剑阁县| 宾阳县| 赣榆县| 会宁县| 吴旗县| 政和县| 科技| 大悟县| 保定市| 普兰县| 东台市| 龙山县| 关岭| 南靖县| 长宁县| 甘肃省| 和政县| 滨州市| 临沂市| 治县。| 乐山市|