?? tab.asm
字號(hào):
;****************************************************************
; VIS_PLAY ; 掃描顯示
;****************************************************************
VIS_PLAY: MOV R7,#16 ; R7 掃描行數(shù)
;
;
VISPLAY0: CLR C
CLR LEDRCK
SETB LEDNOE
;
;
;
MOV R1,#8 ; 8*8 共64位
MOV R2,#00H ; 計(jì)數(shù)
VISPLAY1: JNB biDYNA,VISPLAY14
; 動(dòng)態(tài)顯示
CLR C
MOV DPTR,#D_VISDYNA
MOV A,yDYNA
RL A
ADD A,DPH
MOV DPH,A
SJMP VISPLAY15
;
;
VISPLAY14:MOV DPTR,#D_VISBUF
JNB biFRMFS,VISPLAY15
JNB biFRMBK,VISPLAY15
MOV DPTR,#D_VISBUF2
;
VISPLAY15:MOV A,R7
DEC A
SWAP A
ADD A,R2
MOV DPL,A
MOVX A,@DPTR
MOV R4,A ; r4=上16行
;
MOV R6,#08H
CLR C
CLR EA
;
VISPLAY2: MOV A,R4
RLC A
MOV R4,A
CLR LEDDAT
JC VISPLAY3
SETB LEDDAT
;
VISPLAY3: NOP
CLR LEDCLK
NOP
SETB LEDCLK
;
DJNZ R6,VISPLAY2
;
SETB EA
;
INC R2
DJNZ R1,VISPLAY1
;
; 一行送畢 送掃描
;
MOV A,R7
DEC A
MOV DPTR,#TABADDR
MOVC A,@A+DPTR
SWAP A
MOV DPTR,#D_VISLIN
MOVX @DPTR,A
CLR LEDA2 ; 地址A2
JNB ACC.6,VISPLAY31
SETB LEDA2
;
VISPLAY31:CLR LEDLIN
JB ACC.7,VISPLAY32
SETB LEDLIN ; 置 上8行還是下八行
VISPLAY32:CLR LEDNOE ; 置138選通 (燈亮)
NOP
SETB LEDRCK
;
VISPLAY4: CLR C
MOV R1,#01
VISPLAY5: MOV R2,#100
DJNZ R2,$
DJNZ R1,VISPLAY5
;
DJNZ R7,VISPLAY0
CLR C
RET
;
TABADDR:
;DB 008H
;DB 00AH
;DB 009H
;DB 00BH
;DB 00CH
;DB 00EH
;DB 00DH
;DB 00FH
;DB 000H
;DB 002H
;DB 001H
;DB 003H
;DB 004H
;DB 006H
;DB 005H
;DB 007H
;
DB 008H
DB 00cH
DB 00aH
DB 00eH
DB 009H
DB 00dH
DB 00bH
DB 00FH
DB 000H
DB 004H
DB 002H
DB 006H
DB 001H
DB 005H
DB 003H
DB 007H
;
;
;
;****************************************************************
; VIS_VAL ; 顯示分值
; yVALH,yVISL
;****************************************************************
VIS_VAL: LCALL CLR_VIS
;
CLR C
MOV A,yVALH
JZ VIS_VAL02
ANL A,#0F0H
JNZ VIS_VAL4
SJMP VIS_VAL3
;
VIS_VAL02: MOV A,yVALL
ANL A,#0F0H
JZ VIS_VAL03
SJMP VIS_VAL2
VIS_VAL03: SJMP VIS_VAL1
;
VIS_VAL4: CLR C
MOV A,yVALH
ANL A,#0F0H
SWAP A
MOV yVISX,#1
MOV yVISY,#0
LCALL PUT_ASC32
;
MOV A,yVALH
ANL A,#0FH
MOV yVISX,#3
MOV yVISY,#0
LCALL PUT_ASC32
;
MOV A,yVALL
ANL A,#0F0H
SWAP A
MOV yVISX,#5
MOV yVISY,#0
LCALL PUT_ASC32
;
MOV A,yVALL
ANL A,#0FH
MOV yVISX,#7
MOV yVISY,#0
LCALL PUT_ASC32
;
RET
;
;
VIS_VAL3: CLR C
;
MOV A,yVALH
ANL A,#0FH
MOV yVISX,#2
MOV yVISY,#0
LCALL PUT_ASC32
;
MOV A,yVALL
ANL A,#0F0H
SWAP A
MOV yVISX,#4
MOV yVISY,#0
LCALL PUT_ASC32
;
MOV A,yVALL
ANL A,#0FH
MOV yVISX,#6
MOV yVISY,#0
LCALL PUT_ASC32
;
RET
;
;
VIS_VAL2: CLR C
;
MOV A,yVALL
ANL A,#0F0H
SWAP A
MOV yVISX,#3
MOV yVISY,#0
LCALL PUT_ASC32
;
MOV A,yVALL
ANL A,#0FH
MOV yVISX,#5
MOV yVISY,#0
LCALL PUT_ASC32
;
RET
;
VIS_VAL1: CLR C
;
MOV A,yVALL
ANL A,#0FH
MOV yVISX,#4
MOV yVISY,#0
LCALL PUT_ASC32
;
RET
;
;
;****************************************************************
; PUT_ASC16 ; 放置->16點(diǎn)陣ASC字符
; 入口參數(shù): yVISX,yVISY 大列數(shù) 行數(shù)
; A 字符代碼
; 使用寄存器: R1,R2,R6,R7
;****************************************************************
PUT_ASC16: PUSH A
CLR C
MOV DPTR,#D_VISBUF
MOV A,yVISY
ANL A,#01FH
MOV B,#10H
MUL AB
ADD A,DPL
ADD A,yVISX
MOV R2,A
MOV A,B
ADDC A,DPH
MOV R1,A ; R1,R2 存放緩沖區(qū)地址
;
POP A
CLR C
MOV DPTR,#TABASC16
MOV B,#16
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A ; 字符存放首址
;
MOV R7,#16
MOV R6,#00H
;
PUT_ASC161:MOV A,R6
MOVC A,@A+DPTR
PUSH DPH
PUSH DPL
MOV DPL,R2
MOV DPH,R1
MOVX @DPTR,A
CLR C
MOV A,R2
ADD A,#10H
MOV R2,A
CLR A
ADDC A,R1
MOV R1,A
POP DPL
POP DPH
INC R6
DJNZ R7,PUT_ASC161
;
RET
;
;
;****************************************************************
; CLR_ASC16 ; QING
; 入口參數(shù): yVISX,yVISY 大列數(shù) 行數(shù)
; 使用寄存器: R1,R2,R6,R7
;****************************************************************
CLR_ASC16: MOV A,yVISY
ANL A,#01FH
MOV B,#10H
MUL AB
ADD A,DPL
ADD A,yVISX
MOV R2,A
MOV A,B
ADDC A,DPH
MOV R1,A ; R1,R2 存放緩沖區(qū)地址
;
;
MOV R7,#16
MOV R6,#00H
MOV A,#00H
;
CLR_ASC161:CLR A
MOV DPH,R1
MOV DPL,R2
MOVX @DPTR,A
CLR C
MOV A,R2
ADD A,#10H
MOV R2,A
CLR A
ADDC A,R1
MOV R1,A
DJNZ R7,CLR_ASC161
;
RET
;
;
;****************************************************************
; PUT_HZ16 ; 放置->16點(diǎn)陣漢字
; 入口參數(shù): yVISX,yVISY 大列數(shù) 行數(shù)
; A 字符代碼
;****************************************************************
PUT_HZ16: PUSH A
CLR C
MOV DPTR,#D_VISBUF
MOV A,yVISY
ANL A,#01FH
MOV B,#10H
MUL AB
ADD A,DPL
ADD A,yVISX
MOV R2,A
MOV A,B
ADDC A,DPH
MOV R1,A ; R1,R2 存放緩沖區(qū)地址
;
POP A
CLR C
MOV DPTR,#TABHZ
MOV B,#32
MUL AB
ADD A,DPL
MOV DPL,A
MOV A,B
ADDC A,DPH
MOV DPH,A ; 字符存放首址
;
MOV R7,#16
MOV R6,#00H
;
PUT_HZ161: MOV A,R6
ADD A,#10H
MOVC A,@A+DPTR
MOV B,A ; 右半字模->B
MOV A,R6
MOVC A,@A+DPTR
PUSH DPH
PUSH DPL
MOV DPL,R2
MOV DPH,R1
MOVX @DPTR,A
INC DPTR
MOV A,B
MOVX @DPTR,A
CLR C
MOV A,R2
ADD A,#10H
MOV R2,A
CLR A
ADDC A,R1
MOV R1,A
POP DPL
POP DPH
INC R6
DJNZ R7,PUT_HZ161
;
RET
;
;
;****************************************************************
; FLASH_VIS ; 閃爍顯示
; 入口地址: 51H 閃爍標(biāo)志
; 入口地址: 50H 顯示個(gè)數(shù)
;****************************************************************
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -