📄 cpp_a1018v02.asm
字号:
;==============================================
; 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 + -