?? zywd.asm
字號:
AD_mem data 30h ;定義字節(jié)變量
AD_memh data 31h ;
valuelow data 32h ;
valuehigh data 33h ;
dispmem data 40h
con_0809 equ 09ff3h ;
con_8279 equ 05fffh ;
dat_8279 equ 05effh
ORG 0000H
SJMP START
ORG 0030H
START: MOV SP,#80H
MOV IE,#00H
ACALL INIT
MOV DPTR,#AD0809
ACALL SETDISP
ACALL DISPLAY
ACALL DELAY
MAIN: ACALL AD_0809
ACALL DISPLAY
ACALL DELAY
SJMP MAIN
;**********************INITIAL**************************
INIT: MOV DPTR,#CON_8279
MOV A,#00H
MOVX @DPTR,A
MOV A,#00110100B
MOVX @DPTR,A
MOV A,#11011100B
MOVX @DPTR,A
WAIT: MOVX A,@DPTR
JB ACC.7,WAIT
CLRRAM: MOV R0,#30H
MOV R7,#20H
MOV A,#00H
CLRRAM1:MOV @R0,A
DJNZ R7,CLRRAM1
RET
;**********************AD_SATRAT***************************
AD_START:MOV DPTR,#CON_0809
MOVX @DPTR,A
ADT: JB P1.3,ADT
NOP
MOVX A,@DPTR
MOV B,A
MOV A,#225
CLR C
SUBB A,B
CLR C
MOV AD_MEM,#0
MOV AD_MEM+1,#0
MOV VALUELOW,#1
MOV VALUEHIGH,#0
MOV R5,#08
NEXTAD: RRC A
PUSH ACC
JNC NEXTADD
MOV A,VALUELOW
ADD A,AD_MEM
DA A
MOV AD_MEM,A
MOV A,VALUEHIGH
ADDC A,AD_MEM+1
DA A
MOV AD_MEM+1,A
NEXTADD:MOV A,VALUELOW
ADD A,VALUELOW
DA A
MOV VALUELOW,A
MOV A,VALUEHIGH
ADDC A,VALUEHIGH
DA A
MOV VALUEHIGH,A
POP ACC
DJNZ R5,NEXTAD
RET
;*****************************AD_0809**************************
AD_0809:ACALL AD_START
MOV A,AD_MEM
ANL A,#0FH
MOV DPTR,#DISPTABLE
MOVC A,@A+DPTR
MOV DISPMEM+0,A
MOV A,AD_MEM
ANL A,#0F0H
SWAP A
MOVC A,@A+DPTR
MOV DISPMEM+1,A
MOV A,AD_MEM+1
ANL A,#0FH
MOVC A,@A+DPTR
MOV DISPMEM+2,A
RET
;*****************************SETDISP*****************************
setdisp:push acc ;向顯存寫入指定數(shù)據(jù)的子程序
mov r0,#dispmem ;由 DPTR 參數(shù)指定數(shù)據(jù)地址初值
mov b,#0
mov r7,#6h
nextbit:mov a,b
movc a,@a+dptr
mov @r0,a
inc r0
inc b
djnz r7,nextbit
pop acc
ret
;************************* display *************************
display:mov r4,#6h ;將顯存數(shù)據(jù)送入8279進行顯示的子程序
mov r1,#dispmem
mov dptr,#con_8279
mov a,#10010010b ;指定寫入8279顯示RAM的地址,
movx @dptr,a ; 8279顯示RAM地址自動加1
disprel:mov a,@r1
mov dptr,#dat_8279
movx @dptr,a
INC r1
djnz r4,disprel
ret
;*************************DELAY*********************
DELAY: MOV R7,#7FH
DELAY1: MOV R6,#0FFH
DJNZ R6,$
DJNZ R7,DELAY1
RET
;*****************************TABLE********************************
AD0809: DB 17h,17h,17h,0bfh,0a1h,088h;
;0C0H,80H,0C0H,98H,0BFH,0FFH,0FFH,0FFH
DISPTABLE: DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,98H
END
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -