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

📄 cpp_a1018v02.asm

📁 这是本人用GSM手机模组及51系列MCU做的无线固话程序,有批量生产
💻 ASM
📖 第 1 页 / 共 5 页
字号:
       mov     r1,a
       
       mov     a,r2
       jnb     f0,view_in_17_1
       swap    a
view_in_17_1:
       mov     r2,a
       
       mov     a,@r1
       jnb     f0,view_in_17_2
       anl     a,#0fh
       sjmp    view_in_17_3
view_in_17_2:
       anl     a,#0f0h
view_in_17_3:
       orl     a,r2
       mov     @r1,a
       
       inc     r0
       inc     dial_pnt_in
       mov     a,dial_pnt_in
       cjne    a,#16,view_in_17_4
       sjmp    view_in_18
view_in_17_4:
       ajmp    view_in_16_0       
view_in_18:
       lcall   del_0_of_013
       
       mov     rd_pnt_in,dial_pnt_in
       
       mov     r2,#0 
       mov     disp_pnt,dial_pnt_in
       mov     a,dial_pnt_in
       add     a,#255-14
       jnc     view_in_19
       mov     disp_pnt,#14
       mov     a,dial_pnt_in
       clr     c
       subb    a,#14
       mov     r2,a
view_in_19:
       mov     r0,#disp_buf       
view_in_19_0:
       mov     a,r2
       rrc     a
       
       clr     f0
       jnc     view_in_19_1
       setb    f0
view_in_19_1:
       anl     a,#0fh
       add     a,#rd_buf
       mov     r1,a
       
       mov     a,@r1
       jnb     f0,view_in_19_2
       swap    a
view_in_19_2:
       anl     a,#0fh
       mov     @r0,a
       inc     r0
       inc     r2
       mov     a,r2
       cjne    a,dial_pnt_in,view_in_19_0
       
       lcall   display_number
       lcall   display_date_and_clock 
       lcall   clr_icon_going
       lcall   clr_icon_incoming
       lcall   clr_icon_missed
       lcall   set_icon_talking  
       lcall   _write_1622_data
       
       setb    hf_flag.f_hf
      
       mov     b,#8
       lcall   get_send_mode
       mov     main_status,#7
       
       clr     f_del_hld
       
       mov     b,#12   
       lcall   set_eepr_mode
       
       mov     built_time,#20          
       ret
;         
view_in_20:
       jnb     key_flag.f_hld,view_in_22
       
       mov     a,key_hld_time
       jz      view_in_21
       ret
view_in_21:
       mov     r0,#total_in
       mov     a,#0
       movx    @r0,a
       mov     b,#9
view_in_21_0:
       lcall   set_eepr_mode
              
       clr     f_del_hld
       
       lcall   get_key_tone
       
       lcall   display_total_missed
       lcall   display_date_and_clock
       lcall   clr_all_number
       lcall   _write_1622_data
       mov     main_status,#0
       ret                   
;       
view_in_22:
       clr     f_del_hld      
       
       mov     r0,#total_in
       movx    a,@r0       
       cjne    a,#1,view_in_23
       sjmp    view_in_21
view_in_23:
       lcall   get_key_tone
       
       mov     b,#7
       lcall   set_eepr_mode
       ret
;
;
view_out_stu:
       mov     a,mobile_status
       xrl     a,#3
       jnz     view_out_0
       
       ajmp    view_to_ring
view_out_0:
       jb      hook_flag.f_hook_off,view_out_4
       
       jnb     f_del_hld,view_out_1
       ljmp    view_out_20
view_out_1:            
       jb      key_flag.f_prs,view_out_3
       
       mov     a,out_of_time
       jz      view_out_2
       ret
view_out_2:
       lcall   get_error_tone
       ajmp    view_out_6_1         
view_out_3:
       clr     key_flag.f_prs
       mov     key_val1,key_val0
       
       mov     a,key_val1
       cjne    a,#80h,view_out_5    
       setb    hf_flag.f_hf
view_out_4:
       ajmp    view_in_4       
view_out_5:
       cjne    a,#43h,view_out_6
       setb    f_del_hld
       ret
view_out_6:       
       cjne    a,#83h,view_out_7
       
       lcall   get_key_tone
view_out_6_1:
       ajmp    view_in_6_1          
view_out_7:
       cjne    a,#40h,view_out_8
       
       lcall   get_key_tone
       
       inc     view_nub
       mov     r0,#total_out
       movx    a,@r0
       cjne    a,view_nub,view_out_7_0
       nop
view_out_7_0:
       jnc     view_out_7_1
       mov     view_nub,#1
view_out_7_1:
       mov     b,#11
       lcall   set_eepr_mode
       ret
view_out_8:
       cjne    a,#41h,view_out_9
       
       lcall   get_key_tone
       
       dec     view_nub
       mov     a,view_nub
       jnz     view_out_8_0
       mov     r0,#total_out
       movx    a,@r0
       mov     view_nub,a
view_out_8_0:
       sjmp    view_out_7_1
view_out_9:
       xrl     a,#42h
       jz      view_out_10
       ret
;
view_out_10:
       ajmp    view_in_10
;
view_out_20:
       jnb     key_flag.f_hld,view_out_22
       
       mov     a,key_hld_time
       jz      view_out_21
       ret
view_out_21:
       mov     r0,#total_out
       mov     a,#0
       movx    @r0,a
       mov     b,#18
       ajmp    view_in_21_0
;       
view_out_22:
       clr     f_del_hld      
       
       mov     r0,#total_out
       movx    a,@r0       
       cjne    a,#1,view_out_23
       sjmp    view_out_21
view_out_23:
       lcall   get_key_tone
       
       mov     b,#16
       lcall   set_eepr_mode
       ret             
;
;
view_missed_stu:       
       mov     a,mobile_status
       xrl     a,#3
       jnz     view_missed_0
       
       ajmp    view_to_ring
view_missed_0:
       jb      hook_flag.f_hook_off,view_missed_4
       
       jnb     f_del_hld,view_missed_1
       ljmp    view_missed_20
view_missed_1:            
       jb      key_flag.f_prs,view_missed_3
       
       mov     a,out_of_time
       jz      view_missed_2
       ret
view_missed_2:
       lcall   get_error_tone
       ajmp    view_missed_6_1         
view_missed_3:
       clr     key_flag.f_prs
       mov     key_val1,key_val0
       
       mov     a,key_val1
       cjne    a,#80h,view_missed_5    
       setb    hf_flag.f_hf
view_missed_4:
       ajmp    view_in_4       
view_missed_5:
       cjne    a,#43h,view_missed_6
       setb    f_del_hld
       ret
view_missed_6:       
       cjne    a,#84h,view_missed_7
       
       lcall   get_key_tone
view_missed_6_1:
       ajmp    view_in_6_1          
view_missed_7:
       cjne    a,#40h,view_missed_8
       
       lcall   get_key_tone
       
       inc     view_nub
       mov     r0,#total_missed
       movx    a,@r0
       cjne    a,view_nub,view_missed_7_0
       nop
view_missed_7_0:
       jnc     view_missed_7_1
       mov     view_nub,#1
view_missed_7_1:
       mov     b,#20
       lcall   set_eepr_mode
       ret
view_missed_8:
       cjne    a,#41h,view_missed_9
       
       lcall   get_key_tone
       
       dec     view_nub
       mov     a,view_nub
       jnz     view_missed_8_0
       mov     r0,#total_missed
       movx    a,@r0
       mov     view_nub,a
view_missed_8_0:
       sjmp    view_missed_7_1
view_missed_9:
       xrl     a,#42h
       jz      view_missed_10
       ret
;
view_missed_10:
       ajmp    view_in_10
;
view_missed_20:
       jnb     key_flag.f_hld,view_missed_22
       
       mov     a,key_hld_time
       jz      view_missed_21
       ret
view_missed_21:
       mov     r0,#total_missed
       mov     a,#0
       movx    @r0,a
       mov     b,#27
       ajmp    view_in_21_0
;       
view_missed_22:
       clr     f_del_hld      
       
       mov     r0,#total_missed
       movx    a,@r0       
       cjne    a,#1,view_missed_23
       sjmp    view_missed_21
view_missed_23:
       lcall   get_key_tone
       
       mov     b,#25
       lcall   set_eepr_mode
       ret                       
;
;
;===========================================
; program process subroutine
;===========================================
;
program_stu:
       mov     a,mobile_status   
       xrl     a,#3
       jnz     prog_stu_2

       mov     main_status,#1
       
       mov     a,set_mode
       anl     a,#0fh
       cjne    a,#5,prog_stu_0
       
       mov     r0,#volu_ix
       movx    a,@r0
       mov     melody_val,a
       lcall   _write_music_ic
prog_stu_0:       
       mov     r0,#music_ix
       movx    a,@r0
       mov     melody_val,a
       mov     tone_mode,#music_tone
prog_stu_1:
       lcall   clr_icon_set 
       lcall   display_total_missed
       lcall   display_date_and_clock
       lcall   clr_all_number
       lcall   _write_1622_data
       ret
prog_stu_2:
       jb      hook_flag.f_hook_off,prog_stu_6
       
       jb      key_flag.f_prs,prog_stu_5
       
       mov     a,set_mode
       cjne    a,#70h,prog_stu_3
       
       mov     a,disp_ver_time
       jnz     prog_stu_3
       
       lcall   get_key_tone
       mov     main_status,#0
       sjmp    prog_stu_1
prog_stu_3:       
       mov     a,out_of_time
       jz      prog_stu_4
       ret
prog_stu_4:
       mov     a,set_mode
       anl     a,#0fh
       cjne    a,#5,prog_stu_4_0
       
       mov     r0,#volu_ix
       movx    a,@r0
       mov     melody_val,a
       lcall   _write_music_ic
prog_stu_4_0:
       lcall   get_error_tone
       mov     main_status,#0
       ajmp    prog_stu_1
;                     
prog_stu_5:
       clr     key_flag.f_prs
       mov     key_val1,key_val0
       
       mov     a,key_val1
       cjne    a,#80h,prog_stu_7
       setb    hf_flag.f_hf    
prog_stu_6:       
       mov     a,set_mode
       anl     a,#0fh
       cjne    a,#5,prog_stu_6_0
       
       mov     r0,#volu_ix
       movx    a,@r0
       mov     melody_val,a
       lcall   _write_music_ic
prog_stu_6_0:
       lcall   clr_icon_set
       lcall   display_total_missed
       lcall   display_date_and_clock
       lcall   clr_all_number
       lcall   set_icon_talking
       lcall   _write_1622_data
       
       lcall   get_dial_tone
       
       mov     dial_pnt_in,#0
       mov     disp_pnt,#0
       mov     main_status,#6
       ret                  
prog_stu_7:
       cjne    a,#81h,prog_stu_10
       
       mov     a,set_mode
       anl     a,#0fh
       cjne    a,#5,prog_stu_7_0
       
       mov     r0,#volu_ix
       movx    a,@r0
       mov     melody_val,a
       lcall   _write_music_ic
prog_stu_7_0:
       lcall   get_key_tone
       mov     main_status,#0
       ajmp    prog_stu_1
;                        
prog_stu_10:
       mov     dptr,#prog_stu_jmp
       
       mov     a,set_mode
       swap    a
       anl     a,#0fh
       mov     r0,a
       add     a,r0
       add     a,r0
       
       jmp     @a+dptr
;
prog_stu_jmp:
       ljmp    prog_mod0
       ljmp    prog_mod1
       ljmp    prog_mod2
       ljmp    prog_mod3
       ljmp    prog_mod4
       ljmp    prog_mod5
       ljmp    prog_mod6
       ljmp    prog_mod7
;              
prog_mod0:
       mov     a,key_val1
       cjne    a,#0ch,prog_mod0_0
       
       lcall   get_key_tone
       
       mov     set_mode,#10h
       ret
prog_mod0_0:
       cjne    a,#0bh,prog_mod0_1
       
       lcall   get_key_tone
       
       mov     set_mode,#40h
       ret               
prog_mod0_1:
       ajmp    prog_stu_4_0
;
prog_mod1:
       mov     a,key_val1
       cjne    a,#0ah,prog_mod0_1
       
       lcall   get_key_or_play_tone
       mov     set_mode,#20h
       ret  
;
prog_mod2:
       mov     a,key_val1
       cjne    a,#0ah,prog_mod2_0
       mov     a,#0
       mov     key_val1,a
prog_mod2_0:
       add     a,#255-6
       jnc     prog_mod2_1
       sjmp    prog_mod0_1       
prog_mod2_1:
       lcall   get_key_or_play_tone
       lcall   disp_char_set
       lcall   _write_1622_data
       
       mov     a,key_val1
       orl     a,#30h
       mov     set_mode,a
       
       mov     time_mode,#0
       mov     set_pnt,#0
       mov     disp_pnt,#0
       
       mov     a,set_mode
       anl     a,#0fh
       jnz     prog_mod2_2
       
       mov     buf_year0,buf_year
       mov     buf_month0,buf_month
       mov     buf_day0,buf_day
       mov     buf_hour0,buf_hour
       mov     buf_min0,buf_min
       ret
prog_mod2_2:       
       cjne    a,#3,prog_mod2_3
       
       mov     temp_val,#0
       jnb     f_play_nub,prog_mod2_2_0
       mov     temp_val,#1
prog_mod2_2_0:            
       ret
prog_mod2_3:
       cjne    a,#4,prog_mod2_4
              
       mov     r0,#music_ix
       movx    a,@r0
       mov     melody_val,a
       mov     temp_val,a
       mov     tone_mode,#music_tone
       ret
prog_mod2_4:
       cjne    a,#5,prog_mod2_5
       
       mov     r0,#music_ix
       movx    a,@r0
       mov     melody_val,a
       mov     tone_mode,#music_tone
       mov     r0,#volu_ix
       movx    a,@r0
       mov     temp_val,a
prog_mod2_5:
       cjne    a,#6,prog_mod2_6
       
       mov     temp_val,#0
       jnb     f_del_0,prog_mod2_6
       mov     temp_val,#1
prog_mod2_6:            
       ret                                                         
;
prog_mod3:
       mov     dptr,#prog_mod3_jmp
       
       mov     a,set_mode

⌨️ 快捷键说明

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