📄 test6.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.
//========================================================
//============================================================
// 工程名称: test6.spj
// 功能描述: 1)选择不同Fosc信号频率,观察发光二极管亮灭快慢
// 2)改变CPUClk频率,观察发光二极管亮灭快慢
// 硬件连接:A口低八位控制八个发光二极管阳极,B6控制8个发光二极管的共阴极
// 文件来源:《实验仪实验指导书》, 实验八 系统时钟实验" 第20页
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.4
//
// 涉及的库:
// 组成文件:
// main.asm
//===============================================
//============================================================
// 文件名称:main.asm
// 实现功能: 1)选择不同Fosc信号频率,观察发光二极管亮灭快慢
// 2)改变CPUClk频率,观察发光二极管亮灭快慢
//============================================================
.include Hardware.inc
.define FoscCLK_20 0x00; //Fosc=20.480MHz
.define FoscCLK_24 0x20; //Fosc=24.576MHz
.define FoscCLK_32 0x40; //Fosc=32.768MHz
.define FoscCLK_40 0x60; //Fosc=40.960MHz
.define FoscCLK_49 0x80; //Fosc=49.152MHz
.define CPUCLK_Fosc 0x00; //CPUClk选Fosc
.define CPUCLK_Fosc2 0x01; //CPUClk选Fosc/2
.define CPUCLK_Fosc4 0x02; //CPUClk选Fosc/4
.define CPUCLK_Fosc8 0x03; //CPUClk选Fosc/8
.define CPUCLK_Fosc16 0x04; //CPUClk选Fosc/16
.define CPUCLK_Fosc32 0x05; //CPUClk选Fosc/32
.define CPUCLK_Fosc64 0x06; //CPUClk选Fosc/64
.define Fosc_CLK_RATE FoscCLK_40; //选择不同Fosc信号频率
.define CPU_CLK_RATE CPUCLK_Fosc2; //改变CPUClk频率
.code
.public _main
//=============================================================
// 函数名称: main()
// 功能描述: 1)选择不同Fosc信号频率,观察发光二极管亮灭快慢
// 2)改变CPUClk频率,观察发光二极管亮灭快慢
// 语法格式: main()
//入口参数: 无
// 出口参数: 无
// 注意事项: 仅为用户模型
//=============================================================
_main:
r1=0x00FF
[P_IOA_Dir]=r1 //IOA: [7..0]同相输出低电平
[P_IOA_Attrib]=r1
r1=0
[P_IOA_Data]=r1
r1=0x0040 //IOB6同相输出高电平
[P_IOB_Dir]=r1
[P_IOB_Attrib]=r1
[P_IOB_Data]=r1
r1=Fosc_CLK_RATE //Fosc
r1|=CPU_CLK_RATE //CPUClk
//系统时钟选择设置,32768Hz时钟默认为自动弱振模式即B3为0
[P_SystemClock]=r1
MainLoop:
r1=0x00FF //LED亮
[P_IOA_Data]=r1
CALL Delay
r1=0x00 //LED灭
[P_IOA_Data]=r1
CALL Delay
JMP MainLoop
Delay: //延时
r1=0x0001 //清看门狗
[P_Watchdog_Clear] = r1
r3=0x4
DelayLoop2:
r4=0xFFFF
DelayLoop1:
r4-=1
JNZ DelayLoop1
r3-=1
JNZ DelayLoop2
RETF
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -