datasheet

用 STC12C5A60S2 产生PWM波

2019-05-21来源: eefocus关键字:STC12C5A60S2  PWM波


#include "reg51.h"

#include "intrins.h"

#define FOSC 18432000L

typedef unsigned char BYTE;

typedef unsigned int WORD;

/*Declare SFR associated with the PCA */

sfr CCON = 0xD8; //PCA control register

sbit CCF0 = CCON^0; //PCA module-0 interrupt flag

sbit CCF1 = CCON^1; //PCA module-1 interrupt flag

sbit CR = CCON^6; //PCA timer run control bit

sbit CF = CCON^7; //PCA timer overflow flag

sfr CMOD = 0xD9; //PCA mode register

sfr CL = 0xE9; //PCA base timer LOW

sfr CH = 0xF9; //PCA base timer HIGH

sfr CCAPM0 = 0xDA; //PCA module-0 mode register

sfr CCAP0L = 0xEA; //PCA module-0 capture register LOW

sfr CCAP0H = 0xFA; //PCA module-0 capture register HIGH

sfr CCAPM1 = 0xDB; //PCA module-1 mode register

sfr CCAP1L = 0xEB; //PCA module-1 capture register LOW

sfr CCAP1H = 0xFB; //PCA module-1 capture register HIGH

sfr PCAPWM0 = 0xf2;

sfr PCAPWM1 = 0xf3;

 

 

void main()

{

CCON = 0; //Initial PCA control register

//PCA timer stop running

//Clear CF flag

//Clear all module interrupt flag

CL = 0; //Reset PCA base timer

CH = 0;

CMOD = 0x02; //Set PCA timer clock source as Fosc/2

//Disable PCA timer overflow interrupt

CCAP0H = CCAP0L = 0x80; //PWM0 port output 50% duty cycle square wave

CCAPM0 = 0x42; //PCA module-0 work in 8-bit PWM mode

//and no PCA interrupt

CCAP1H = CCAP1L = 0xff; //PWM1 port output 0% duty cycle square wave

PCAPWM1 = 0x03;

CCAPM1 = 0x42; //PCA module-1 work in 8-bit PWM mode

//and no PCA interrupt

CR = 1; //PCA timer start run

while (1);

}


其中,关于PWM的占空比的问题,我也想了好久刚开始没想明白,怎么就0x80对应的占空比就是50%呢?后来才知道,将0x80转换成十进制就是128,正好是256的一半,所以占空比是50%,也就是说,要想得到20%的占空比,就要给CCAP0H和CCAP0L附0x33, 下载到单片机后用示波器测就是20%的占空比。


上面那句  PCAPWM1 = 0x03;  不知道是什么意思,写了这句话P1.4口就无法输出PWM波,去掉之后就可以正常输出了。


关键字:STC12C5A60S2  PWM波

编辑:什么鱼 引用地址:http://news.eeworld.com.cn/mcu/ic462396.html
本网站转载的所有的文章、图片、音频视频文件等资料的版权归版权所有人所有,本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如果本网所选内容的文章作者及编辑认为其作品不宜公开自由传播,或不应无偿使用,请及时通过电子邮件或电话通知我们,以迅速采取适当措施,避免给双方造成不必要的经济损失。

上一篇:STC12C5A60S2单片机串口1无法连续发送字符的问题
下一篇:printf 函数在keil2 中的使用

关注eeworld公众号 快捷获取更多信息
关注eeworld公众号
快捷获取更多信息
关注eeworld服务号 享受更多官方福利
关注eeworld服务号
享受更多官方福利

推荐阅读

STC12C5A60S2_PWM

#include <reg52.h>#include <intrin.h>#define uint unsigned int #define uchar unsigned charsfr CCON = 0XD8;sbit CCFO = CCON^0;sbit CCF1 = CCON^1;sbit CR = CCON^6;sbit CF = CCON^7;sfr CMOD = 0XD9;sfr CL = 0XE9;sfr CH = 0XF9;sfr CCAPM0 = 0XDA;sfr CCAP0L = 0XEA;sfr CCAP0H = 0XFA;sfr CCAMP1 = 0XDB;sfr CCAP1
发表于 2019-06-01

单片机PWM输出控制直流电机(89c51系列、stc12c5a60s2系列)

= 0; if(time < PWM) pwm = 1; else if(time >= PWM) pwm = 0; }}proteus仿真结果由仿真结果来看,所得波形还是不算很精准,实际应用过程中还会有很多误差,但是这样已经比延时函数产生pwm的结果可靠的多。【STC12C5A60S2系列单片机输出PWM】我在做循迹小车时使用的是stc12c5a60s2单片机。stc12c5a60s2单片机集成了两路可编程计数器阵列(PCA)模块,可用于软件定时器、外部脉冲的捕捉、高速输出以及脉宽调制(PWM)输出。使用stc12c5a60s2单片机的PCA模块可通过程序设定,使其工作于8位PWM模式,通过P13和P14输出
发表于 2019-05-22
单片机PWM输出控制直流电机(89c51系列、stc12c5a60s2系列)

STC12C5A60S2的PCA模块输出PWM波

的模式,去掉那些烦人的中断,对了虽然PCA模块可以配置成不同的模式,但是无论在什么模式下,所触发的任何中断,都只有一个中断入口。代号为7。当将PCA模块配置成上述模式之后,再经过一些配置后,会出现在相应的引脚发出相应的PWM波形下来以手册中例程来对PWM的生成过程进行一个分析。CMOD = 0x02  //设置PCA的时钟源为SYSclk/2,并且禁止PCA定时器的溢出中断 CCAP0H=CCAP0L=0x80;   //设置占空比为50% CCAPM0 = 0X42;       //设置PCA的工作模式为8位PWM并且不允许任何中断
发表于 2019-05-22
STC12C5A60S2的PCA模块输出PWM波

增强型单片机STC12C5A60S2输出各种频率方波信号

【例7-3】 设时钟频率Fosc=18.432MHz,设计程序,从P1.0/CLKOUT2引脚输出频率为124.540KHz的时钟;从T0(P3.4)引脚输出频率为125KHz的时钟;从T1(P3.5)引脚输出频率为38.4KHz的时钟。解:使用STC12C5A60S2的可编程时钟输出功能完成所需要求。在下面的程序设计中(在此只给出C语言程序),T0、T1和独立波特率发生器BRT均工作在1T模式。程序编制如下:#include "stc12c5a.h"        //包含STC12C5A60S2的寄存器定义头文件void main(void){   
发表于 2019-05-22

STC12C5A60S2 ADC中断方式

/*------------------------------------------------------------------*//* --- STC MCU Limited ---------------------------------------------*//* --- STC12C5Axx Series MCU A/D Conversion Demo -------------------*//* --- Web: www.STCMCU.com -----------------------------------------*//* If you want to use the program or
发表于 2019-05-22

STC12C5A60S2 ADC查询方式

/*------------------------------------------------------------------*//* --- STC MCU Limited ---------------------------------------------*//* --- STC12C5Axx Series MCU A/D Conversion Demo -------------------*//* --- Web: www.STCMCU.com -----------------------------------------*//* If you want to use the program or
发表于 2019-05-22

小广播

何立民专栏

单片机及嵌入式宝典

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

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2019 EEWORLD.com.cn, Inc. All rights reserved