📄 recplay.asm
字号:
reset1: lcall open_dct ;启动电磁铁
lcall wait_400ms
djnz r7,reset0
lcall stop ;动作6次不成功则启动stop退出
sjmp reset0a
;
;
nop
nop
ljmp start
nop
nop
;
play: clr moto_on
lcall wait_100ms
mov a,ff_old
cjne a,#00h,play0
lcall open_dct ;stop->play
sjmp play4
;
play0: cjne a,#01h,play1 ;play->play
sjmp play4
;
play1: cjne a,#02h,play2
lcall open_dct ;ff->play
lcall wait_130ms
lcall open_dct
sjmp play4
;
play2: cjne a,#03h,play3
lcall open_dct ;rew->play
lcall wait_130ms
lcall open_dct
sjmp play4
;
play3: lcall open_dct ;stop->play
play4: lcall wait_300ms
mov ff_old,#01h
setb fang
mov play_m,#0 ;退出暂停状态
ret
;
;
nop
nop
ljmp start
nop
nop
;
ff: clr moto_on
lcall wait_100ms
mov a,ff_old
cjne a,#00h,ff_0
lcall open_dct ;stop->ff
lcall wait_450ms
lcall open_dct
sjmp ff_4
;
ff_0: cjne a,#01h,ff_1
lcall open_dct ;play->ff
sjmp ff_4
;
ff_1: cjne a,#02h,ff_2
sjmp ff_4
;
ff_2: cjne a,#03h,ff_3
lcall open_dct ;rew->ff
lcall wait_130ms
lcall open_dct
lcall wait_450ms
lcall open_dct
sjmp ff_4
;
ff_3: lcall open_dct ;stop->ff
lcall wait_450ms
lcall open_dct
ff_4: lcall wait_300ms
mov ff_old,#02h
setb fang
mov play_m,#0 ;退出暂停状态
ret
;
;
nop
nop
ljmp start
nop
nop
;
rew: clr moto_on
lcall wait_100ms
mov a,ff_old
cjne a,#00h,rew0
lcall open_dct ;stop->rew
lcall wait_450ms
lcall open_dct
lcall wait_35ms
lcall open_dct
sjmp rew4
;
rew0: cjne a,#01h,rew1 ;play_>rew
lcall open_dct
lcall wait_35ms
lcall open_dct
sjmp rew4
;
rew1: cjne a,#02h,rew2 ;ff->rew
lcall open_dct
lcall wait_130ms
lcall open_dct
lcall wait_450ms
lcall open_dct
lcall wait_35ms
lcall open_dct
sjmp rew4
;
rew2: cjne a,#03h,rew3 ;rew->rew
sjmp rew4
;
rew3: lcall open_dct ;stop->rew
lcall wait_450ms
lcall open_dct
lcall wait_35ms
lcall open_dct
rew4: lcall wait_300ms
mov ff_old,#03h
clr fang
mov play_m,#0 ;退出暂停状态
ret
;
stop: mov r4,#04h
jb mode_sw,stop_d2
stop_d0: lcall open_dct
lcall wait_190ms
djnz r4,stop_d1
sjmp stop_d2
stop_d1: jnb mode_sw,stop_d0
stop_d2: lcall wait_110ms
setb moto_on
lcall wait_300ms
mov ff_old,#00h
clr fang
mov play_m,#0 ;退出暂停状态
ret
;
;
nop
nop
ljmp start
nop
nop
;
led_dis: mov a,play_mem
cjne a,#01h,led_dis1
cjne a,play_m,rec_led2 ;录音
rec_led1: jb san_bit,rec_led2
setb rec_led
sjmp rec_led3
rec_led2: clr rec_led
rec_led3: setb play_led
setb rew_led
setb ffw_led
ret
;
led_dis1: cjne a,#02h,led_dis2
cjne a,play_m,play_led2 ;放音
play_led1: jb san_bit,play_led2
setb play_led
sjmp rec_led3
play_led2: clr play_led
play_led3: setb rec_led
setb rew_led
setb ffw_led
ret
;
led_dis2: cjne a,#03h,led_dis3
clr ffw_led ; 快进
setb play_led
setb rew_led
setb rec_led
ret
;
led_dis3: cjne a,#04h,led_dis4
clr rew_led ;快倒
setb play_led
setb ffw_led
setb rec_led
ret
;
led_dis4: setb rew_led ;停止
setb play_led
setb ffw_led
setb rec_led
ret
;
;
nop
nop
ljmp start
nop
nop
;
;
transram: lcall wrcom ;lcd数据传送
ret
;
lcdreset: setb cspin ;lcd复位
setb clkpin
setb dipin
mov lcdmm,#01h ;sys en
lcall lcdcm
mov lcdmm,#03h ;lcd on
lcall l_cmd
mov lcdmm,#04h ;timer dis
lcall l_cmd
mov lcdmm,#05h ;wdt dis
lcall l_cmd
mov lcdmm,#08h ;tone dis
lcall l_cmd
mov lcdmm,#18h ;rc256k
lcall l_cmd
mov lcdmm,#29h ;1/3 bias 4
lcall l_cmd
mov lcdmm,#80h ;irq dis
lcall l_cmd
mov lcdmm,#0e3h ;normal
lcall l_cmd
setb cspin
nop
setb clkpin
nop
setb dipin
ret
;
lcdcm: clr cspin ;写入命令字
mov a,#80h
mov r7,#03h
lcm1: clr clkpin
rlc a ;写入100代码
mov dipin,c
nop
setb clkpin
nop
nop
nop
djnz r7,lcm1
lcall l_cmd
ret
;
l_cmd: mov r7,#08h
mov a,lcdmm ;写入命令代码
lcm2: clr clkpin
rlc a
mov dipin,c
nop
setb clkpin
nop
nop
nop
djnz r7,lcm2
nop
nop
clr clkpin
nop
clr dipin
nop
nop
setb clkpin
nop
nop
setb dipin
ret
;
lwr3_1: clr clkpin
rrc a
mov dipin,c
nop
setb clkpin
nop
nop
nop
djnz r7,lwr3_1
ret
;
lwr3_2: clr clkpin
rlc a
mov dipin,c
nop
setb clkpin
nop
nop
nop
djnz r7,lwr3_2
ret
;
wrcom: clr cspin ;写入数据
mov r0,#60h
mov r7,#03h
mov a,#0a0h
lcall lwr3_2 ;写入101代码
;
mov r7,#06h
mov a,#00h
rlc a
rlc a
lcall lwr3_2 ;写入地址
;
mov r7,#08h
mov a,60h ;写入双数据60h
lcall lwr3_1
;
mov r7,#04h
mov a,61h ;写入单数据61h.l
anl a,#0fh
lcall lwr3_1
;
mov r0,#62h
mov r6,#08h
lwr4_1: mov r7,#08h
mov a,@r0 ;写入双数据62-69h
lcall lwr3_1
inc r0
djnz r6,lwr4_1
;
mov r7,#04h
mov a,61h ;写入单数据61h.h
swap a
anl a,#0fh
lcall lwr3_1
;
mov r0,#6ah
mov r6,#02h
lwr4_2: mov r7,#08h
mov a,@r0 ;写入双数据6a-6bh
lcall lwr3_1
inc r0
djnz r6,lwr4_2
setb cspin
nop
setb dipin
ret
; 笔画对应
;a1:60 01 a2:60 02 a3:60 04
;b1:60 10 b2:60 20 b3:60 40
;c1:61 01 c2:61 02 c3:61 04
;d1:62 01 d2:62 02 d3:62 04
;e1:62 10 e2:62 20 e3:62 40
;f1:63 10 f2:63 20 f3:63 40
;g1:63 01 g2:63 02 g3:63 04
lcd_data: mov 60h,#00h
mov 61h,#00h
mov 62h,#00h
mov 63h,#00h
mov 64h,#00h
mov 65h,#00h
mov 66h,#00h
mov 67h,#00h
mov 68h,#00h
mov 69h,#00h
mov 6ah,#00h
mov 6bh,#00h
mov a,count3_t ;高位
mov dptr,#labk
movc a,@a+dptr
mov 22h,a
jnb 10h,jjj1 ;a
mov a,60h
orl a,#01h
mov 60h,a
jjj1: jnb 11h,jjj2 ;b
mov a,60h
orl a,#10h
mov 60h,a
jjj2: jnb 12h,jjj3 ;c
mov a,61h
orl a,#01h
mov 61h,a
jjj3: jnb 13h,jjj4 ;d
mov a,62h
orl a,#01h
mov 62h,a
jjj4: jnb 14h,jjj5 ;e
mov a,62h
orl a,#10h
mov 62h,a
jjj5: jnb 15h,jjj6 ;f
mov a,63h
orl a,#10h
mov 63h,a
jjj6: jnb 16h,jjj7 ;g
mov a,63h
orl a,#01h
mov 63h,a
jjj7:
mov a,count2_t ;中位
mov dptr,#labk
movc a,@a+dptr
mov 22h,a
jnb 10h,ljj1 ;a
mov a,60h
orl a,#02h
mov 60h,a
ljj1: jnb 11h,ljj2 ;b
mov a,60h
orl a,#20h
mov 60h,a
ljj2: jnb 12h,ljj3 ;c
mov a,61h
orl a,#02h
mov 61h,a
ljj3: jnb 13h,ljj4 ;d
mov a,62h
orl a,#02h
mov 62h,a
ljj4: jnb 14h,ljj5 ;e
mov a,62h
orl a,#20h
mov 62h,a
ljj5: jnb 15h,ljj6 ;f
mov a,63h
orl a,#20h
mov 63h,a
ljj6: jnb 16h,ljj7 ;g
mov a,63h
orl a,#02h
mov 63h,a
ljj7:
mov a,count1_t ;低位
mov dptr,#labk
movc a,@a+dptr
mov 22h,a
jnb 10h,kjj1 ;a
mov a,60h
orl a,#04h
mov 60h,a
kjj1: jnb 11h,kjj2 ;b
mov a,60h
orl a,#40h
mov 60h,a
kjj2: jnb 12h,kjj3 ;c
mov a,61h
orl a,#04h
mov 61h,a
kjj3: jnb 13h,kjj4 ;d
mov a,62h
orl a,#04h
mov 62h,a
kjj4: jnb 14h,kjj5 ;e
mov a,62h
orl a,#40h
mov 62h,a
kjj5: jnb 15h,kjj6 ;f
mov a,63h
orl a,#40h
mov 63h,a
kjj6: jnb 16h,kjj7 ;g
mov a,63h
orl a,#04h
mov 63h,a
kjj7: ret
;
;
labk: db 3fh,06h,5bh,4fh,66h,6dh,7dh,07h,7fh,6fh,77h,7ch,39h,5eh,79h,71h,40h,00h
; 0(00),1(01),2(02),3(03),4(04),5(05),6(06),7(07),8(08),9(09),A(0a),B(0b),C(0c),D(0d),E(0e),F(0f),-(10),(11)
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -