📄 jueshou.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 + -