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

📄 pwzhe.asm

📁 这是本人基于dsp编写的利用各种方法产生PWM,看了这些程序
💻 ASM
字号:
// 该程序利用EVB模块的PWM7——PWM12引脚产生不同占空比的方波
#include	"register.h"
//  屏蔽中断程序        
void inline disable() 
{
	asm(" setc INTM ");
}
// 系统初始化子程序
int  initial()
{
	asm(" setc	SXM");				// 符号位扩展有效
	asm(" clrc	OVM");				// 累加器中结果正常溢出
	asm(" clrc	CNF");				// B0被配置为数据存储空间
	*SCSR1=0x81FE;				// CLKIN=6M,CLKOUT=4*CLKIN=24M
	*WDCR=0x0E8;				// 不使能看门狗,因为SCSR2中的WDOVERRIDE
		     					// 即WD保护位复位后的缺省值为1,故可以用
		     					// 软件禁止看门狗
	*IMR=0x0000;					// 禁止所有中断
	*IFR=0x0FFFF;				// 清除全部中断标志,"写1清0"
	WSGR=0X00;					// 禁止所有的等待状态
}
// EVB模块的PWM初始化程序
int  pwminitial()
{
	*MCRC=*MCRC|0X007E;		// IOPE1-6被配置为基本功能方式,PWM7-12
	*ACTRB=0X0666;				// PWM12,10,8 低有效,PWM11,9,7 高有效
	*DBTCONB=0X00;				// 不使能死区控制
	*CMPR4=0X1000;
	*CMPR5=0X3000;
	*CMPR6=0X5000;
	*T3PER=0X6000;				// 设置定时器3的周期寄存器,并设置CMPR4-6,以确定不
// 同的输出占空比
	*COMCONB=0X8200;			// 使能比较操作
	*T3CON=0X1000;				// 定时器3为连续增计数模式
}
// 该中断服务程序主要是为了防止干扰,不做任何其它操作
void	interrupt nothing()
{
	return;						// 中断直接返回
}
// 主程序
main( )
{
	disable();						// 总中断禁止
	initial();						// 系统初始化
	pwminitial();					// PWM输出初始化
	*T3CON=*T3CON|0x0040;		// 启动定时器3
while(1)
{
}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -