⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 zywd.asm

📁 红绿采灯动态演示
💻 ASM
字号:
AD_mem	 data	30h		;定义字节变量
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		;向显存写入指定数据的子程序
	mov r0,#dispmem	;由 DPTR 参数指定数据地址初值
	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		;将显存数据送入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 + -