?? 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
// 硬件連接: LED_SEG接口的IOA0~7與a~h分別連接
// LED_DIG接口的IOB6與DIG5連接
// 維護記錄: 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
.DEFINE P_IOB_Data 0x7005
.DEFINE P_IOB_Buffer 0x7006
.DEFINE P_IOB_Dir 0x7007
.DEFINE P_IOB_Attrib 0x7008
.RAM
.VAR Data_Count //定義變量作為輸出數據寄存器
.CODE
//=====================================================================
// 匯編格式: _main
// C格式: int main(void);
// 實現功能: 通過IOA口低8位輸出的數據控制8個發光二極管的點亮與熄滅,
// 點亮與熄滅為動態的,而且是重復循環的。
// 入口參數: 無
// 出口參數: 無
// 破壞寄存器:r1
//====================================================================
.PUBLIC _main
_main:
r1 = 0x0040 //IOB6輸出高電平
[P_IOB_Dir] = r1
[P_IOB_Attrib] = r1
[P_IOB_Data] = r1
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 + -