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

📄 mod2.asm

📁 一个初学者经常要用到的学习的程序
💻 ASM
字号:
;-----------------------------------------
	;	;TIME 99S
;-----------------------------------------
	Disp_Num	EQU	 22H		;	显示数
;-----------------------------------------

	ORG		0000H
	LJMP	Start
	ORG		000BH
	LJMP 	Time0
	ORG		0030H
;-----------------------------------------
Start:
	MOV		SP,#60H
	MOV		TMOD,#01H	;	T0定时模式1 为16位
	MOV		TH0,#0bH	;	定时时间为62.5MS
	MOV		TL0,#0dbH
	MOV		R7,#16		;	62.5ms*16 = 1000ms
	SETB	ET0			;	允许T0中断
    SETB	EA			;	允许中断
	MOV		Disp_Num,#0ffh ;初始

;-----------------------------------------
Main:
	JB		P3.6,Disp	;P3.6有否按下 有则转到disp
    SETB	TR0			;	启动记数
Disp:
	MOV		A,Disp_Num ;送初值
	CALL	Display    ;调用显示
	JMP		Main       ;返主程序

;-----------------------------------------
Display:
    MOV		dptr,#Char_Tab  ;送表入dptr
	MOV		B,#16     ;送数给B
	DIV		AB

	MOVC	A,@A+DPTR
	MOV		P0,A
	CLR		P2.6		;	亮第一个
	CALL	DELAY		;	延时
	SETB	P2.6		;	灭第一个

	MOV		A,B

	MOVC	A,@A+DPTR
	MOV		P0,A
	CLR		P2.7		;	亮第二个
	CALL	DELAY		;	延时
	SETB	P2.7		;	灭第二个

	RET

;-----------------------------------------
DELAY:
	MOV 	R6,#0
	DJNZ	R6,$
	RET

;-----------------------------------------
Time0:
	PUSH	ACC         ;入堆栈保存
	PUSH	B
	PUSH	PSW

	MOV		TH0,#0BH	;	定时时间为62.5MS
	MOV		TL0,#0DBH
	DJNZ	R7,EXIT		;	<1S EXIT
	MOV		R7,#16		;	62.5ms*16 = 1000ms
	DEC		Disp_Num
EXIT:
	POP		PSW         ;出堆栈
	POP		B
	POP		ACC
	RETI

;-----------------------------------------
Char_Tab:
	;	76543210
	;	fahgdecb
	DB	11001111B	;	0
	DB	00000011B	;	1
	DB	01011101B	;	2
	DB	01011011B	;	3
	DB	10010011B	;	4
	DB	11011010B	;	5
	DB	11011110B	;	6
	DB	01000011B	;	7
	DB	11011111B	;	8
	DB	11011011B	;	9
	DB	11010111B	;	A
	DB	10011110B	;	b
	DB	11001100B	;	C
	DB	00011111B	;	d
	DB	11011100B	;	E
	DB	11010100B	;	F

	END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -