×
嵌入式 > 技术百科 > 详情

按键中断报警EM78P447

发布时间:2022-05-06 发布时间:
|

;************************************************
;              按键中断报警.dt
;************************************************
 PORT6    ==        0x06                ;定义端口6,7

 PORT7    ==        0x07
;-----------------------------------------------------------------------
 IOCE     ==        0x0E                ;定义看门狗控制寄存器IOCE
 IOCF     ==        0x0F                ;定义中断屏蔽寄存器IOCF
 ISR      ==        0X3F                ;定义中断状态寄存器ISR
;-----------------------------------------------------------------------
 DLY1     ==        13                  ;定义延时暂存单元DLY1,DLY2,DLY3
 DLY2     ==        14  
 DLY3     ==        15
 COUNT    ==        16                  ;定义计数暂存单元COUNT
 EXIE     ==        3                   ;定义中断屏蔽寄存器的第3位EXIE
                                        ;允许外部中断时需将EXIE置1
 EXIF     ==        3                   ;定义中断状态寄存器的第3位EXIT
                                        ;中断响应以后EXIF自动置1,要用程序清0
;-----------------------------------------------------------------------
          ORG       0x00
          JMP       INIT


          ORG       0x01
          JMP       INT_SERVICE

 INIT:    MOV       A,@0x00             ;设定P6口,P7口全部为输出
          IOW       PORT6             
          IOW       PORT7
          MOV       A,@0X11             ;关闭看门狗功能    
          IOW       IOCE               
          MOV       A,@0XFF             ;LED数码管显示全暗  
          MOV       PORT6,A         
          MOV       A,@0X20             ;设定延时时间
          MOV       DLY3,A 
          BC        PORT7,1             ;P71低电平,继电器接通,电动机运行
          MOV       A,@0x0A             ;为计数器置数10
          MOV       COUNT,A
          MOV       A,@0B00001000       ;将中断屏蔽寄存器第3位置1,允许外部中断
          IOW       IOCF
;-----------------------------------------------------------------------
 MAIN:    ENI                           ;允许中断,将控制寄存器第6位INT置1
 MAIN1:   JMP       MAIN1               ;等中断
    
;-----------------------------------------------------------------------
 INT_SERVICE:BS   PORT7,1               ;P71高电平,继电器断开,电动机仃止
 INT_S1   MOV     A,@0X00               ;LED数码管显示全亮
          MOV     PORT6,A
          CALL    DELAY                 ;延时
          MOV     A,@0XFF               ;LED数码管显示全暗
          MOV     PORT6,A
          CALL    DELAY                 ;延时
          DJZ     COUNT                 ;计数器减1,闪烁10次到否?
          JMP     INT_S1                ;未到,继续闪烁
          BC      ISR,EXIF              ;已到,清除中断响应标志,为下次中断作准备
          MOV     A,@0x0A               ;重新为计数器置数10
          MOV     COUNT,A
          BC      PORT7,1               ;P71底电平,继电器接通,电动机运行
          RETI                          ;中断返回,将控制寄存器第6位INT置1
;-----------------------------------------------------------------------
 DELAY:   MOV       A,@20               ;1*(DLY3) 延时子程序
          MOV       DLY2,A              ;1*(DLY3)
 INNER2:  MOV       A,@5                ;1*(DLY3)*(250)
          MOV       DLY1,A              ;1*(DLY3)*(250)
 INNER1:  DJZ       DLY1                ;1*(DLY3)*(250)*(133)
          JMP       INNER1              ;2*(DLY3)*(250)*(133)
          DJZ       DLY2                ;1*(DLY3)*(250)
          JMP       INNER2              ;2*(DLY3)*(250)
          DJZ       DLY3                ;1*(DLY3)
          JMP       DELAY               ;2*(DLY3)
          RET                           ;延时子程序返回
          EOP 


 

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
实时控制.安全.如何加速实现未来工厂落地?