📄 test5.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.
//========================================================
//============================================================
// 工程名称: test5.spj
// 功能描述: 1)选择不同的时钟源,同一占空比8/16,观察示波器中频率的变化
// 2)选择同一时钟源,改变占空比,观察示波器,比较脉冲宽度
// 硬件连接: B口接发光二极管 ,发光二极管随设定的时间闪烁
// 文件来源:《实验仪实验指导书》,"实验七 定时器Timer A/B实验" 第17页
// IDE环境: SUNPLUS u'nSPTM IDE 1.8.4
//
// 涉及的库:
// 组成文件:
// main.asm
//===============================================
//============================================================
// 文件名称:main.asm
// 实现功能: 1)选择不同的时钟源,同一占空比8/16,观察示波器中频率的变化
// 2)选择同一时钟源,改变占空比,观察示波器,比较脉冲宽度
//============================================================
.define timefosc_2 0x0230; //clkA选择fosc/2Hz
.define timefosc_256 0x0231; //clkA选择fosc/256Hz
.define timeclk_32768 0x0232; //clkA选择32768Hz
.define timeclk_8192 0x0233; //clkA选择8192Hz
.define timeclk_4096 0x0234; //clkA选择4096Hz
.define timeclk_2048 0x0205; //clkB选择2048Hz
.define timeclk_1024 0x020d; //clkB选择1024Hz
.define timeclk_256 0x0215; //clkB选择256Hz
.define timeclk_4 0x0225; //clkB选择4Hz
.define timeclk_2 0x0065; //clkB选择2HzHz
//频率选择fosc/2Hz
//用户也可以设置不同频率下的占空比
.define timepwm_1 0x0070; //脉宽选择1/6
.define timepwm_2 0x00b0; //脉宽选择2/6
.define timepwm_3 0x00f0; //脉宽选择3/6
.define timepwm_4 0x0130; //脉宽选择4/6
.define timepwm_5 0x0170; //脉宽选择5/6
.define timepwm_6 0x01b0; //脉宽选择6/6
.define timepwm_7 0x01f0; //脉宽选择7/6
.define timepwm_8 0x0230; //脉宽选择8/6
.define timepwm_9 0x0270; //脉宽选择9/6
.define timepwm_10 0x02b0; //脉宽选择10/6
.define timepwm_11 0x02f0; //脉宽选择11/6
.define timepwm_12 0x0330; //脉宽选择12/6
.define timepwm_13 0x0370; //脉宽选择13/6
.define timepwm_14 0x03b0; //脉宽选择14/6
.define time_clk timefosc_2; //频率选择
.define time_pwm timepwm_4; //脉宽选择
.define P_TimerA_Data 0x700A;
.define P_TimerA_Ctrl 0x700B;
.define P_IOB_DATA 0x7005;
.define P_IOB_DIR 0x7007;
.define P_IOB_ATTRI 0x7008;
.define P_Feedback 0x7009;
.define P_Watchdog_Clear 0x7012;
.code
.public _main
//=============================================================
// 函数名称: main()
// 功能描述: 1)选择不同的时钟源,同一占空比8/16,观察示波器中频率的变化
// 2)选择同一时钟源,改变占空比,观察示波器,比较脉冲宽度
// 语法格式: main()
//入口参数: 无
// 出口参数: 无
// 注意事项: 仅为用户模型
//=============================================================
_main:
r1=0x0140 //设置IOB8IOB6口为输出端口
[P_IOB_DIR]=r1
[P_IOB_ATTRI]=r1
r1=0x0040
[P_IOB_DATA ]=r1
r1=0x0000
[P_Feedback]=r1 //设置IOB8口为APWMO端口
r1=0xff9f //设定TA_TIMEOUT/16=(time_clk/96)/16=8kHz
[P_TimerA_Data]=r1
r1=time_clk //r1=time_pwm
[P_TimerA_Ctrl]=r1
loop:
nop
nop
nop
r1=0x0001 //清看门狗
[P_Watchdog_Clear] = r1
jmp loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -