当前位置:首页 > 单片机 > 单片机
[导读]/*==============================================================at12c2052所带的PWM功能演示,内部公用了一个定时器,当启动PWM时PCA定时器只工作在8位模式,匹配比较器也是按8位的。本程序演示了PWM启动的设置和

/*==============================================================at12c2052所带的PWM功能演示,内部公用了一个定时器,当启动PWM时PCA定时器只工作在8位模式,匹配比较器也是按8位的。本程序演示了PWM启动的设置和调节。改用在tasking c51下面编译,并尝试了tasking 方便的在线汇编方式------- 晓奇 2006.01.12===============================================================*/#include "STC12C2052AD.h"/*#include*/#define uint unsigned int#define uchar unsigned charuint i;uchar upordn;/* 升降标志,1=上升 */voidinitall(void);_interrupt(1)voidtimers0(void);_interrupt (6)voidPCA_LVD(void);voidinitall(void){TMOD= 0x11;/* 0000 0001 T0作为16位计数器 */TH0 = 0xc0;/* 定时器0初始值装入 */TL0 = 0x00;ET0 = 1;//开中断IE |= 0x40;/* 使能PCA定时功能 */EA = 1;AUXR = 0x80;/* 1000 0000|||| ||++-保留|||| |+---低电压中断允许:0=禁止,1=允许,5V..3.7V,3V..2.4V以下|||| +----SPI中断允许位:0=禁止,1=允许|||+------ADC中断允许位:0=禁止,1=允许||+-------串口模式0时时钟设定:0=传统1/12, 1=1/2 2分频;|+--------定时器ct1时钟源设定:0=传统1/12,1=1:1不分频;+---------定时器ct0时钟源设定:0=传统1/12,1=1:1不分频;*/P1 = 0xff;P1M0 = 0x00;/* P1口用传统51准双向口模式 */P1M1 = 0x00;CMOD = 0x03;/* 内部时钟,Fosc/2, PCA计数溢出中断使能*//* 0000 0011 PCA 模式寄存器|||| |||+--ECF...PCA计数溢出中断使能:ECF=1时,使能寄存器CCON CF位的|||| ||| 中断。ECF=0时,禁止该功能。|||| |++---CPS1,CPS0 选择PCA 时钟源输入(PCA计数脉冲选择)|||| | 0 0 0,内部时钟,Fosc/12|||| | 0 1 1,内部时钟,Fosc/2|||| | 1 0 2,定时器0溢出,由于定时器0可以工作在1T方式,|||| | 所以可以达到计一个时钟就溢出, 频率反而|||| | 是最高的,可达到Fosc|||| | 1 1 3,ECI/P3.4脚的外部时钟输入(最大速率=Fosc/2)|+++-+-----保留+----------CIDL...计数器阵列空闲控制:CIDL=0时,空闲模式下PCA计数器继续工作。CIDL=1时,空闲模式下PCA计数器停止工作。*/CH = 0x00;/* PCA计数器初始值高8位 */CL = 0x00;/* PCA计数器初始值低8位 */CCAP0H = 0x00;/* 当出现捕获或比较时,它们用来保存16 位的计数值。当PCA 模块用在PWM 模式中时,它们用来控制输出的占空比。CCAP0H.CCAP0L分别为高低8位,组合使用*/CCAP0L = 0x00;CCAP1H = 0x00;/* 当出现捕获或比较时,它们用来保存16 位的计数值。当PCA 模块用在PWM 模式中时,它们用来控制输出的占空比。CCAP1H.CCAP1L分别为高低8位,组合使用*/CCAP1L = 0x00;CCAPM1 = 0x4c;/* PCA 比较/捕获模块寄存器1作为16位软件定时器。使能比较器,PCA计数值与模块的比较/捕获寄存器的值的匹配将置位CCON寄存器的中断标志位CCF1,使能CCF1中断 *//*0100 1100 功能说明|||| |||+---ECCF1.. 使能CCF1中断。使能寄存器CCON的比较/捕获标志CCF1,|||| ||| 用来产生中断。|||| ||+----PWM1... 脉宽调节模式。当PWMn=1时,使能CEXn脚用作脉宽调节输出。|||| |+-----TOG1... 翻转。当TOG1= 1时, PCA计数值与模块的比较/捕获寄存|||| | 器的值的匹配将使CEXn脚翻转。(CEX1/P3.5)|||| +------MAT1... 匹配。当=1时, PCA计数值与模块的比较/捕获寄存器的值|||| 的匹配将置位CCON寄存器的中断标志位CCF1。|||+--------CAPN1.. 负捕获。CAPN1= 1时使能下降沿捕获。||+---------CAPP1.. 正捕获。CAPP1= 1时使能上升沿捕获。|+----------ECOM1.. 使能比较器。ECOM1= 1时使能比较器功能。+-----------CCAPM1^7保留使用的机种基本模式组合:ECOM1 CAPP1 CAPN1 MAT1 TOG1 PWM1 ECCF1 模块功能0 0 0 0 0 0 0 无此操作X 1 0 0 0 0 X 16位捕获模式,由CEX1的上升沿触发X 0 1 0 0 0 X 16位捕获模式,由CEX1的下降沿触发X 1 1 0 0 0 X 16位捕获模式,由CEX1的跳变触发1 0 0 1 0 0 X 16位软件定时器1 0 0 1 1 0 X 16位高速输出1 0 0 0 0 1 0 8位PWM*/CCAPM0 = 0x42;/* PCA 比较/捕获模块寄存器0作为16位软件定时器。使能比较器,PCA计数值与模块的比较/捕获寄存器的值的匹配将置位CCON寄存器的中断标志位CCF0,使能CCF0中断 寄存器位功能同上*/CR = 1;//Start PCA Timer.TR0 = 1;//启动计时i = 0;upordn = 1;}/* ------------- 定时器0用来定时调节PWM的输出占空比 ------------- */_interrupt(1)voidtimers0(void){TL0 = 0x00;TH0 = 0xc0;CCAP0H = i>>8;/* CCAP0L不用赋值,他不参与工作 */if(upordn)/* 逐步加宽PWM、加快脉冲输出 */{if(++i==65535)/* 到头 */{upordn=0;/* 调头 */}}else/* 逐步减窄PWM、减慢脉冲输出 */{if(--i==0)/* 到头 */{upordn=1;/* 调头 */}}P1 = ~(i>>8);/* 高8位输出LED指示,作监视用 */}/* ------------ PCA 定时中断,负责清除溢出标志并赋初值 ------------- *//* 摇晃编程板可以看到P3.5连接的led闪亮频率的缓慢变化,虚线在变长变短 */_interrupt (6)voidPCA_LVD(void){CH = i>>8;CL = i&0xff;CF = 0;CCF0 = 0;// LedPCA ^= 1; /* 频率要求不高的时候这里可以插入用户代码 */}voidmain(void){initall();// 测试tasking c51的在线汇编功能#pragma asmmov r0,#0f0hv1: nopnopdjnz r0,v1nop#pragma endasm// 编译很顺利通过,不用作任何附加的设定while(1){};}

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

通过以足够快的速率和一定的占空比改变数字信号开/关状态,当向响应速度比PWM频率慢得多的器件(如音频扬声器、电机和电磁阀执行器)供电时,输出将表现为恒定的电压模拟信号。

关键字: 脉宽调制 音频扬声器 电机

PWM(Pulse Width Modulation,脉宽调制)死区是一个在PWM控制系统中至关重要的概念,特别是在涉及电力电子设备和电机控制的应用中。

关键字: 脉宽调制 死区

在电力电子领域,绝缘栅双极型晶体管(IGBT)作为高性能开关器件,广泛应用于PWM(脉宽调制)方式工作的开关电源中。IGBT的损耗直接影响开关电源的效率、热设计及可靠性。因此,深入分析IGBT在PWM方式下的损耗特性,对...

关键字: 绝缘栅双极型晶体管 开关器件 脉宽调制

pwm控制的基本原理随着电力需求的不断增加,电源管理技术愈加重要。开关电源作为一种高效能、可靠性高的电源,找到广泛的应用。

关键字: pwm 控制 电源

全称Pulse Width Modulation:脉冲宽度调制(简称脉宽调制,通俗的讲就是调节脉冲的宽度),是电子电力应用中非常重要的一种控制技术,在理解TA之前我们先来了解几个概念 。

关键字: 脉宽调制 控制 脉冲

脉宽调制(Pulse Width Modulation)是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用在从测量、通信到功率控制与变换的许多领域中。

关键字: 脉宽调制 模拟电路 数字电路

随着电力电子技术的迅速发展,各种电力电子装置在电力系统、工业、信息、交通、家庭等众多领域中的应用日益广泛。

关键字: 脉宽调制 整流电路 电力电子

脉宽调制(PWM)是一种常用的调制技术,用于在数字电路中生成模拟信号。它通过调整脉冲的宽度来模拟模拟信号的幅度。

关键字: 脉宽调制 PWM 模拟信号

SPWM又是如何调制的哪?所谓正弦脉宽调制,就是脉宽与占空比按正弦规律变化,脉宽就是脉冲时间的长短,可以是正脉冲,也可以是负脉冲,而占空比就是脉宽与周期的比值,是在一个周期内脉宽所占周期的百分比。

关键字: SPWM 正弦 脉宽调制

在节能、环保及全球LED照明迅猛增长的趋势下,LED球泡灯等已几乎家喻户晓,而随着相关技术的进步,LED成本及性能水准已大幅提升。

关键字: 功率因数校正 LED驱动器 脉宽调制
关闭