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

📄 int_t0_led.asm

📁 周立功开发板源代码,里面包含了各种关于周立功dp51开发板的源代码
💻 ASM
字号:
;******************************Copyright (c)**********************************
;**                广州周立功单片机发展有限公司研究所
;**                       http://www.zlgmcu.com
;******************************文件信息************************************
;文件名:INT_T0_Led.asm
;功能:使用DP-51S实验仪学习定时/计数器并实现LED发光管的流水显示
;说明:(使用中断方式现实)
;1.学习使用使用定时/计数器产生延时的程序设计方法与技巧
;2.LED发光管和LED数码管共用同一地址2000H~3FFFH,在此选取2000H。
;3.正确设置跳线JP1使P1.6与KBIT7相连,即把跳线置于下端
;最后修改时间:2003年3月21
;*************************************************************************
LED_ADDR	EQU	2000H		;定义LED数码管的数据段地址
COUNTER		DATA	30H		;定义计数单元
DBUFFER		DATA	31H		;定义输出初始值
LEDCS		EQU	P1.6		;定义LED片选信号线

	
	ORG	8000H			;伪指令,定义程序从8000H开始存放
	AJMP	MAIN

	ORG	800BH			;中断入口向量地址
	AJMP	LEDINT0

	
	ORG	8100H			;伪指令,定义以下程序从8100H开始存放
MAIN:	MOV	SP,#60H			;给堆栈指针赋初值
	MOV	TMOD,#01H		;定时器0工作于方式1
	MOV	TH0,#3CH		;给计数寄存器的高8位赋初值
	MOV	TL0,#0B0H		;给计数寄存器的低8位赋初值
	MOV	DBUFFER,#07FH		;赋初值07FH,点亮L8
	SETB	ET0			;允许定时器0溢出中断
	SETB	EA			;开放总中断
	SETB	TR0			;计时开始
	MOV	DPTR,#LED_ADDR		;LED发光二极管操作地址送DPTR
	CLR	LEDCS			;使能LED发光二极管
LOOP:	MOV	A,DBUFFER		;输出显示数据送A
	MOVX	@DPTR,A			;输出显示
	AJMP	LOOP

;***********************
;定时器0中断服务子程序
;***********************
LEDINT0:
	PUSH	PSW			 ;压栈保护现场
	PUSH	ACC
	CLR	TR0			;禁止定时器计数
	MOV	TH0,#3CH		;重新给计数器赋初值
	MOV	TL0,#0B0H
	DJNZ	COUNTER,LEDRET		;定时1s到了吗?
	MOV	COUNTER,#20		;是,则重新赋初值
	MOV	A,DBUFFER		;读取原始状态
	RR	A			;改变原始状态
	MOV	DBUFFER,A		;更新输出
LEDRET:	SETB	TR0			;启动定时器
	POP	ACC			;出栈
	POP	PSW
	RETI				;中断返回
	;
	END

⌨️ 快捷键说明

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