BEEPC:
CLR P0.0
;500HZ信号音子程序
LCALL DELAY1ms
SETB P0.0
LCALL DELAY1ms
RET
DELAY1ms:
MOV R6,#2
;1ms延时子程序
DEL:
MOV R7,#255
DEL1:
DJNE R7,DEL1
DJNE R6,DEL
RET
SETB P1.4;(TOE引脚),使输出数据有效 ANL A,#0FH;使累加器高4位为0,仅保留低4位数据 MOV @R0,A;传送到目标单元,如传送到78H,或78H~7BH CJNE R0,#7CH,INT0RET;如果没到达7CH,则退出中断 SETB P1.4;(TOE引脚),使输出数据有效 ANL A,#0FH;使累加器高4位为0,仅保留低4位数据 MOV @R0,A;传送到目标单元,如传送到78H,或78H~7BH CJNE R0,#7CH,INT0RET;如果没到达7CH,则退出中断 MMXG:
;密码修改子程序
JB 20H.2,AA ;判是否新密码接收
SETB P1.4
MOV A,P1
CLR P1.4
CJNE A,#11,CONTROL
;判是否进行密码修改操作(规定以*键输入
;时,为密码修改操作),否则进行电器控
;制操作
LCALL LOAD
;接收4位新密码
MOV R0,#68H
LCALL BEEPC
LCALL BEEPC
;2声500hz,重新输入新密码以确认
Setb 20h.2
;
AA:
LCALL LOAD
;接收4位新密码
BB:
mov a,68h
; 两次密码比较
CJNE a,78h,MIMA_ERR
INC
;指向新单元
INC
CJNE
A,6CH,BB
;比较结束且正确,怎样让新密码下次使 用有效?
Setb 20h.3
Lcall BEEPC
;1声500hz表修改成功
ret
CONTROL:
;本段子程序用于实验室阶段
CPL A
Anl a, #0fh
Mov p2,a
Lcall BEEPC ;1声500hz代表完成命令
reti
|