📄 cpp_a1018v02.asm
字号:
add a,#rd_buf
mov r0,a
mov a,@r0
jnb f0,pre_dial_4_5
swap a
pre_dial_4_5:
anl a,#0fh
mov @r1,a
inc r1
inc r2
mov a,r2
cjne a,dial_pnt_in,pre_dial_4_3
lcall display_number
lcall _write_1622_data
ret
;
pre_dial_5:
cjne a,#42h,pre_dial_10
mov a,dial_pnt_in
jz pre_dial_5_0
ret
pre_dial_5_0:
mov a,rd_pnt_in
jnz pre_dial_5_1
ret
pre_dial_5_1:
add a,#256-3
jc pre_dial_5_2
ret
pre_dial_5_2:
lcall get_key_tone
mov dial_pnt_in,rd_pnt_in
pre_dial_5_2_0:
mov b,#8
lcall get_send_mode
mov built_time,#20
mov main_status,#7
pre_dial_5_3:
mov r2,#0
mov disp_pnt,dial_pnt_in
mov a,dial_pnt_in
add a,#255-14
jnc pre_dial_5_4
mov disp_pnt,#14
mov a,dial_pnt_in
clr c
subb a,#14
mov r2,a
pre_dial_5_4:
mov r0,#disp_buf
pre_dial_5_5:
mov a,r2
rrc a
clr f0
jnc pre_dial_5_6
setb f0
pre_dial_5_6:
anl a,#0fh
add a,#rd_buf
mov r1,a
mov a,@r1
jnb f0,pre_dial_5_7
swap a
pre_dial_5_7:
anl a,#0fh
mov @r0,a
inc r0
inc r2
mov a,r2
cjne a,dial_pnt_in,pre_dial_5_5
lcall display_number
lcall _write_1622_data
ret
;
pre_dial_10:
add a,#0ffh-0ch
jnc pre_dial_11
ret
pre_dial_11:
lcall get_key_or_play_tone
mov a,dial_pnt_in
jz pre_dial_12
cjne a,#20h,pre_dial_13
mov r2,#1
pre_dial_11_0:
mov a,r2
rrc a
clr f0
jnc pre_dial_11_1
setb f0
pre_dial_11_1:
anl a,#0fh
add a,#rd_buf
mov r0,a
mov a,@r0
jnb f0,pre_dial_11_2
swap a
pre_dial_11_2:
anl a,#0fh
mov r1,a
dec r2
mov a,r2
rrc a
clr f0
jnc pre_dial_11_3
setb f0
pre_dial_11_3:
anl a,#0fh
add a,#rd_buf
mov r0,a
mov a,r1
jnb f0,pre_dial_11_4
swap a
pre_dial_11_4:
mov r1,a
mov a,@r0
jnb f0,pre_dial_11_5
anl a,#0fh
sjmp pre_dial_11_6
pre_dial_11_5:
anl a,#0f0h
pre_dial_11_6:
orl a,r1
mov @r0,a
inc r2
mov a,r2
cjne a,#1fh,pre_dial_11_7
dec dial_pnt_in
sjmp pre_dial_13
pre_dial_11_7:
inc r2
ajmp pre_dial_11_0
;
pre_dial_12:
mov a,key_val1
cjne a,#0ah,pre_dial_12_0
lcall add_ip_to_buf
sjmp pre_dial_13
pre_dial_12_0:
cjne a,#1,pre_dial_12_1
sjmp pre_dial_13
pre_dial_12_1:
cjne a,#9,pre_dial_12_2
sjmp pre_dial_13
pre_dial_12_2:
cjne a,#0bh,pre_dial_12_3
sjmp pre_dial_13
pre_dial_12_3:
lcall add_areacode_to_buf
;
pre_dial_13:
mov a,dial_pnt_in
rrc a
clr f0
jnc pre_dial_13_0
setb f0
pre_dial_13_0:
anl a,#0fh
add a,#rd_buf
mov r0,a
mov a,@r0
jb f0,pre_dial_13_1
anl a,#0f0h
sjmp pre_dial_13_2
pre_dial_13_1:
anl a,#0fh
pre_dial_13_2:
mov r1,a
mov a,key_val1
jnb f0,pre_dial_13_3
swap a
pre_dial_13_3:
orl a,r1
mov @r0,a
inc dial_pnt_in
mov rd_pnt_in,dial_pnt_in
ajmp pre_dial_5_3
;
pre_dial_20:
mov a,out_of_time
jz pre_dial_21
ret
pre_dial_21:
ajmp pre_dial_3_0
;
;
;===========================================
; judge if rf talking subroutine
;===========================================
;
talking_built_stu:
jb hook_flag.f_hook_off,built_stu_0
jnb hf_flag.f_hf,built_stu_5
built_stu_0:
jnb key_flag.f_prs,built_stu_1
clr key_flag.f_prs
mov key_val1,key_val0
mov a,key_val1
cjne a,#80h,built_stu_1
cpl hf_flag.f_hf
lcall get_key_tone
ret
built_stu_1:
mov a,mobile_status
xrl a,#4
jnz built_stu_2
mov talking_min,#0
mov talking_sec,#0
mov talking_hour,#0
lcall display_talking_time
lcall _write_1622_data
mov main_status,#8
ret
built_stu_2:
xrl a,#4
xrl a,#3
jnz built_stu_3
ret
built_stu_3:
mov a,built_time
jz built_stu_4
ret
built_stu_4:
clr hf_flag.f_hf
built_stu_5:
lcall clr_icon_talking
lcall display_total_missed
lcall display_date_and_clock
lcall clr_all_number
lcall _write_1622_data
mov b,#6
lcall get_send_mode
mov main_status,#9
mov tone_mode,#0
ret
;
;
;===========================================
; talking on subroutine
;===========================================
;
talk_on_stu:
jb hook_flag.f_hook_off,talk_on_0
jnb hf_flag.f_hf,talk_on_4
talk_on_0:
jnb key_flag.f_prs,talk_on_2
clr key_flag.f_prs
mov key_val1,key_val0
mov a,key_val1
cjne a,#80h,talk_on_1
cpl hf_flag.f_hf
lcall get_key_tone
ret
talk_on_1:
add a,#0ffh-0ch
jc talk_on_2
lcall get_key_or_play_tone
mov a,key_val1
mov send_data,a
mov b,#9
lcall get_send_mode
ret
talk_on_2:
mov a,mobile_status
xrl a,#4
jnz talk_on_3
ret
talk_on_3:
clr hf_flag.f_hf
talk_on_4:
sjmp built_stu_5
;
;
;===========================================
; talking off subroutine
;===========================================
;
talking_off_stu:
clr key_flag.f_prs
mov a,send_mode
add a,send_mode1
add a,rec_mode
jnz talking_off_0
mov main_status,#0
mov mobile_status,#0
talking_off_0:
ret
;
;
;
;===========================================
; detection event process subroutine
;===========================================
;
event_det_process:
jb time_flag.f_10ms,det_event_0
ret
det_event_0:
clr time_flag.f_10ms
;
key_det:
anl p0,#7
nop
mov a,p2
anl a,#0f8h
cjne a,#0f8h,key_dt_00
clr key_flag.f_ky0
clr key_flag.f_ky1
clr key_flag.f_hld
mov key_tmp,#0
ljmp key_dt_13
;
key_dt_00:
jb key_flag.f_hld,key_dt_13
xch a,key_tmp
xrl a,key_tmp
jnz key_dt_13
jb key_flag.f_ky0,key_dt_01
setb key_flag.f_ky0
sjmp key_dt_13
key_dt_01:
jb key_flag.f_ky1,key_dt_02
setb key_flag.f_ky1
sjmp key_dt_13
key_dt_02:
jb key_flag.f_prs,key_dt_13
;
key_dt_10:
setb key_flag.f_hld
clr key_led
mov key_led_8s,#16
mov key_val0,#0
orl p0,#78h
mov key_tmp,#78h
key_dt_11:
nop
nop
nop
mov a,p2
anl a,#0f8h
cjne a,#0f8h,key_dt_12
jnb p0.3,key_dt_13
mov a,#5
add a,key_val0
mov key_val0,a
mov a,key_tmp
setb c
rrc a
anl a,#0f8h
mov key_tmp,a
anl p0,#7
orl p0,a
sjmp key_dt_11
key_dt_12:
rrc a
rrc a
rrc a
anl a,#1fh
mov dptr,#key_table_0
movc a,@a+dptr
jz key_dt_13
dec a
add a,key_val0
mov dptr,#key_table_1
movc a,@a+dptr
mov key_val0,a
setb key_flag.f_prs
mov key_hld_time,#255
mov out_of_time,#30
key_dt_13:
orl p0,#0f8h
ajmp hook_sw_det
;
key_table_0:
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 01h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 00h
db 02h
db 00h
db 00h
db 00h
db 03h
db 00h
db 04h
db 05h
db 00h
;
key_table_1:
db 01h
db 02h
db 03h
db 00h
db 44h ;send
db 04h
db 05h
db 06h
db 00h
db 81h ;func
db 07h
db 08h
db 09h
db 00h
db 43h ;clr
db 0bh
db 0ah
db 0ch
db 80h ;hf
db 42h ;rd
db 83h ;out
db 84h ;missed
db 40h ;up
db 82h ;in
db 41h ;down
;
hook_sw_det:
jb sw_hook,hook_sw_det_1
jb hook_flag.f_hook_off,hook_sw_det_ret
jnb hook_flag.f_off_1,hook_sw_det_0
setb hook_flag.f_hook_off
clr hf_flag.f_hf
sjmp hook_sw_det_ret
hook_sw_det_0:
setb hook_flag.f_off_1
sjmp hook_sw_det_ret
hook_sw_det_1:
jb hook_flag.f_off_1,hook_sw_det_2
clr hook_flag.f_hook_off
sjmp hook_sw_det_ret
hook_sw_det_2:
clr hook_flag.f_off_1
hook_sw_det_ret:
;
led_job:
mov a,main_status
jnz led_job_0
mov a,key_led_8s
jnz led_job_1
setb back_led
sjmp set_cs34119
led_job_0:
clr back_led
led_job_1:
;
set_cs34119:
mov a,main_status
cjne a,#1,set_cs34119_0
sjmp set_cs34119_1
set_cs34119_0:
add a,#256-6
jc set_cs34119_1
mov a,tone_mode
jz set_cs34119_2
set_cs34119_1:
clr cs_34119
sjmp tone_job
set_cs34119_2:
setb cs_34119
;
tone_job:
mov dptr,#tone_job_jmp
mov a,tone_mode
clr c
rlc a
anl a,#0fh
jmp @a+dptr
;
tone_job_jmp:
ajmp tone_md0
ajmp tone_md1
ajmp tone_md2
ajmp tone_md3
ajmp tone_md4
ajmp tone_md5
ajmp tone_md6
ajmp tone_md7
;
tone_md0:
clr tone_flag.f_tone
clr tone_flag.f_h_tone
clr tone_flag.f_d_tone
clr tone_gen
mov a,melody_val
jz tone_md0_0
add a,#0ffh-14h
jc tone_md0_0
mov melody_val,#0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -