?? okupd6464_0929.asm
字號(hào):
;///顯示測(cè)試程序,用內(nèi)部信號(hào)顯示0~9///
;**********************************************************
upd_clk bit p1.0 ;upd時(shí)鐘線(xiàn)引腳
upd_ncs bit p1.1 ;upd片選線(xiàn)引腳
upd_io bit p1.2 ;upd數(shù)據(jù)線(xiàn)引腳
clrpower bit p1.3 ;power control
updown bit p1.5 ;4811
clk bit p1.4 ;4811
VOLADDKEY BIT P1.6 ;KEY VOL ADD
VOLMIUSKEY BIT P1.7 ;KEY VOL MIUS
;---------------------------------------------------
status equ 20h ; status.0 =0 miuse ,status.0 =1 tv,
; status.2 =0 send power code ,status.2 =1 no send power code ,
; status.1=0 lose key flag, status.1=1 no lose key flag
; status.3=0 display dismain no banduan, status.3=1 display dismain banduan
searchstaus equ 21h ;searchstaus.0=1 搜索歌名,searchstaus.0=0 沒(méi)搜索歌名,
;searchstaus.1=1 is select, searchstaus.1=0 no select,
;ok ;searchstaus.2 =0 no search status ,searchstaus.2 =1 search status ,
;ok ;searchstaus.3 =0 no select status ,searchstaus.3 =1 select status
;searchstaus.4 =0 no searchselect status ,searchstaus.4 =1 searchselect status
;ok ;searchstaus.5 =0 no exit
; searchstaus.5 =1 exit search status
KEYSTATUS EQU 22H
;23,24,25,26 irdata
row equ 30h
nbx equ 31h
nby equ 32h
temp equ 33h
temp1 equ 34h
disdata equ 35h
hour equ 36h
mimute equ 37h
second equ 38h
senddata equ 39h
countername equ 3ah
move_time equ 3bh
datatemp equ 3eh
count equ 3fh
losetimes equ 40h
minute equ 42h
checksum equ 44h
tracknb equ 45h
lrcurson equ 46h
udcurson equ 47h
titlechar equ 48h
titlechar1 equ 49h
searchcount equ 4ah
searchcode equ 4bh ; 4bh-57h
searchtime equ 58h
flashtime equ 59h
searchsx equ 5ah
sendpowtime equ 5bh
inexmodule equ 5ch
volcount equ 5dh
voldiscount equ 5eh
LISTCOUNT EQU 5FH
LISTCOUNT1 EQU 60H
LISTCOUNT2 EQU 61H
totaltime equ 62h
totaltime1 equ 63h
totaltime2 equ 64h
totaltime3 equ 65h
jinxtime equ 66h
jinxtime1 equ 67h
jinxtime2 equ 68h
jindu equ 69h
jinxinjishu equ 6ah
plpastuse equ 6bh
ricount equ 6ch
ricount1 equ 6dh
ritotal equ 6eh
duizao equ 6fh
;**********************************************************
ORG 00h
aJMP resert
org 03h
ljmp int_0
org 50h
resert:
MOV SP, #0deH ; sp set cfh
call clrram
call iniuart
setb clrpower
call iniuart
call delay80ms
mov r7,#20
rset4811:
call volm
djnz r7,rset4811
call ipodini
call vola
call vola
call vola
mov volcount,#3
mov inexmodule,#01000001b
call ini6464
SETB IT0 ; 設(shè)定INT0的觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
SETB EX0 ; 打開(kāi)INT0中斷請(qǐng)求
mov p2,#11100111b
SETB EA ; 打開(kāi)CPU總中斷請(qǐng)求
;--------------------------------------------------------------------------
main:
SETB IT0 ; 設(shè)定INT0的觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
SETB EX0 ; 打開(kāi)INT0中斷請(qǐng)求
mov p2,#11100111b
SETB EA ; 打開(kāi)CPU總中斷請(qǐng)求
SETB VOLADDKEY
SETB VOLMIUSKEY
JNB VOLADDKEY,TOVOLADD
JNB VOLMIUSKEY,TOVOLMIUS
jb status.0,loop
jmp main
;----------------------------------------
TOVOLMIUS:
CALL DELAY
JNB VOLMIUSKEY,TOVOLMIUS_1
JMP MAIN
TOVOLMIUS_1:
CALL DELAY
JNB VOLMIUSKEY,TOVOLMIUS_2
JMP MAIN
TOVOLMIUS_2:
JMP KEYVOLMIUS
;-----------------------------------
TOVOLADD:
CALL DELAY
JNB VOLADDKEY,TOVOLADD_1
JMP MAIN
TOVOLADD_1:
CALL DELAY
JNB VOLADDKEY,TOVOLADD_2
JMP MAIN
TOVOLADD_2:
JMP KEYVOLADD
;---------------------------
loop:
; jb status.2,loop_1
loop_1:
jnb status.0,main
jb searchstaus.2,loop
call displaymain
SETB IT0 ; 設(shè)定INT0的觸發(fā)方式為脈沖負(fù)邊沿觸發(fā)
SETB EX0 ; 打開(kāi)INT0中斷請(qǐng)求
mov p2,#11100111b
SETB EA ; 打開(kāi)CPU總中斷請(qǐng)求
JNB VOLADDKEY,STOVOLADD
JNB VOLMIUSKEY,STOVOLMIUS
call delay3s
jmp loop
;--------------------------------------
STOVOLMIUS:
CALL DELAY
JNB VOLMIUSKEY,STOVOLMIUS_1
JMP loop
STOVOLMIUS_1:
CALL DELAY
JNB VOLMIUSKEY,STOVOLMIUS_2
JMP loop
STOVOLMIUS_2:
JMP KEYVOLMIUS
;-----------------------------------
STOVOLADD:
CALL DELAY
JNB VOLADDKEY,STOVOLADD_1
JMP loop
STOVOLADD_1:
CALL DELAY
JNB VOLADDKEY,STOVOLADD_2
JMP loop
STOVOLADD_2:
JMP KEYVOLADD
;**********************************************************
keydisplaypause:
call delay80ms
call delay80ms
mov dptr,#exttab15 ; get play sdstaus display hour
mov duizao,#1dh
call readwriteipod
mov r0,#8eh
mov a,@r0
cjne a,#0,keydisplaypause_1
mov dptr,#dplaypausetab
jmp keydisplaypause_3
keydisplaypause_1:
cjne a,#1,keydisplaypause_2
mov dptr,#dplaypausetab1
jmp keydisplaypause_3
keydisplaypause_2:
mov dptr,#dplaypausetab2
keydisplaypause_3:
mov nbx,#0
mov nby,#0
mov r7,#0
keydisplaypause_30:
mov a,r7
movc a,@a+dptr
cjne a,#88h,keydisplaypause_4
jmp keydisplaypauseend
keydisplaypause_4:
mov disdata,a
inc r7
LCALL displaychar
inc nbx
jmp keydisplaypause_30
keydisplaypauseend:
ret
;**********************************************************
zzdisplaymain:
jmp displaymain_1
;===================================display total timemov
displaymain:
call delay80ms
call delay80ms
clr ea
mov dptr,#exttab15 ; get play sdstaus display hour
mov duizao,#1dh
call readwriteipod
mov r0,#86h
mov a,@r0
cjne a,totaltime,zzdisplaymain
inc r0
mov a,@r0
cjne a,totaltime1,zzdisplaymain
inc r0
mov a,@r0
cjne a,totaltime2,zzdisplaymain
inc r0
mov a,@r0
cjne a,totaltime3,zzdisplaymain
mov r0,#8ah
mov a,@r0
mov 08h,a
inc r0
mov a,@r0
mov 09h,a
inc r0
mov a,@r0
mov 0ah,a
inc r0
mov a,@r0
mov 0bh,a
mov 0ch,#0
mov 0dh,jinxtime
mov 0eh,jinxtime1
mov 0fh,jinxtime2
call CHU40
mov jindu,r7 ;
jnb status.3,zzdisplaymain ; key no bi jiao
mov nbx,#0
mov nby,#11
mov disdata,#7ch
lcall displaychar
mov jinxinjishu,#17
mov a,jindu
cjne a,#0,displayjinxi
displaykg:
inc nbx
mov disdata,#10h
lcall displaychar
djnz jinxinjishu,displaykg
mov nbx,#17
mov disdata,#7dh
lcall displaychar
ret
displayjinxi:
mov a,jinxinjishu
subb a,jindu
mov jinxinjishu,a
displayjinxi_1:
mov disdata,#1fh
inc nbx
lcall displaychar
djnz jindu,displayjinxi_1
displayjinxi_2:
mov disdata,#10h
inc nbx
lcall displaychar
djnz jinxinjishu,displayjinxi_2
mov nbx,#17
mov disdata,#7dh
lcall displaychar
ret
;--------------------------------------------
displaymain_1:
call clrscreen
mov r0,#8eh
mov a,@r0
mov plpastuse,a ; save play/pause stause
mov r0,#86h
mov a,@r0
mov 08h,a
mov totaltime,a
inc r0
mov a,@r0
mov 09h,a
mov totaltime1,a
inc r0
mov a,@r0
mov 0ah,a
mov totaltime2,a
inc r0
mov a,@r0
mov 0bh,a
mov totaltime3,a
mov 0ch,#0h
mov 0dh,#0h
mov 0eh,#0h
mov 0fh,#17 ; ji shuang mei ge shijian
call CHU40
mov jinxtime,r5
mov jinxtime1,r6
mov jinxtime2,r7
;----------------------------
mov r0,#86h
mov a,@r0
mov 08h,a
inc r0
mov a,@r0
mov 09h,a
inc r0
mov a,@r0
mov 0ah,a
inc r0
mov a,@r0
mov 0bh,a
mov 0ch,#0h
mov 0dh,#36h
mov 0eh,#0eeh
mov 0fh,#80h
call CHU40
mov hour,r7 ; hour
mov 08h,10h
mov 09h,11h
mov 0ah,12h
mov 0bh,13h
mov 0ch,#0
mov 0dh,#0
mov 0eh,#0eah
mov 0fh,#60h
call CHU40
mov minute,r7 ; minute
mov 08h,10h
mov 09h,11h
mov 0ah,12h
mov 0bh,13h
mov 0ch,#0
mov 0dh,#0
mov 0eh,#03h
mov 0fh,#0e8h
call CHU40
mov second,r7 ;second
mov r6,#0
mov r7,minute
call HB2 ; hix to bcd
mov minute,r5
mov r6,#0
mov r7,second
call HB2 ; hix to bcd
mov second,r5
;--------------------------------------display play/paust playpausetab
mov a,plpastuse
cjne a,#0,displayplaypause
mov dptr,#dplaypausetab
jmp displayplaypauseend
displayplaypause:
cjne a,#1,displayplaypause_1
mov dptr,#dplaypausetab1
jmp displayplaypauseend
displayplaypause_1:
mov dptr,#dplaypausetab2
displayplaypauseend:
mov nby,#0
mov nbx,#0
mov r7,#0
displayplaypauseend_0:
mov a,r7
movc a,@a+dptr
cjne a,#88h,displayplaypauseend_1
jmp displayplaypauseend_12
displayplaypauseend_1:
mov disdata,a
inc r7
LCALL displaychar
inc nbx
jmp displayplaypauseend_0
displayplaypauseend_12:
;-------------------------display hour
mov nbx,#0
mov nby,#1
mov disdata,hour
LCALL displaychar
;--------------------------------display dot
mov nbx,#1
mov nby,#1
mov disdata,#0ah
LCALL displaychar
;---------------------------------display minute ten
mov nbx,#2
mov nby,#1
mov a,minute
swap a
anl a,#0fh
mov disdata,a
LCALL displaychar
;---------------------------------display minute one
mov nbx,#3
mov nby,#1
mov a,minute
anl a,#0fh
mov disdata,a
LCALL displaychar
;----------------------------------------------;display dot
mov nbx,#4
mov nby,#1
mov disdata,#0ah
LCALL displaychar
;---------------------------------display second ten
mov nbx,#5
mov nby,#1
mov a,second
swap a
anl a,#0fh
mov disdata,a
LCALL displaychar
;---------------------------------display second one
mov nbx,#6
mov nby,#1
mov a,second
anl a,#0fh
mov disdata,a
LCALL displaychar
;;=================================================; display repeat icon
mov nbx,#12
mov nby,#1
mov disdata,#22h ;display "r"
LCALL displaychar
mov nbx,#13
mov nby,#1
mov disdata,#15h ;display "e"
LCALL displaychar
mov nbx,#14
mov nby,#1
mov disdata,#0ah ;display ":"
LCALL displaychar
mov nbx,#15
mov nby,#1
mov disdata,#10h ;display " "
LCALL displaychar
mov nbx,#16
mov nby,#1
mov dptr,#exttab11
mov duizao,#30h
call readwriteipod
mov r0,#86h ; 86h
mov a,@r0
cjne a,#00,repeat
mov disdata,#1eh ;no repeat
jmp repeataddr
repeat:
cjne a,#01h,repeat_1
mov disdata,#00h ; repeat one
jmp repeataddr
repeat_1:
mov disdata,#0x11 ; repeat all
repeataddr:
LCALL displaychar
;==================================; display shuffle icon
mov nbx,#12
mov nby,#2
mov disdata,#23h ; display "s"
LCALL displaychar
mov nbx,#13
mov nby,#2
mov disdata,#18h ; display "f"
LCALL displaychar
mov nbx,#14
mov nby,#2
mov disdata,#0ah ; display ":"
LCALL displaychar
mov nbx,#15
mov nby,#2
mov disdata,#10h ; display " "
LCALL displaychar
mov nbx,#16
mov nby,#2
mov dptr,#exttab24
mov duizao,#2dh
call readwriteipod
mov r0,#86h
mov a,@r0
cjne a,#00,shuffle
mov disdata,#1eh ;no shuffle
jmp shuffleddr
shuffle:
cjne a,#01h,shuffle_1
mov disdata,#0x00 ; repeat one
jmp shuffleddr
shuffle_1:
mov disdata,#0x11 ; repeat all
shuffleddr:
LCALL displaychar
;-----------------------------------------
call delay80ms
mov dptr,#exttab16 ; get currentplaytrackindex
mov duizao,#1fh
call readwriteipod
mov r0,#89h
mov a,@r0
mov senddata,a
mov tracknb,A
mov dptr,#exttab17
mov duizao,#21h
call readwritebd
mov r0,#82h
mov a,@r0
subb a,#4
mov countername,a
mov r0,#86h
mov nbx,#0
mov nby,#5
displaytittle:
mov a,@r0
cjne a,#20h,displaytittle_kg
mov a,#10h
jmp displaytittle_3
displaytittle_kg:
cjne a,#4fh,displaytittle_o
mov a,#5fh
jmp displaytittle_3
displaytittle_o:
cjne a,#61h,displaytittle_1
displaytittle_1:
jc displaytittle_2 ;a xiaoto displaytittle_2
clr c
subb a,#10h
jmp displaytittle_3
displaytittle_2:
clr c
subb a,#30h
displaytittle_3:
mov disdata,a
LCALL displaychar
inc r0
inc nbx
djnz countername,displaytittle
;-------------------------------------------------------display play track artist name
mov dptr,#exttab27
mov duizao,#23h
call readwritebd
mov r0,#82h
mov a,@r0
subb a,#4
mov countername,a
mov r0,#86h
mov nbx,#0
mov nby,#6
displaytittleartist:
mov a,@r0
cjne a,#20h,displaytittleartist_kg
mov a,#10h
jmp displaytittleartist_3
displaytittleartist_kg:
cjne a,#4fh,displaytittleartist_o
mov a,#5fh
jmp displaytittleartist_3
displaytittleartist_o:
cjne a,#61h,displaytittleartist_1
displaytittleartist_1:
jc displaytittleartist_2 ;a xiaoto displaytittleartist_2
clr c
subb a,#10h
jmp displaytittleartist_3
displaytittleartist_2:
clr c
subb a,#30h
displaytittleartist_3:
mov disdata,a
LCALL displaychar
inc r0
inc nbx
djnz countername,displaytittleartist
;-------------------------------------------------------display play ablum artist name
mov dptr,#exttab28
mov duizao,#25h
call readwritebd
mov r0,#82h
mov a,@r0
subb a,#4
mov countername,a
mov r0,#86h
mov nbx,#0
mov nby,#7
displaytittleablum:
mov a,@r0
cjne a,#20h,displaytittleablum_kg
mov a,#10h
jmp displaytittleablum_3
displaytittleablum_kg:
cjne a,#4fh,displaytittleablum_o
mov a,#5fh
jmp displaytittleablum_3
displaytittleablum_o:
cjne a,#61h,displaytittleablum_1
displaytittleablum_1:
jc displaytittleablum_2 ;a xiaoto displaytittleartist_2
clr c
subb a,#10h
jmp displaytittleablum_3
displaytittleablum_2:
clr c
subb a,#30h
displaytittleablum_3:
mov disdata,a
LCALL displaychar
inc r0
inc nbx
djnz countername,displaytittleablum
;-----------------------------------------------------DISPLAY LIST COUNT
MOV R6,#0
MOV R7,tracknb
CALL HB2
;MOV LISTCOUNT,R3
MOV LISTCOUNT1,R4
MOV LISTCOUNT2,R5
MOV A,LISTCOUNT
;-----------------------------------
mov a,LISTCOUNT1
anl a,#0fh
mov disdata,a
mov nby,#2
mov nbx,#0
LCALL displaychar
;-----------------------------------
mov a,LISTCOUNT2
swap a
anl a,#0fh
mov disdata,a
mov nby,#2
mov nbx,#1
LCALL displaychar
;-----------------------------------
mov a,LISTCOUNT2
anl a,#0fh
mov disdata,a
mov nby,#2
mov nbx,#2
LCALL displaychar
;--------------------------------------DISPLAY "/"
mov disdata,#6DH
mov nby,#2
mov nbx,#3
LCALL displaychar
;--------------------------------------------------------
mov dptr,#exttab25 ; get numplaying tyracks
mov duizao,#36h
call readwriteipod
mov r0,#89h
mov a,@r0
MOV R7,A
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -