📄 main.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 + -