⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 jueshou.dt

📁 JLDLED.rar
💻 DT
字号:
       /*
       ****************************************************
      
       ;MCU == EM78P153SN
      ;黄惠记
       *****************************************************
       */
       
       ; define 0x10--0x2f 
      ; r9     equ   0x09
      ; key3_you  equ  0 
              
       r10    equ   0x10    ;标志位寄存器 
       r11    equ   0x11    ;12位数接收,循环12次 
           
       r12    equ   0x12    ;4位数据码寄存器 
       r14    equ   0x14    ;4位数据码寄存器 
         
       r13    equ   0x13    ;8位地址码寄存器 
       r15    equ   0x15    ;8位地址码寄存器 
         
       r16    equ   0x16    ;编码平移4位 
       
       r17    equ   0x17      
       r18    equ   0x18      
       r19    equ   0x19
       key1_time    equ   0x1a
       c_time       equ   0x1b 
       key2bank     equ   0x1c
       xinhao_room   equ   0x1d
       bellroom     equ   0x1e
       flagbit      equ   0x1f
       flag_bit0    equ   0
       flag_bit1    equ   1 
       jeichubit    equ   2
       jeichu100ms  equ   3            
       ;
       r20    equ   0x20      
       r21    equ   0x21 
           
       r22    equ   0x22      ;临时寄存器    
       r23    equ   0x23      ;临时寄存器 
           
       r24    equ   0x24      ;8位地址密码 
       r25    equ   0x25      ;8位地址密码 
       r26    equ   0x26
       r27    equ   0x27
       key3   equ    0
       xihao  equ    1
       bell10ms  equ 2
       soud   equ    3
       nosoud  equ   4
       key3s10ms  equ  5
       fang3s     equ  6
       denflag    equ  7
       r28    equ   0x28
       r29    equ   0x29
       r30    equ   0x2a
       r2b    equ   0x2b
      ;**************************************************
      ;r10:
       xinhao_bit  equ  0
       enable    equ  1      ;按键是否放开标志 
       receive   equ  2      ;接收正确标志 
       study_1   equ  3  
       key10ms   equ  4      ;10ms标志位 
       keyfang   equ  5      ;放键标志们 
       key1_you  equ  6
       key2_you  equ  7 
       r0    == 0x00
       tcc   == 0x01
       pc    ==0x02
       status== 0x03
         z   == 2  
         c   ==0 
       r4    == 0x04      
       ioc5  == 0x05
       ioc6  == 0x06
      ; ioc7  == 0x07
       ;
       iocb  == 0x0b
       iocc  == 0x0c
       iocd  == 0x0d
       ioce  == 0x0e
       iocf  == 0x0f 
       rf    == 0x0f
     ; rf    ==  0x3f 
        tcif  == 0    
       ;I/O define
       p5    == 0x05
     ;  fa     == 1
       rem    == 5          ;接收信号检测口 
      
       ;
       p6    == 0x06      
       key1   == 7 
       key2   == 6
       key4   == 5
       ;p7     ==0x07 
;****************************************宏指令定义 
    ;    movb  macro  status,c,p5,rem
    ;    jbs   p5,rem
    ;    bc    status,c
    ;    jbc   p5,rem
    ;    bs    status,c
    ;   endm         
;****************************************************
       org    0x00
      ; org    0xfff
       jmp    begin
;*************************************************
dealy:
        mov  a,@200
        mov  r27,a
  dd:
        wdtc
        mov  a,@250
        mov  r28,a
  cc:
        djz  r28
        jmp  cc
        djz  r27
        jmp  dd
        ret    
;**************************************************
 work:
       bs     p5,0
       call   dealy
       nop
       nop
       bc     p5,0
      ; bs     p6,6
     ;  call   dealy
     ;  bc     p6,6
       clr    r29
       nop
       nop     
       ret
;**************************************************
 begin:               
       mov    a,@11011111b
       iow    iocb            ;下拉控制 
       ;
       mov    a,@0xff
       iow    iocc            ;漏极开路控制 
       ;
       mov    a,@00100000b ;
       iow    iocd            ;上拉控制 
       ;
      ; mov    a,@0x00
      ; iow    ioc7
     ;  mov    a,@0x00
     ;  mov    p7,a
       mov    a,@10111111b   
       iow    ioc6         
       mov    a,@11110010b   
       iow    ioc5        
     
       mov    a,@11110010b      
       mov    p5,a              
       mov    a,@10111111b
       mov    p6,a
      ; mov    a,@0x80
      ; iow    ioce            ;WDT控制器 
       mov     a,@0x30
       iow     ioce
       mov    a,@0x07
       contw                  ;分频控制器 
       mov    a,@06
       mov    tcc,a
      ; clr    rf       
       mov    a,@0x00
       iow    iocf            ;中断屏蔽寄存器 
      ; clr    r9
       clr    r10
       clr    r11
       clr    r12
       clr    r13
       clr    r15
       clr    r16
       clr    r17
       clr    r18
       clr    r20
       clr    r21
       clr    r22
       clr    r23
       clr    r24
       clr    r25
       clr    r26
       clr    r27
       clr    r28
       clr    r29
       mov   a,@30
       mov   r30,a
       mov   a,@02
       mov   key2bank,a
       mov   a,@02
       mov   c_time,a
       mov   a,@20
       mov   key1_time,a
       mov    a,@200
       mov    r19,a
       mov  a,@05
       mov  r25,a
       mov  a,@05
       mov  r20,a
       mov  a,@10
       mov  r21,a
       mov  a,@0
       mov  r29,a
       mov  a,@10
       mov  r15,a
       mov  a,@05
       mov  xinhao_room,a
       mov  a,@10
       mov  bellroom,a
       clr  flagbit
       disi
 ;**************************************** ;装入密码                           
       jmp  loop
;**********************************************
 remote:                  ;检测50ms内有没有编码接收                                                       
       ; mov    a,@200
      ;  mov    r19,a
; remote1:                   ;检测4ms高电平 
       mov     a,@04
       mov     r22,a
 remote2:
       wdtc
       mov     a,@250
       mov     r23,a  
 remote3:
       nop             
       jbs   p6,rem           ;还是低电平等待 
       jmp   remend
       djz   r23
       jmp   remote3
       djz   r22
       jmp   remote2
                             ;等待2ms内接收到高电平 
       mov   a,@04
       mov   r11,a
       mov   a,@06
       mov   r22,a
 remote4:
       wdtc
       mov   a,@100
       mov   r23,a       
 remote5:
       nop                   ;4到6秒内接收下降沿,则跳去解码,否则返回。 
       jbs   p6,rem
      ; djz   r25
     ;  jmp   $-1
       jmp   remote6
       djz   r23
       jmp   remote5
       djz   r22
       jmp   remote4
      ; bc    r10,enable     ;超出6ms,接收错误返回。 
       jmp   remend
; remote61: 
    ;   jbc   p6,rem
     ;  jmp   remend               
 remote6:                 ;等待300us后,采集接收信号?
       mov   a,@120
       mov   r28,a
 tt0:
       nop
       nop
       djz   r28
       jmp   tt0
       jbs   p6,rem
       jmp   gg
       bc    status,c
       jmp   mm
 gg:      
      ; jbs   p6,rem
        bs    status,c
 mm:
       nop
       nop
       rrc   r29                        
qq1:                             ;等待第二个码值下降沿 
       jbs   p6,rem
       jmp   qq1
qq2:
       jbc   p6,rem
       jmp   qq2
       djz   r11
       jmp   remote6
;********************** 把接收的编码左移4位,将8位密码放在同一字世节上 
       mov   a,r29
       and   a,@01110000b
       xor   a,r26
       jbs   status,z
       jmp   remend 
       call  work 
       nop
       nop
       clr   r29
      ; call  dealy
       nop
       nop
remend:
       nop
       nop
       jmp   loop 
;*************************************************************
;*************************************************************
loop:
       wdtc
       nop
       nop
       mov     a,p6
       and     a,@00000111b
       mov     r26,a
       swap    r26
       jbc     p6,rem 
       jmp     remote  
       nop            
       jmp     loop
;******************************************************************      
       end
         
          

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -