⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.asm

📁 电压控制程序,符合各种设备需要,核心程序,IBm专属
💻 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 + -