欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3121|回復: 0
打印 上一主題 下一主題
收起左側

AT89C51單片機中斷實驗 匯編語言程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:948980 發表于 2021-7-4 12:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
(1)基于8051內核單片機(如at89C51等)進行實驗
(2)模擬有急救車通過的交通燈控制實驗:允許急救車優先通過。當有急救車到達時,兩個方向上的紅燈亮(可以發光二極管模擬),以便讓急救車通過,假定急救車通過路口的時間為10秒,急救車通過后,交通燈恢復中斷前的狀態。實驗以按鍵開關為中斷申請,表示有急救車通過。
(3)uvision2/4軟件平臺上編寫、調試程序。
(4)Proteus軟件平臺上仿真。
本實驗中斷處理程序的應用,最主要的地方是如何保護進入中斷前的狀態,使得中斷程序執行完畢后能回到交通燈中斷前的狀態。要保護的地方,除了累加器ACC、標志寄存器PSW外,還要注意:第一是主程序中的延時程序和中斷處理程序中的延時程序不能混用,本實驗給出的程序中,主程序延時用的是R5、R6、R7,中斷延時用的是R3、R4和新的R5。第二,主程序中每執行一步經74LS273的端口輸出數據的操作時,應先將所輸出的數據保存到一個單元中。因為進入中斷程序后也要執行往74LS273端口輸出數據的操作,中斷返回時如果沒有恢復中斷前74LS273端口鎖存器的數據,則顯示往往出錯,回不到中斷前的狀態。還要注意一點,主程序中往端口輸出數據操作要先保存再輸出,例如有如下操作:
    MOV  A,#0F0H     (0)
    MOVX @R1,A       (1)
    MOV  SAVE,A      (2)
程序如果正好執行到(1)時發生中斷,則轉入中斷程序,假設中斷程序返回主程序前需要執行一句MOV  A,SAVE指令,由于主程序中沒有執行(2),故SAVE中的內容實際上是前一次放入的而不是(0)語句中給出的0F0H,顯示出錯,將(1)、(2)兩句順序顛倒一下則沒有問題。發生中斷時兩方向的紅燈一起亮10秒,然后返回中斷前的狀態。
     
圖3.1  主程序框圖     
圖3.2 中斷程序框圖
    實驗步驟
74LS273的輸出O0~O7接發光二極管L1~L8,74LS273的片選CS273\接片選信號CS2,此時74LS273的片選地址為CFB0H~CFB7H之間任選。單脈沖輸出端P-接CPU板上的INT0。
    實驗數據分析及處理
燒錄
程序運行結果
仿真結果
NAME    T5                    //中斷控制實驗
OUTPORT EQU    0CFB0H         //端口地址
SAVE    EQU    55H            //保存從端口cfa0輸出的數據
CSEG    AT     0000H
        LJMP   START
CSEG AT 0003H
        LJMP   INT
CSEG AT 0100H
START:  SETB   IT0
        SETB   EX0
        SETB   EA
        MOV    A,#11H        //置首顯示碼
        MOV    SAVE,A        //保存
        ACALL  DISP          //顯示輸出
        ACALL  DE3S          //延時3秒
LLL:    MOV    A,#12H        //東西路口綠燈亮,南北路口紅燈亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE10S         //延時10秒
        MOV    A,#10H        //東西路口綠燈滅
        MOV    SAVE,A
        ACALL  DISP  
        MOV    R2,#05H       //東西路口黃燈閃爍5次
TTT:    MOV    A,#14H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S
        MOV    A,#10H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S
        DJNZ   R2,TTT
        MOV    A,#11H       //紅燈全亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S        //延時0.2秒
        MOV    A,#21H       //東西路口紅燈亮,南北路口綠燈亮
        MOV    SAVE, A
        ACALL  DISP  
        ACALL  DE10S        //延時10秒
        MOV    A,#01H       //南北路口綠燈滅
        MOV    SAVE,A
        ACALL  DISP  
        MOV    R2,#05H      //南北路口黃燈閃爍5次
GGG:    MOV    A,#41H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S
        MOV    A,#01H
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S
        DJNZ   R2,GGG
        MOV    A,#11H      //紅燈全亮
        MOV    SAVE,A
        ACALL  DISP  
        ACALL  DE02S       //延時0.2秒
        JMP    LLL         //轉LLL循環
DE10S:  MOV    R5,#100     //延時10秒
        JMP    DE1
DE3S:   MOV    R5,#30      //延時3秒
        JMP    DE1
DE02S:  MOV    R5,#02      //延時0.2秒
DE1:    MOV    R6,#200
DE2:    MOV    R7,#126
DE3:    DJNZ   R7,DE3
        DJNZ   R6,DE2
        DJNZ   R5,DE1
        RET
INT:    CLR    EA
PUSH   ACC         //中斷處理
        PUSH   PSW
        MOV    A,R5
        PUSH   ACC
        MOV    A,#11H     //紅燈全亮,綠、黃燈全滅
        ACALL  DISP  
DEL10S: MOV    R3,#100     //延時10秒
DEL1:   MOV    R2,#200
DEL2:   MOV    R5,#126
DEL3:   DJNZ   R5,DEL3
        DJNZ   R4,DEL2
        DJNZ   R3,DEL1
        MOV    A,SAVE     //取SAVE中保存數據輸出到cfa0端口
        ACALL  DISP  
        POP    ACC        //出棧
        MOV    R5,A
        POP    PSW
        POP    ACC
        SETB   EA        //允許外部中斷
        RETI
DISP:   MOV    DPTR,#OUTPORT
CPL    A
        MOV   P1,A
        RET
END
以上的Word格式文檔51黑下載地址:
實驗4(1).docx (348.11 KB, 下載次數: 4)

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表