📄 main_last.asm
字号:
ORG 0000H
LJMP main
org 000bh
ljmp time0
org 001bh
ljmp time1
ORG 0013H
lJMP INTPT1
ORG 0020H
provision_3 bit p1.0
mute bit p1.1
p_warning bit p1.2
p_relax bit p1.3
p_guard bit p1.4
provision_1 bit p1.5
provision_2 bit p1.6
switch bit p1.7
ON_LINE BIT p2.0
dtmf_ce bit p2.1
seg_dat bit p2.2
seg_clk bit p2.3
dtmf_clk bit p2.4
dtmf_dat bit p2.5
p_record bit p2.6
p_play bit p2.7
p_int0 bit p3.2
p_int1 bit p3.3
p_localwarning bit p3.4
p_beep bit p3.5
SDA bit P3.6
SCL bit P3.7
leavehand bit 12h
right bit 11h
relax_flag bit 10H
LED7 bit 0EH
LED6 bit 0DH
LED5 bit 0CH
LED4 bit 0BH ;play
LED3 bit 0AH ;warning
LED2 bit 09H ;preset
LED1 bit 08H ;guard
ACK BIT 07H ;应答标志位变量
a_flag bit 00h
time_out1 bit 01h
firstflag1 bit 02h
time_out bit 03h
valid1 bit 04h
keyflag bit 05h
valid bit 06h
BITBUF EQU 21H
addresspoint equ 31h ;已存电话个数
position equ 53h ;IIC中电话的位置
max equ 05h ;能最多存的个数 ;?????????????????????????
length_pw equ 04h ;密码长度 4
times_pw equ 01h ;最多输入次数 3
count2 equ 60h ;5a~5d 为密码缓存
count1 equ 61h
MTD EQU 63H
MRD EQU 62H
main:
CPL P3.6
CLR EA
MOV TMOD,#11H
mov ip,#0ah ;定时器 0优先级最高
mov scon,#10h ;方式0
setb ex1 ;设防
mov th0,#3ch ;10MS
mov tl0,#0b0h
mov th1,#3ch ;100ms
mov tl1,#0b0h
clr IT1
SETB ET0
setb et1
CLR ES
mov p0,#0ffh
mov p1,#0ffh
mov p2,#7eh
mov p3,#0efh
MOV A,#00H
MOV B,A
MOV R0,#00H
CLR_RAM:
MOV @R0,A
INC R0
CJNE R0,#80H,CLR_RAM
setb firstflag1
mov sp,#65h
mov position,#40h
mov addresspoint,#01h ;电话个数
MOV 3AH,#00H ;电话表指针
MOV 37H,#01H
mov 54h,#0ffh
mov 55h,#10h
mov 56h,#10h
mov 57h,#10h
mov 58h,#10h
mov 59h,#00h
JnB switch,RD_VALID000 ;跳线
MOV 30H,#16
LCALL delay5ms
JnB switch,RD_VALID000
MOV 30H,#16
LCALL delay5ms
JnB switch,RD_VALID000
lcall clrEEPR0M
RD_VALID000:
lcall rd_valid ;////// 读取valid \\
setb ea
;============================ 关显示 ==============================
MAIN1: CPL P3.6
mov a,#10h
lcall disp_seg
jb relax_flag,relax1
MOV 21H,#0FFH
CLR LED1
MOV A,21H
mov sbuf,a
jnb ti,$
clr ti
relax1:
mov 30h,#40
lcall delay5ms
SETB EA
MOV 37H,#01h
mov 3fh,#01h
nop
nop
nop
nop
lcall save_valid
jNB p_relax,NEXT111 ;撤防
MOV 30H,#10
LCALL delay5ms
JNB p_relax,NEXT111
MOV 30H,#10
LCALL delay5ms
JNB p_relax,NEXT111
lcall handfree
clr ex1
setb relax_flag
MOV 21H,#0FFH
mov a,21H
mov sbuf,a
jnb ti,$
clr ti
NEXT111:
jNB p_guard,NEXT110 ;设防
MOV 30H,#10
LCALL delay5ms
JNB p_guard,NEXT110
MOV 30H,#10
LCALL delay5ms
JNB p_guard,NEXT110
lcall beep
setb ex1
clr relax_flag
NEXT110:
jNB p_warning,NEXT1 ;响铃
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -