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

📄 cpp_a1018v02.asm

📁 这是本人用GSM手机模组及51系列MCU做的无线固话程序,有批量生产
💻 ASM
📖 第 1 页 / 共 5 页
字号:
;==============================================
; project:  gsm telephone      
; model:    a1018
; date:     2005,6
; made by:  zule zhou
;============================================== 
;
;---- i/o ports define -------------
;
eepr_scl      bit  p0.0
eepr_sda      bit  p0.1
;             bit  p0.2 
kl4           bit  p0.3
kl3           bit  p0.4
kl2           bit  p0.5
kl1           bit  p0.6
kl0           bit  p0.7       
;
tone_gen      bit  p1.0
cs_34119      bit  p1.1     
;             bit  p1.2
;             bit  p1.3
;             bit  p1.4           
music_sda     bit  p1.5
music_scl     bit  p1.6    
;             bit  p1.7
;
cs_1622       bit  p2.0
scl_1622      bit  p2.1
sda_1622      bit  p2.2
kr4           bit  p2.3
kr3           bit  p2.4
kr2           bit  p2.5
kr1           bit  p2.6
kr0           bit  p2.7
;
;rxd           bit  p3.0
;txd           bit  p3.1
ctl_mobile    bit  p3.2   
sw_hook       bit  p3.3
;             bit  p3.4
;             bit  p3.5
key_led       bit  p3.6
back_led      bit  p3.6      
;
;---- sfr  define --------------------
;
;p0            equ  80h
;sp            equ  81h
;dpl           equ  82h
;dph           equ  83h
;
;pcon          equ  87h
idl           equ  0      ;=1:power down mode
pd            equ  1      ;=1:power lost
gf0           equ  2      ;flag bit
gf1           equ  3      ;flag bit
pof           equ  4      ;when power up,1-->pof  
smod          equ  7      ;=1:baudrate*2     
;
;tcon          equ  88h
;it0           bit  tcon.0
;ie0           bit  tcon.1
;it1           bit  tcon.2
;ie1           bit  tcon.3
;tr0           bit  tcon.4
;tf0           bit  tcon.5
;tr1           bit  tcon.6
;tf1           bit  tcon.7
;
;tmod          equ  89h
ct0_m0        equ  0
ct0_m1        equ  1
ct0_ct        equ  2
ct0_gt        equ  3
ct1_m0        equ  4
ct1_m1        equ  5
ct1_ct        equ  6
ct1_gt        equ  7
;
;tl0           equ  8ah
;tl1           equ  8bh
;th0           equ  8ch
;th1           equ  8dh
;
auxr          equ  8eh
aleoff        equ  0     ;=1:disable
extram        equ  1     ;=0:internal
;
;p1            equ  90h
;
;scon          equ  98h
;ri            bit  scon.0
;ti            bit  scon.1
;rb8           bit  scon.2
;tb8           bit  scon.3
;ren           bit  scon.4
;sm2           bit  scon.5
;sm1           bit  scon.6
sm0_fe        bit  scon.7
;     
;sbuf          equ  99h
;
;p2            equ  0a0h
;
auxr1         equ  0a2h
dps           equ  0
gf2           equ  2
;
;ie            equ  0a8h
;ex0           bit  ie.0
;et0           bit  ie.1
;ex1           bit  ie.2
;et1           bit  ie.3
;es            bit  ie.4
et2           bit  ie.5
;ea            bit  ie.7
;
saddr         equ  0a9h
;
;p3            equ  0b0h
;
iph           equ  0b7h
px0h          equ  0
pt0h          equ  1
px1h          equ  2
pt1h          equ  3
psh           equ  4
pt2h          equ  5
px2h          equ  6
px3h          equ  7
;
;ip            equ  0b8h
;px0           bit  ip.0
;pt0           bit  ip.1
;px1           bit  ip.2
;pt1           bit  ip.3
;ps            bit  ip.4
pt2           bit  ip.5
;
saden         equ  0b9h
;
xicon         equ  0c0h
it2           bit  xicon.0
ie2           bit  xicon.1
ex2           bit  xicon.2
px2           bit  xicon.3
it3           bit  xicon.4
ie3           bit  xicon.5
ex3           bit  xicon.6
px3           bit  xicon.7
;                  
t2con         equ  0c8h
cp_rl2        bit  t2con.0
c_t2          bit  t2con.1
tr2           bit  t2con.2
exen2         bit  t2con.3
tclk          bit  t2con.4
rclk          bit  t2con.5
exf2          bit  t2con.6
tf2           bit  t2con.7
;
t2mod         equ  0c9h
dcen          equ  0
t2oe          equ  1
;
rcap2l        equ  0cah
rcap2h        equ  0cbh
tl2           equ  0cch
th2           equ  0cdh
;
;psw           equ  0d0h
;p             bit  psw.0
;ov            bit  psw.2
;rs0           bit  psw.3
;rs1           bit  psw.4
;f0            bit  psw.5
;ac            bit  psw.6
;cy            bit  psw.7
;
;acc           equ  0e0h
;
wdt_contr     equ  0e1h
ps0           equ  0
ps1           equ  1
ps2           equ  2
idle_wdt      equ  3
clr_wdt       equ  4
en_wdt        equ  5
;
isp_data      equ  0e2h
isp_addrh     equ  0e3h
isp_addrl     equ  0e4h
isp_cmd       equ  0e5h
isp_trig      equ  0e6h
isp_contr     equ  0e7h
wt0           equ  0
wt1           equ  1
wt2           equ  2    
swrst         equ  5  ;=1:software reset
swbs          equ  6  ;=1:setup from isp area
ispen         equ  7  ;=1:enable modify flash
;
;b             equ  0f0h  
;
;---- ram  define ------------------
; 
f_play_nub    bit      20h.0
f_del_0       bit      20h.1    
;
key_flag      equ      21h
f_ky0         bit      0
f_ky1         bit      1
f_hld         bit      2
f_prs         bit      3
;
time_flag     equ      21h
f_10ms        bit      4
f_500ms       bit      5
f_1s          bit      6
;
hook_flag     equ      22h
f_off_1       bit      0
f_hook_off    bit      1
hf_flag       equ      22h
f_hf          bit      2
;
tone_flag     equ      22h
f_tone        bit      3
f_h_tone      bit      4
f_d_tone      bit      5
;
cid_flag      equ      23h
f_cid         bit      0
f_rec_end     bit      1
f_err         bit      2
f_view        bit      3
;
f_wr_1622     bit      23h.4
f_del_hld     bit      23h.5
f_playing     bit      23h.6
f_colon       bit      23h.7 
;
sl_rec_time   equ      2fh      
;
main_status   equ      30h
mobile_status equ      31h
;
send_mode     equ      32h
send_mode1    equ      33h
rec_mode      equ      34h
;
eepr_mode     equ      35h
eepr_mode1    equ      36h
; 
set_mode      equ      37h
time_mode     equ      38h
set_pnt       equ      38h 
;
tone_mode     equ      39h
tone_mode1    equ      3ah
;  
step_mode     equ      3bh
;
dial_pnt_in   equ      3ch
rd_pnt_in     equ      3dh   
;
cid_nub_in    equ      3eh  
;
play_nub_in   equ      3fh     
play_nub_out  equ      40h   
;
disp_pnt      equ      41h
;
key_val0      equ      42h
key_val1      equ      43h
key_tmp       equ      44h 
;   
melody_val    equ      45h
;
view_nub      equ      46h
temp_view_cnt equ      47h
;
value_rf      equ      48h
value_vol     equ      49h
;
temp_val      equ      4ah
send_data     equ      4ah
;
eepr_addrh    equ      4bh
eepr_addrl    equ      4ch 
; 
time_10ms     equ      4dh
time_500ms    equ      4eh
;
tone_time     equ      4fh
tone_g_tms    equ      50h
play_time     equ      51h
;
out_of_time   equ      52h
;
dis_eepr_time equ      53h
;
built_time    equ      54h
;
wr_1622_time  equ      55h
;
key_hld_time  equ      56h
;
disp_ver_time equ      57h
;
key_led_8s    equ      58h    
;
dis_send_time equ      59h
; 
talking_hour  equ      5ah 
talking_min   equ      5bh
talking_sec   equ      5ch
;
disp_cid_min  equ      5ah
disp_cid_hour equ      5bh
disp_cid_day  equ      5ch
disp_cid_mon  equ      5dh
;
clk_buf0      equ      5ah
buf_week0     equ      5ah
buf_min0      equ      5bh
buf_hour0     equ      5ch
buf_day0      equ      5dh
buf_month0    equ      5eh
buf_year0     equ      5fh
;
clk_buf       equ      60h
buf_week      equ      60h
buf_min       equ      61h
buf_hour      equ      62h
buf_day       equ      63h
buf_month     equ      64h
buf_year      equ      65h
;
rd_buf        equ      80h   ;80h~8fh
play_buf      equ      90h   ;90h~9fh
disp_buf      equ      0a0h  ;a0h~afh
lcd_buf       equ      0b0h  ;b0h~cfh
;
;---- expand ram define ------------
;
cid_nub_buf   equ      00h   ;00h~0fh  ;from line
set_buf       equ      10h   ;10h~17h 
;
music_ix      equ      18h
volu_ix       equ      19h
total_in      equ      1ah
total_out     equ      1bh
total_missed  equ      1ch 
;
areacode_buf  equ      20h   ;20h~24h
areacode_byte equ      25h
ip_nub_buf    equ      26h   ;26h~2ah
ip_byte       equ      2bh
lock_ph_buf   equ      30h   ;30h~34h
f_lock_ph     equ      35h
;
eepr_buf      equ      40h   ;40h~5fh        
rd_cmd_buf    equ      60h   ;60h~8fh
;
;
ram_buf       equ      90h
ram_i_indx0   equ      90h
ram_i_indx1   equ      0c2h
ram_i_total   equ      0f4h
ram_i_chkl    equ      0f5h
ram_i_chkh    equ      0f6h
;
ram_o_indx0   equ      90h
ram_o_indx1   equ      0c2h
ram_o_total   equ      0f4h
ram_o_chkl    equ      0f5h
ram_o_chkh    equ      0f6h
;
ram_m_indx0   equ      90h
ram_m_indx1   equ      0c2h
ram_m_total   equ      0f4h
ram_m_chkl    equ      0f5h
ram_m_chkh    equ      0f6h
;
ram_areacode  equ      90h  
ram_a_c_byte  equ      95h   
ram_ip_nub    equ      96h  
ram_ip_byte   equ      9bh  
ram_music_ix  equ      9ch  
ram_volu_ix   equ      9eh  
ram_lock_ph   equ      0a0h
ram_f_lock_ph equ      0a5h    
ram_f_play    equ      0a6h
ram_f_del_0   equ      0a7h            
;
;---- eeprom address arrange ---------
;
addr_in       equ      000h
addr_i_indx0  equ      320h
addr_i_indx1  equ      352h
addr_i_total  equ      384h
addr_i_chkl   equ      385h
addr_i_chkh   equ      386h
;
addr_out      equ      3a0h
addr_o_indx0  equ      6c0h
addr_o_indx1  equ      6f2h
addr_o_total  equ      724h
addr_o_chkl   equ      725h
addr_o_chkh   equ      726h
;
addr_missed   equ      740h
addr_m_indx0  equ      0a60h
addr_m_indx1  equ      0a92h
addr_m_total  equ      0ac4h
addr_m_chkl   equ      0ac5h
addr_m_chkh   equ      0ac6h      
;             
addr_areacode equ      0b00h  ;b00h~b04h
addr_a_c_byte equ      0b05h   
addr_ip_nub   equ      0b06h  ;b06h~b0ah
addr_ip_byte  equ      0b0bh  
addr_music_ix equ      0b0ch  ;b0ch,b0dh
addr_volu_ix  equ      0b0eh  ;b0eh,b0fh
addr_lock_ph  equ      0b10h  ;0b10h,0b14h   
addr_f_lock   equ      0b15h
addr_f_play   equ      0b16h
addr_f_del_0  equ      0b17h      
;
;  
;---- constant define --------------
;
sys_dis       equ      00h
sys_en        equ      01h
lcd_off       equ      02h
lcd_on        equ      03h
timer_dis     equ      04h
wdt_dis       equ      05h
timer_en      equ      06h
wdt_en        equ      07h
tone_off      equ      08h
clr_timer     equ      0dh
;clr_wdt       equ      0fh
rc_32k        equ      18h
ext_32k       equ      1ch 
tone_4k       equ      40h
tone_2k       equ      60h
irq_dis       equ      80h
irq_en        equ      88h
f1            equ      0a0h
f2            equ      0a1h
f4            equ      0a2h
f8            equ      0a3h
f16           equ      0a4h
f32           equ      0a5h
f64           equ      0a6h
f128          equ      0a7h
normal        equ      0e3h
;
key_tone      equ      09h
ok_tone       equ      0ah
error_tone    equ      0bh
ring_tone     equ      0ch
dial_tone     equ      0dh
music_tone    equ      0eh             
; 
;---- program begin ----------------
;
       org     0000h
       ljmp    reset

       org     000bh
       ljmp    int_t0

       org     0023h
       ljmp    int_serial
;
;
;
       org     0050h
       
reset:
       clr     ea
       mov     sp,#0e0h
       
       mov     pcon,#0
       mov     wdt_contr,#0
       
       mov     auxr,#1
       mov     auxr1,#0
       
       clr     rs0
       clr     rs1
       
       mov     p0,#0ffh
       mov     p1,#9eh
       mov     p2,#0ffh
       mov     p3,#0ffh
       
       mov     tmod,#11h
       mov     tcon,#10h
       mov     tl0,#40h
       mov     th0,#0feh   ;22.1184/12=1.8432mhz,278us*1.8432=512=200h
                           ;ffffh-200h+1=fe00h
       
       mov     rcap2h,#0ffh     ;9.6kbps    
       mov     rcap2l,#0b8h
       mov     t2mod,#0
       mov     t2con,#34h    
       
       mov     saden,#0
       mov     saddr,#0
       mov     scon,#50h
       
       mov     ie,#02h    ;es=0,et0=1
       mov     ip,#10h
       mov     iph,#0
       mov     xicon,#0
       
       mov     isp_contr,#02h              
;
;       
       mov     r0,#20h
clr_ram:
       mov     @r0,#0
       inc     r0
       mov     a,r0
       cjne    a,#80h,clr_ram

       mov     value_rf,#30
       mov     value_vol,#80
       
       mov     time_10ms,#9
       mov     time_500ms,#50   
;       
;       
       lcall   delay_1s
       
       setb    ea
       
       clr     back_led
        
       lcall   get_data_from_eeprom
                            
       lcall   set_1622_func                     
       lcall   clr_all_display
       ;/lcall   set_icon_mobile
       lcall   set_icon_ant0
       lcall   write_1622_data
       
       mov     melody_val,#0
       lcall   _write_music_ic
       lcall   delay_20ms
       mov     r0,#volu_ix
       movx    a,@r0
       mov     melody_val,a
       lcall   _write_music_ic
        
       clr     ctl_mobile              
       
       lcall   delay_2s
       
       setb    ctl_mobile
       

⌨️ 快捷键说明

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