pic单片机CCP脉冲(PWM)输出

发布者:码字探险最新更新时间:2014-12-23 来源: 51hei关键字:pic单片机  CCP脉冲  PWM 手机看文章 扫描二维码
随时随地手机看文章

#include 
//该程序用于使CCP1模块产生分辨率为10位的PWM波形,占空比为50%,根据PWM_WIDE计算频率。proteus仿真通过
//CCP1(CCP2相同设置)模块的PWM工作方式初始化子程序(中断为什么不行呢?)
#define CCP1
#define PWM_WIDE   0x7F
#define PWM_TOTAL PWM_WIDE<<1

 

void CCPINIT()
{
#ifdef CCP1
 CCPR1L = PWM_WIDE;
 CCP1CON = 0X3C;      //设置CCP1模块为PWM工作方式,且其工作
                      //循环的低2位为11,高8位为01111111=7F
 TRISC  &= 0XFB;      //设置CCP1引脚为输出方式
#else
 CCPR2L = PWM_WIDE;
 CCP2CON = 0X3C;   // CCP2
 TRISC  &= 0XFD;      //设置CCP2引脚为输出方式
#endif
 PR2=PWM_TOTAL;       //设置PWM的工作周期
 INTCON &= 0X00;      //禁止总中断和外围中断 
}
void DelayMs(unsigned int ms)
{
 unsigned char i;
 while(--ms)
 {
  for(i=110;i>0;--i);
 }
}
//主程序
main()
{
 TRISD = 0xff;
    CCPINIT();        //CCP1模块的PWM工作方式初始化
 T2CON |= 0X04;    //打开TMR2,且使其前分频为0,
                      //同时开始输出PWM波形
 while(1)          //系统开始输出PWM波形。如果系统是多任务的,则可以在此执行其它任务,而不会影响PWM波形的产生
 {
  if(RD0 == 1)
  {
   DelayMs(5);
   if(RD0 == 1)//设置条件停止发送脉冲,中止(步进电机等)设备
   {
    T2CON &= 0xFB;
   #ifdef CCP1
    CCPR1L=0;
   #else
    CCPR2L=0;
   #endif
    PR2=0;
    while(!RD0);
   }
   else
   {
    T2CON |=0X04;
   #ifdef CCP1
    CCPR1L = PWM_WIDE;
   #else
    CCPR2L = PWM_WIDE;
   #endif
    PR2 = PWM_TOTAL;
   }  
  } 
 }
}

关键字:pic单片机  CCP脉冲  PWM 引用地址:pic单片机CCP脉冲(PWM)输出

上一篇:PIC单片机三个定时器中断同时定时
下一篇:基于SPCE061A的髋作用力测试仪设计

推荐阅读最新更新时间:2024-03-16 13:49

51汇编学习-51单片机汇编写40%占空比pwm
LJMP MAIN; ORG 000BH; LJMP ITP0; ORG 0100H; MAIN: ACALL PT0M0; MOV A,#00; MOV 30H,#4; PT0M0: MOV TMOD,#02H;Initialize FANGSHI ER mode MOV TL0,#0CEH;Timing 50Us MOV TH0,#0CEH; SETB ET0; SETB EA; SETB TR0; RET ITP0: PUSH PSW; INC A; CJNE A ,30H,AAA; MOV A,#0; MOV
[单片机]
51汇编学习-51单片机汇编写40%占空比<font color='red'>pwm</font>
STM32CUBEIDE(11)----输出PWM及修改PWM频率与占空比
概述 本章STM32CUBEMX配置STM32F103输出PWM,并在示波器中查看效果。 需要样片的可以加Qun申请:615061293。 生成例程 使用STM32CUBEMX生成例程,这里使用NUCLEO-F103RB开发板 查看原理图,PA8设置为PWM输出管脚。 生成独立的文件。 工作过程 查看下面工作原理图可以得知,时钟可以由内部Internal clock产生或者外部ETR。 同时可以设置复位,使能,向上/向下,计数。 查看下列文档可以得知,定时器主要有TIMx_CNT、TIMx_PSC、TIMx_ARR、TIMx_RCR控制。 同时预分频器(TIMx_PSC)范围位1-65535。 查看TIMx
[单片机]
STM32CUBEIDE(11)----输出<font color='red'>PWM</font>及修改<font color='red'>PWM</font>频率与占空比
基于PWM控制直流电机调速的设计
实验现象:通过S2,S3按键,增加/减小PWM,控制LED灯组的亮灭,同时当高于或低于PWM时,蜂鸣器将工作。 #include reg52.h #define uchar unsigned char #define uint unsigned int sbit S2=P3^4;//PWM+ sbit S3=P3^5;//PWM- sbit fm=P2^3;//蜂鸣器 uchar pwm,num; void delay(uint ms)//延时 { uchar i; while(ms--) { for(i=0;i 120;i++); } } void bee()//蜂鸣器 {
[单片机]
基于PIC单片机的测温网络的开发
简介:介绍一种利用PIC单片机和DS18B20构造单总线测温网络的方法,文章给出了系统硬件结构和软件流程图。 本测温网络应用在磁致伸缩液位传感器上,利用附在不锈钢管内壁的不同位置上的三个DS18B20,测量不同液位层的温度 。 1硬件设计 整个系统由上位机和下位机组成。上位机用PC机,下位机用PIC16C63(原理框图见图1)。系统硬件部分主要有PIC16C63、AT24C01、DS18B20、显示电路、电源电路、时钟电路和通信电路。用户需要时可通过上位机下达测量命令,下位机进行测量并把结果送给上位机或显示在液晶显示模块上。三个温度点任何一路发生故障,都会传给上位机一个默认值,用户可以据此在线更换新的温度传感器,系统能够自
[单片机]
基于<font color='red'>PIC单片机</font>的测温网络的开发
STM32单片机PWM输出测试
环境: 主机:XP 开发环境:MDK4.23 MCU:STM32F103CBT6 说明: 使用内部8M晶振,倍频到64M供给TIM3定时器,PA6(通道1)上产生640K,50%方波 源代码: 初始化时钟: //初始化RCC时钟 void init_rcc(void) { //将外设 RCC寄存器重设为缺省值 RCC_DeInit(); //内部晶振使能 RCC_HSICmd(ENABLE); //等待工作稳定 while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET); //LSI的启动,提供给看门
[单片机]
STM32单片机<font color='red'>PWM</font>输出测试
分享PWM输入模式捕捉4路PWM波形的周期和占空比
前几天分享过一个帖子,因为网速原因没有上传源码,看到有人回复我说实验不成功,那么好吧!这是我的错误,这次就将源码和我的心得体会分享出来,供大家下载测试和成长。我其实也是菜鸟一个,如果讲解的地方有啥不对,或是程序设计的不好,欢迎大家提出意见,让我们一起来学习进步。ffice ffice / PWM输入是输入捕获的一个特殊应用,输入捕获就是当连接到定时器的引脚上产生电平变化时对应的捕获装置会立即将当前计数值复制到另一个寄存器中。你可以开启捕获中断然后在中断处理函数中读出保存的计数值。 与输入捕获不同的是PWM输入模式会将同一个输入信号(TI1或TI2)连接到两个捕获装置(IC1和IC2)。这两个捕获装置一个捕获上升沿一个捕获下降沿。
[单片机]
分享<font color='red'>PWM</font>输入模式捕捉4路<font color='red'>PWM</font>波形的周期和占空比
STM32通用定时器TIM实现PWM波配置步骤
//1、开启定时器时钟和需要用到的IO口 void Clock_Init(void) { RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB|RCC_APB2Periph_AFIO, ENABLE);//因为准备把PB5口作为输出端口,所以接下来AFIO使能,如果使用默认的PA7 输 //出则不用使能AFIO,但需要使能GPIOA } //2、IO口并重映射TIM3 void GPIO_Out_Init(void) { GPIO_InitTypeDef GPIO_Init
[单片机]
电流模式控制倍流整流器ZVS PWM全桥DC-DC变换器的研究
1、引言 传统的PWM DC/DC 移相全桥零电压软开关(ZVS)变换器利用变压器的漏感或/和原边串联电感和开关管的外接或/和寄生电容之间的谐振来实现零电压软开关,由于超前桥臂和滞后桥臂实现零电压软开关ZVS的条件不尽相同,导致了滞后桥臂实现零电压软开关ZVS的难度比超前桥臂要大得多;输出整流二极管换流时关断的二极管反向恢复会引起次级较大的电压尖峰;并且还存在较为严重的副边占空比丢失的情况。为了解决这些问题,以下提出了一种改进型的电路拓扑结构。 2、改进型移相全桥ZVS DC-DC变换器主电路 改进型移相全桥ZVS DC-DC变换器主电路结构和各点波形对照如下图2-1(a)和(b)所示: 容易看出改进型的电路拓
[工业控制]
电流模式控制倍流整流器ZVS <font color='red'>PWM</font>全桥DC-DC变换器的研究
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved