📄 pwm.c
字号:
#include "../inc/STC12C5410AD.H" // AT89C4051头文件
#include "def.h" // 类型定义文件
#include "config.h" // 参数配置头文件
#include "uart.h" // uart通讯程序头文件
#include "time0.h" // 定时器0中断程序
#define INIT_PWM_VAL 0x80 //系统初始PWM值
void InitPwm (void);
/*
void PCA_LVD_Routine()interrupt 6 //方波
{
CCF1 =0;//清匹配中断标志CCF1
CCF0 =0;//清匹配中断标志CCF0
if(ccctmp++>=90000)
{
ccctmp=0;
LED=~LED;
}
}
*/
/*******************************************************************************
* 名 称: InitPwm
* 功 能: pwm初始化
* 入口参数: 无
* 出口参数: 无
*******************************************************************************/
void InitPwm (void)
{
// ------------------CMOD------------------|
// 7 6 5 4 | 3 2 1 0
// CIDL × × × × CPS1 CPS0 ECF
//CPS1 CPS0 = 00 外部晶振/12//CPS1 CPS0 = 01 外部晶振/2
//CPS1 CPS0 = 10 Timer0溢
//CPS1 CPS0 = 11 ECI/P3.4输入
/* CMOD=0X02;
CL=00;
CH=00;
CCAP0L=0XC0;
CCAP0H=0XC0;
CCAPM0=0X42;
CR=1;
*/
CMOD = 0x02;
//CCON =0;
CL = 0;
CH = 0;
//PCA_PWM0=PCA_PWM0&0XFD; //CCAP1H=0;始终输出1 PCA_PWM1 EPC1H EPC1L
CCAP0L = 0;//INIT_PWM_VAL; OUT0--'H'
CCAP0H = 0;//INIT_PWM_VAL;
CCAPM0 = 0x42; //pwm工作模式
//PCA_PWM1=PCA_PWM1|0X02; //CCAP1H=255;始终输出0 PCA_PWM1 EPC1H EPC1L
//PCA_PWM1=PCA_PWM1&0XFD; //CCAP1H=0;始终输出1 PCA_PWM1 EPC1H EPC1L
CCAP1L = 0;//INIT_PWM_VAL; OUT0--'H'
CCAP1H = 0;//INIT_PWM_VAL;
CCAPM1 = 0x42; //pwm工作模式
//IP = 0x40;
//IPH = 0x40;
CR=1;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -