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

📄 1_3.asm

📁 在程序中调用软件延时程序的点灯程序
💻 ASM
字号:
; **********************************************
;文件名"1_3.ASM"
;作者:求是科技
;功能:在程序中调用软件延时程序的点灯程序
; **********************************************
STATUS		EQU		03H			;定义状态寄存器地址
PORTD		EQU		08H			;定义端口D的数据寄存器地址
TRISD		EQU		88H			;定义端口D的方向寄存器

RP1			EQU		06H			;定义状态寄存器中的页选位RP1
RP0			EQU		05H			;定义状态寄存器中的页选位RP0

DATA1		EQU		20H			;定义外循环变量
DATA2		EQU		21H			;定义内循环变量
TEMP		EQU		22H			;定义临时变量存储端口D的输入
COUNT1		EQU		0DH			;定义存储外循环次数的变量
COUNT2		EQU		0FFH		;定义存储内循环次数的变量
; ***********************主程序开始***********************
		ORG		00H			;
		GOTO		MAIN		;
; ***********************主程序开始***********************
MAIN
	BSF			STATUS,RP0		;
	BCF			STATUS,RP1		;选择BANK1

	MOVLW		00H				;将00H送到W
	MOVWF		TRISD			;设置PORTD为输出

	BCF			STATUS,RP0		;
	BCF			STATUS,RP1		;转到体BANK0  
	START	
	MOVLW		0FFH			;将FFH送到W
	MOVWF		PORTD			;点亮PORTD上所有的灯
	CALL		DELAY			;延时1s

	MOVLW		0FH				;将0FH送到W
	MOVWF		PORTD			;只点亮PORTD低四位上所有的灯
	CALL		DELAY			;延时1s
	MOVLW		0F0H			;将0F0H送到W
	MOVWF		PORTD			;只点亮PORTD高四位上所有的灯
	CALL		DELAY			;延时1s

	MOVLW 	00H				;将00H送到W
	MOVW F	PORTD			;灭PORTD上所有的灯
	CALL		DELAY			;延时1s

		GOTO		START			;循环
; ***********************延时程序开始***********************	
DELAY
	MOVLW		COUNT1			;设置外部循环的次数
		MOVWF		DATA1			;
LOOP1
	MOVLW		COUNT2			;设置内部循环的次数
		MOVWF		DATA2			;
LOOP2
	DECFSZ		DATA2,1			;内部循环变量自减1,为0则跳转
	GOTO		LOOP2			;
	DECFSZ		DATA1,1			;外部循环变量自减1,为0则跳转
	GOTO		LOOP1			;

		RETURN					;返回主程序
; **********************************************
	END	

⌨️ 快捷键说明

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