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

📄 timer_pwm.c

📁 51单片机基于CAN总线通信程序
💻 C
字号:
#include <reg52.h>
#include <intrins.h>
#include "inc/EXT_PUBLIC_VARIABLE.H"
#include "inc/CPUIO_DEF.H"
#include "inc/timer_pwm.h"

/**************************************************************************
最小时基:    1us //12兆晶体,工作在1T模式下
定时器类1:   定时范围为    2ms - 500ms
定时器类2:   定时范围为    500ms - 128s

**************************************************************************/	
void  Timer1() interrupt 3 using 2
{
	static uchar cyctimer	= 10;
	static uchar plwtimer   = 5;
//	TH1 = FPTimr.RelodeValH;
//	TL1 = FPTimr.RelodeValL;
    TH1 = 0xfc;
    TL1 = 0x66;
	if( --cyctimer == 0 )
	{
	   MOTPWM = 1;
	   cyctimer = FPTimr.CycleTimer;
	   plwtimer=FPTimr.PluseWTimer;
	}
	if( plwtimer != 0 )
	{
		if( --plwtimer == 0 )
		{
		   MOTPWM = 0;	   
		}
	}	
}
/**************************************************************************************
;;函数原型:	PwmTime0_int (uint fc,uchar n);
;;函数功能: 初始化定时器0,用定时器0输出100hz-3khz,占空比可调整的
;;函数输入: 输出频率fc(100-3000)100hz-3khz,(小于10K)占空比N(1-9步进1)对应占空比10%-90%
;;              N=0;占空比为1
;;函数输出: 无
;;函数返回值:使用24兆晶振,
***************************************************************************************/
void PwmTime0_int (uint fc,uchar n)
{
    //定时器重载值	 
    uint i;
    i = 0xffff-62000/fc;
    FPTimr.RelodeValH = i>>8;	        //定时时基是输出平频率的100倍
    FPTimr.RelodeValL = i;
    FPTimr.CycleTimer = 10;  			//周期定时器
    FPTimr.PluseWTimer = n;  			//脉宽占空比定时器
    
//    TH1 = FPTimr.RelodeValH;
//    TL1 = FPTimr.RelodeValL;
    TH1 = 0xfc;
    TL1 = 0x66;
    TR1 = 1;
}

⌨️ 快捷键说明

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