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

📄 1_4.asm

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

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

TMR0			EQU     01H			;定义定时器/计数器0寄存器地址
PCL				EQU  	02H			;定义程序计数器低字节寄存器地址	
POTION_REG 		EQU		81H			;定义选项寄存器地址

INTCON			EQU		0BH
DATA1			EQU		6			;定义TMR0寄存器初始置(250=256-6)
COUNT			EQU		20H			;存放延时次数
; *****************************************************
		ORG		00H				;
		GOTO	MAIN			;
; ***********************主程序开始***********************
MAIN
	NOP								;设置一条ICD必须的空操作
; ***********************初始化***********************
	BSF			STATUS,RP0			;转到体1
	BCF			STATUS,RP1			;

	MOVLW 		07H					;设置选项分频寄存器内容
	MOVWF		POTION_REG			;分频值设为“1:256”

	MOVLW		00H					;将00H送到W
	MOVWF		TRISD				;设置端口D为输出
	BCF			STATUS,RP0			;转到体0
	BCF			STATUS,RP1			; 
; ***********************初始化结束***********************
START	
MOVLW		0FFH						;将FFH送到W
	MOVWF		PORTD					;点亮端口D上所有的灯

	CALL		DELAY					;延时1280ms
	MOVLW		0FH						;将0FH送到W
	MOVWF		PORTD					;只点亮端口D低4位上所有的灯
	CALL		DELAY					;延时1280ms

	MOVLW		0F0H						;将F0H送到W
	MOVWF		PORTD					;只点亮端口D高4位上所有的灯
	CALL		DELAY					;延时1280ms

	MOVLW		0FH						;将0FH送到W
	MOVWF		PORTD					;灭端口D上所有的灯
	CALL		DELAY					;延时1280ms

	GOTO		START					;循环
; ***********************延时子程序***********************	
DELAY
	MOVLW		14H						;设置循环延时64ms的次数为20次
	MOVWF 		COUNT						;
LOOP1
	BCF 		INTCON,2					;清除TMR0溢出标志位
	MOVLW		DATA1					;TMRO赋初值
	MOVWF		TMR0					;启动定时计数
LOOP
	BTFSS		INTCON,2					;检测TMR0溢出标志位
	GOTO		LOOP					;没有溢出,继续检测
	DECFSZ		COUNT					;判断计数次数是否满20次
;如果没到减1继续,否则返回主程序
	GOTO		LOOP1					;计数没结束,继续

	RETURN								;返回主程序
; ***********************延时子程序结束***********************	
; ***********************程序结束***********************		
END	

⌨️ 快捷键说明

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