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

標題: AT89C51單片機中斷實驗 匯編語言程序 [打印本頁]

作者: ddddd呃呃呃呃    時間: 2021-7-4 12:53
標題: AT89C51單片機中斷實驗 匯編語言程序
(1)基于8051內(nèi)核單片機(如at89C51等)進行實驗
(2)模擬有急救車通過的交通燈控制實驗:允許急救車優(yōu)先通過。當有急救車到達時,兩個方向上的紅燈亮(可以發(fā)光二極管模擬),以便讓急救車通過,假定急救車通過路口的時間為10秒,急救車通過后,交通燈恢復中斷前的狀態(tài)。實驗以按鍵開關(guān)為中斷申請,表示有急救車通過。
(3)uvision2/4軟件平臺上編寫、調(diào)試程序。
(4)Proteus軟件平臺上仿真。
本實驗中斷處理程序的應(yīng)用,最主要的地方是如何保護進入中斷前的狀態(tài),使得中斷程序執(zhí)行完畢后能回到交通燈中斷前的狀態(tài)。要保護的地方,除了累加器ACC、標志寄存器PSW外,還要注意:第一是主程序中的延時程序和中斷處理程序中的延時程序不能混用,本實驗給出的程序中,主程序延時用的是R5、R6、R7,中斷延時用的是R3、R4和新的R5。第二,主程序中每執(zhí)行一步經(jīng)74LS273的端口輸出數(shù)據(jù)的操作時,應(yīng)先將所輸出的數(shù)據(jù)保存到一個單元中。因為進入中斷程序后也要執(zhí)行往74LS273端口輸出數(shù)據(jù)的操作,中斷返回時如果沒有恢復中斷前74LS273端口鎖存器的數(shù)據(jù),則顯示往往出錯,回不到中斷前的狀態(tài)。還要注意一點,主程序中往端口輸出數(shù)據(jù)操作要先保存再輸出,例如有如下操作:
    MOV  A,#0F0H     (0)
    MOVX @R1,A       (1)
    MOV  SAVE,A      (2)
程序如果正好執(zhí)行到(1)時發(fā)生中斷,則轉(zhuǎn)入中斷程序,假設(shè)中斷程序返回主程序前需要執(zhí)行一句MOV  A,SAVE指令,由于主程序中沒有執(zhí)行(2),故SAVE中的內(nèi)容實際上是前一次放入的而不是(0)語句中給出的0F0H,顯示出錯,將(1)、(2)兩句順序顛倒一下則沒有問題。發(fā)生中斷時兩方向的紅燈一起亮10秒,然后返回中斷前的狀態(tài)。
     
圖3.1  主程序框圖     
圖3.2 中斷程序框圖
    實驗步驟
74LS273的輸出O0~O7接發(fā)光二極管L1~L8,74LS273的片選CS273\接片選信號CS2,此時74LS273的片選地址為CFB0H~CFB7H之間任選。單脈沖輸出端P-接CPU板上的INT0。
    實驗數(shù)據(jù)分析及處理
燒錄
程序運行結(jié)果
仿真結(jié)果
NAME    T5                    //中斷控制實驗
OUTPORT EQU    0CFB0H         //端口地址
SAVE    EQU    55H            //保存從端口cfa0輸出的數(shù)據(jù)
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         //轉(zhuǎn)LLL循環(huán)
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中保存數(shù)據(jù)輸出到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, 下載次數(shù): 4)





歡迎光臨 (http://www.raoushi.com/bbs/) Powered by Discuz! X3.1