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

📄 main.asm

📁 基于凌阳单片机的语音 手动 播放音乐 的 汇编程序
💻 ASM
字号:
//=====================================================================
//	The information contained herein is the exclusive property of
//	Sunnnorth Technology Co. And shall not be distributed, reproduced,
//	or disclosed in whole in part without prior written permission.
//	(C) COPYRIGHT 2003 SUNNORTH TECHNOLOGY CO.
//	ALL RIGHTS RESERVED
//	The entire notice above must be reproduced on all authorized copies.
//======================================================================

//======================================================================
//	工程名称:	ex03_asm_IOA_OUT
//	功能描述:	《实验箱实验指导书》基础应用实验
//              使用汇编语言实现A口的输出
//				通过IOA口低8位输出的数据控制8个发光二极管的点亮与熄灭,
//				点亮与熄灭为动态的,而且是重复循环的。
//  IDE环境:   SUNPLUS u'nSPTM  IDE 2.0.0(or later)
//	涉及的库:	CMacro1016.lib
//	组成文件:	main.asm
//	硬件连接:	IOA口低8位与1*8LED相连
//	维护记录:	2005-09-12	v1.0
//
//=======================================================================

//=======================================================================
//	文件名称:	main.asm
//	功能描述:	通过IOA口低8位输出的数据控制8个发光二极管的点亮与熄灭,
//				点亮与熄灭为动态的,而且是重复循环的。
//	维护记录:	2005-09-12	v1.0
//======================================================================

.DEFINE P_Watchdog_Clear	0x7012
.DEFINE P_IOA_Data			0x7000
.DEFINE P_IOA_Buffer		0x7001
.DEFINE P_IOA_Dir			0x7002
.DEFINE	P_IOA_Attrib		0x7003

.RAM
.VAR	Data_Count                 //定义变量作为输出数据寄存器

.CODE

//=====================================================================
//	汇编格式:	_main
//	C格式:		int main(void);
//	实现功能:	通过IOA口低8位输出的数据控制8个发光二极管的点亮与熄灭,
//				点亮与熄灭为动态的,而且是重复循环的。
//	入口参数:	无
//	出口参数:	无
//	破坏寄存器:r1
//====================================================================

.PUBLIC	_main
_main:
	r1 = 0xffff						//设置IOA口为输出口
	[P_IOA_Dir] = r1
	r1 = 0xffff
	[P_IOA_Attrib] = r1
	r1 = 0x0000						//初始化IOA口输出低电平
	[P_IOA_Data] = r1
	
	r1 = 0x0000						//初始化输出数据
	[Data_Count] = r1
	
?Loop:
	r1 = [Data_Count]				
	[P_IOA_Data] = r1               //输出数据送到IOA口,当IOA口某一位输出高电平时,点亮与其连接的发光二极管
	
	r1 = r1 + 1						//输出数据加1
	[Data_Count] = r1
	
	call F_Delay					//延时
	
	r1 = 0x0001
	[P_Watchdog_Clear] = r1 		//清看门狗
	jmp ?Loop
	
//========================================================
//	汇编格式:	F_Delay
//	C格式:		无
//	实现功能:	延时
//	入口参数:	无
//	出口参数:	无
//	破坏寄存器:r1,r2
//========================================================

.PUBLIC F_Delay
.PUBLIC _Delay
F_Delay:
_Delay:
	r2 = 0xffff
?Loop:
	r1 = 0x0001
	[P_Watchdog_Clear] = r1        //清看门狗
	r2 = r2 - 1
	jnz ?Loop
	retf
	

⌨️ 快捷键说明

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