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

📄 test5.asm

📁 试验仪自检程序
💻 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 + -