📄 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.
//======================================================================
//======================================================================
// 工程名称: ex07_asm_TIMERA_TIMERB
// 功能描述: 《实验仪实验指导书》基础应用实验
// 定时器TimerA/B
// 通过调整时钟源、计数初值、占空比来改变定时器的输出波形
// IDE环境: SUNPLUS u'nSPTM IDE 2.0.0(or later)
// 涉及的库: CMacro1016.lib
// 组成文件: main.asm
// 硬件连接: IOB8连接LED_SEG接口的a
// IOB6连接LED_DIG接口的DIG5
// 维护记录: 2005-09-12 v1.0
//
//======================================================================
//======================================================================
// 文件名称: main.asm
// 功能描述: 通过调整时钟源、计数初值、占空比来改变定时器的输出波形
// 维护记录: 2005-09-12 v1.0
//======================================================================
.DEFINE TIMERA_PWM0 0x0000 //关断
.DEFINE TIMERA_PWM1 0x0040 //1/16
.DEFINE TIMERA_PWM2 0x0080 //2/16
.DEFINE TIMERA_PWM3 0x00c0 //3/16
.DEFINE TIMERA_PWM4 0x0100 //4/16
.DEFINE TIMERA_PWM5 0x0140 //5/16
.DEFINE TIMERA_PWM6 0x0180 //6/16
.DEFINE TIMERA_PWM7 0x01c0 //7/16
.DEFINE TIMERA_PWM8 0x0200 //8/16
.DEFINE TIMERA_PWM9 0x0240 //9/16
.DEFINE TIMERA_PWM10 0x0280 //10/16
.DEFINE TIMERA_PWM11 0x02c0 //11/16
.DEFINE TIMERA_PWM12 0x0300 //12/16
.DEFINE TIMERA_PWM13 0x0340 //13/16
.DEFINE TIMERA_PWM14 0x0380 //14/16
.DEFINE TIMERA_PWM15 0x03c0 //1/2
.DEFINE TIMERA_SA0 0x0000 //f_osc/2
.DEFINE TIMERA_SA1 0x0001 //f_osc/256
.DEFINE TIMERA_SA2 0x0002 //32768Hz
.DEFINE TIMERA_SA3 0x0003 //8192Hz
.DEFINE TIMERA_SA4 0x0004 //4096
.DEFINE TIMERA_SA5 0x0005 //1
.DEFINE TIMERA_SA6 0x0006 //0
.DEFINE TIMERA_SA7 0x0007 //EXT1
.DEFINE TIMERA_SB0 0x0000 //2048Hz
.DEFINE TIMERA_SB1 0x0008 //1024Hz
.DEFINE TIMERA_SB2 0x0010 //256Hz
.DEFINE TIMERA_SB3 0x0018 //TMB1
.DEFINE TIMERA_SB4 0x0020 //4Hz
.DEFINE TIMERA_SB5 0x0028 //2Hz
.DEFINE TIMERA_SB6 0x0030 //1
.DEFINE TIMERA_SB7 0x0038 //EXT2
.DEFINE P_IOB_Data 0x7005
.DEFINE P_IOB_Dir 0x7007
.DEFINE P_IOB_Attrib 0x7008
.DEFINE P_Watchdog_Clear 0x7012
.DEFINE P_TimerA_Data 0x700A
.DEFINE P_TimerA_Ctrl 0x700B
.CODE
//======================================================================
// 汇编格式: _main
// C格式: int main(void);
// 实现功能: 通过调整时钟源、计数初值、占空比来改变定时器的输出波形
// 入口参数: 无
// 出口参数: 无
// 破坏寄存器:r1,r2
//======================================================================
.PUBLIC _main
_main:
r1 = 0x0140 //设置IOB6、IOB8为输出口
[P_IOB_Dir] = r1
r1 = 0x0140
[P_IOB_Attrib] = r1
r1 = 0x0040 //IOB8输出低电平, IOB6输出高电平
[P_IOB_Data] = r1
// r1 = TIMERA_PWM14 | TIMERA_SA0 | TIMERA_SB6 //选择高频(时钟源A f_osc/2,时钟源B 1),占空比14/16
// r1 = TIMERA_PWM8 | TIMERA_SA0 | TIMERA_SB6 //占空比选择1/2
r1 = TIMERA_PWM8 | TIMERA_SA5 | TIMERA_SB0 //选择低频2Hz
// r1 = TIMERA_PWM15 | TIMERA_SA0 | TIMERA_SB6 //ftout/2
// r1 = TIMERA_PWM0 | TIMERA_SA0 | TIMERA_SB6 //关闭
[P_TimerA_Ctrl] = r1
r1 = 0xff00 //设置计数初值
[P_TimerA_Data] = r1
?Loop:
r1 = 0x0001
[P_Watchdog_Clear] = r1 //清看门狗
jmp ?Loop
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -