📄 0712.asm
字号:
bright:
clr pt11_stb
mov a,#0bdh
call outdata
setb pt11_stb
ret
indata:
mov r6,#8
setb pt11_data
indata1:
setb pt11_clk
clr pt11_clk
mov c,pt11_data
rrc a
djnz r6,indata1
ret
;///////////////////////////////////////////////
ctrl_shuju:
mov dptr,#tonedata
movc a,@a+dptr
ret
tonedata:
db 00h,01h,02h,03h,04h,05h,06h,07h
DB 0EH,0DH,0CH,0BH,0AH,09H,08H
;//////////////////////////////////////////////////
delay10:
mov r4,#10
d10:
mov r5,#248
djnz r5,$
djnz r4,d10
ret
;///////////////////////////////////////////////////
bin2bcd:
mov b,#10
div ab
mov disp0,a
mov disp1,b
ret
;////////////////////////////////
delay:
nop
nop
nop
nop
nop
ret
;////////////////////////////////
pt2314_wr_bal:
mov pt2314_msb,a
lcall pt2314_wr
ret
;//////////////////////////////
pt2314_wr:
acall sta
mov a,#pt_2314add
acall senddate
acall ack
mov a,pt2314_msb
acall senddate
acall ack
acall stop
ret
ack:
call delay
setb pt14_clk
call delay
setb pt14_data
ack_1:
mov c,pt14_data
jc ack_1
clr pt14_clk
clr pt14_data
ret
nack:
setb pt14_data
setb pt14_clk
acall delay
clr pt14_clk
acall delay
clr pt14_data
ret
sta:
setb pt14_clk
setb pt14_data
acall delay
clr pt14_data
acall delay
clr pt14_clk
ret
stop:
clr pt14_clk
clr pt14_data
acall delay
setb pt14_clk
acall delay
setb pt14_data
acall delay
ret
senddate:
mov r2,#8
loopw:
rlc a
mov pt14_data,c
acall delay
setb pt14_clk
acall delay
clr pt14_clk
acall delay
djnz r2,loopw
clr pt14_data
ret
;/////////////////////////////////////
ack1:
call delay
setb scl02
call delay
setb sda02
ack_1_1:
mov c,sda02
jc ack_1_1
clr scl02
clr sda02
ret
nack1:
setb sda02
setb scl02
acall delay
clr scl02
acall delay
clr sda02
ret
sta1:
setb scl02
setb sda02
acall delay
clr sda02
acall delay
clr scl02
ret
stop1:
clr scl02
clr sda02
acall delay
setb scl02
acall delay
setb sda02
acall delay
ret
senddate1:
mov r2,#8
loopw1:
rlc a
mov sda02,c
acall delay
setb scl02
acall delay
clr scl02
acall delay
djnz r2,loopw1
clr sda02
ret
rd24:
push acc
setb sda02
clr scl02
call sta1
mov a,#0a0h
call senddate1
call ack1
pop acc
call senddate1
call ack1
call sta1
mov a,#0a1h
call senddate1
call ack1
setb sda02
mov r7,#8
clr a
setb sda02
rd00:
rl a
setb scl02
mov c,sda02
mov acc.0,c
clr scl02
djnz r7,rd00
ret
wt24:
push acc
setb sda02
clr scl02
call sta1
mov a,#0a0h
call senddate1
call ack1
pop acc
call senddate1
call ack1
mov a,b
call senddate1
call ack1
call stop
call delay
ret
bmqup:
db 64,172,0,128
disp:
push acc
push psw
mov psw,#00h
mov th1,#0e8h
mov tl1,#30h
mov a,p3
anl a,#0f3h
mov r7,a
xrl a,lastbmq
jz keyscan
mov a,r7
mov b,#64
div ab
mov dptr,#bmqup
movc a,@a+dptr
xrl a,lastbmq
mov lastbmq,r7
jz bmupkey
mov a,r7
jnz keyscan
mov no_m,#6
jmp scnext
bmupkey:
mov a,r7
jnz keyscan
mov no_m,#6
jmp scnext
keyscan:
mov a,p1
orl a,#0f8h
mov r7,a
orl a,#1
cjne a,#0ffh,kscnnext
mov a,khave
cjne a,#5ah,kscn5
mov khave,#0
clr kdcnt
clr klx
ajmp scnext
kscn5:
mov kdcnt,#0
mov kdcnt,#0
ajmp scnext
kscnnext:
mov a,khave
cjne a,#5ah,scn2
inc klx
cjne a,#5ah,scn2
mov klx,#0
jmp yijian
ajmp scnext
scn2:
inc kdcnt
mov a,kdcnt
cjne a,#6,scnext
mov khave,#5ah
yijian:
mov r6,#8
clr c
mov a,r7
orl a,#1
cpl a
yjloop:
rlc a
jc yjget
djnz r6,yjloop
jmp scnext
yjget:
mov dptr,#yjtab
mov a,r6
movc a,@a+dptr
mov no_m,a
scnext:
pop acc
pop psw
yjtab:
db 0,1,2,3,4,5
table1:
DB 00H,01H,03H,04H,06H,07H,09H,0AH,0CH,0DH,0FH,10H,12H,13H ,15H,16H
DB 18H,19H,1BH,1CH,1EH,1FH,21H,22H,24H,25H ;(PT6311片内积存器地址)
rem:
push acc
push psw
mov psw,#10
clr tr0
clr ex1
mov 27h,th0
mov 28h,tl0
mov th0,#00h
mov tl0,#00h
setb tr0
jnb 29h.0,reset_12
mov 4ah,27h
mov 4bh,28h
mov 4ch,#03h
mov 4dh,#9dh
nop
call sub0
nop
jc x1_009
mov 4ch,#05h
mov 4dh,#2dh
mov 4ah,27h
mov 4bh,28h
nop
call sub0
nop
jnc x1_01
clr c
nop
ljmp x1_01
clr c
nop
ljmp x1_02
x1_009:
nop
ljmp x1_005
x1_001:
nop
ajmp x1_out1
reset_12:
nop
ajmp rest_1
x1_01:
mov 4ch,#0dh
mov 4dh,#0d0h
mov 4ah,#27h
mov 4bh,#28h
nop
call sub0
nop
jc x_01t
nop
ajmp x1_005
x_01t:
nop
ajmp x_01
rest_1:
mov 4ch,#2ah
mov 4dh,#0f8h
mov 4ah,27h
mov 4bh,28h
nop
call sub0
nop
jc x1_009
mov 4ch,#2eh
mov 4dh,#0e0h
mov 4ah,27h
mov 4bh,28h
nop
call sub0
nop
jnc rest_2
mov 4ch,#03h
mov 4dh,#08h
mov 4ah,#03
mov 4bh,no_n
nop
call sub0
jc x1_005
mov 4ch,#03h
mov 4dh,#1eh
mov 4ah,#03h
mov 4ah,no_n
nop
call sub0
nop
jnc x1_005
mov no_n,#00
djnz remvol,x1_005
mov remvol,#01
mov a,#2ch
mov a,#00h
jnz rest_3
nop
ajmp x1_10
rest_3:
mov a,#2ch
xrl a,#12h
jnz x1_005
nop
ajmp x1_10
rest_2:
mov 4ch,#33h
mov 4dh,#90h
mov 4ah,27h
mov 4bh,28
nop
call sub0
nop
jc x1_005
mov 4ch,#25h
mov 4dh,#0e8h
mov 4ah,27h
mov 4bh,28h
nop
call sub0
nop
jnc x1_005
setb 29h.0
mov cs_x1,#08h
mov cs0_x1,#04h
mov r1,#2ah
nop
ajmp x1_out1
x1_005:
nop
ajmp x1s_06
x_01:
setb c
x1_02:
mov a,u0_x1
rrc a
mov u0_x1,a
djnz cs_x1,x1_out1
mov cs_x1,#08h
mov @r1,u0_x1
inc r1
djnz cs0_x1,x1_out1
mov remvol,#02h
nop
ljmp x1_10
x1_out1:
setb ex1
pop psw
pop acc
reti
reti
x1_10:
mov a,2ah
xrl a,#80h ;用户码
jnz x1s_06
mov a,#2bh
xrl a,#7fh ;用户码
jnz x1s_06
mov a,2ch
cpl a
xrl a,2dh
jnz x1s_06
mov r0,#0bh
mov dptr,#tab_remot
lookup_1:
mov a,r0
movc a,@a+dptr
xrl a,2ch
jz rem_bak0
djnz r0,lookup_1
rem_bak0:
mov no_m,r0
mov no_n,#00h
nop
sjmp x1s_06
rem_bak:
mov no_m,#00h
x1s_06:
clr 29h.0
setb ex1
pop psw
pop acc
reti
reti
sub0:
clr cy
mov a,4bh
subb a,4dh
jnc x1_s1
dec 4ah
x1_s1:
clr cy
mov a,4ah
subb a,4ch
ret
ret
itt0:
mov th0,#00h
mov tl0,#00h
reti
reti
tab_remot:
db 00h
DB 01H ;POWER
db 14h ;FUNTION
DB 18H ;MUTE
DB 16H ;DVD
DB 15H ;TUNER
DB 17H ;CD
DB 1aH ;AUX2
DB 0dH ;PHONO
DB 1fH ;AUX1
DB 58H ;VOLUP
DB 5cH ;VOLDN
mov dptr,#loop
MOV A,#00H
jmp @A+DPTR
end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -