STC单片机3路PWM波形输出并串口打印当前脉冲值

Posted perseverance52

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STC单片机3路PWM波形输出并串口打印当前脉冲值相关的知识,希望对你有一定的参考价值。

【STC单片机】3路PWM波形输出并串口打印当前脉冲值


本次实验结合上一篇的实验基础,将实际的脉冲时间值从串口打印输出。测试的芯片型号:STC15W408AS,自制的开发板,采用外部晶振16MHz。《【开源分享】自制STC15W408AS开发板

  • 3路PWM脉冲值输出的时间
  • 3路脉冲输出时间串口输出的数据,结合同时间段,在逻辑分析仪上对P25P26P27引脚上采集波形数据的对比即可相互验证
  • pwm0
  • pwm1
  • pwm2
  • 最大脉冲占空比以及最小占空比值:PWM MAX:5919;PWM MIN:80
选择的时钟脉冲个数。
#define		PWM_HIGH_MIN	80			//限制PWM输出的最小占空比, 避免中断里重装参数时间不够。
#define		PWM_HIGH_MAX	(PWM_DUTY - PWM_HIGH_MIN)		//限制PWM输出的最大占空比。

主程序




/*************	功能说明	**************

双串口全双工中断方式收发通讯程序。
注意:
通过PC向MCU发送数据, MCU收到后通过串口把收到的数据原样返回.

******************************************/


#include	"config.h"
#include "stdio.h"
#include "USART.h"
#include "PWM.h"

void  delay_ms(unsigned int ms)

     unsigned int i;
	 do
	      i = MAIN_Fosc / 13000;
		  while(--i)	;   //14T per loop
     while(--ms);




//========================================================================
// 函数: void main(void)
// 描述: 主函数。
// 参数: none.
// 返回: none.
// 版本: VER1.0
// 日期: 2014-11-28
// 备注: 
//========================================================================
void main(void)

	
			PCA_Init();	//PCA初始化
//	P0M1 = 0;	P0M0 = 0;	//设置为准双向口
//	P1M1 = 0;	P1M0 = 0;	//设置为准双向口
//	P2M1 = 0;	P2M0 = 0;	//设置为准双向口
	P2M1 &= ~(0xe0);	//P2.7 P2.6 P2.5 设置为推挽输出
	P2M0 |=  (0xe0);
	P3M1 = 0;	P3M0 = 0;	//设置为准双向口
//	P4M1 = 0;	P4M0 = 0;	//设置为准双向口
//	P5M1 = 0;	P5M0 = 0;	//设置为准双向口
//	P6M1 = 0;	P6M0 = 0;	//设置为准双向口
//	P7M1 = 0;	P7M0 = 0;	//设置为准双向口
		//	S1_USE_P30P31();
 InitSerialPort(); 		//初始化串口,波特率9600,8bit数据位,1停止位,无校验
	EA = 1;	//允许总中断

//	PrintString1("STC15F2K60S2 UART1 Test Prgramme!\\r\\n");	//SUART1发送一个字符串

	while (1)
	
		delay_ms(500);	
		P10 = !P10;
		if(++pwm0 >= PWM_HIGH_MAX)  pwm0 = PWM_HIGH_MIN;
		PWMn_Update(PCA0,pwm0);

		if(++pwm1 >= PWM_HIGH_MAX)	pwm1 = PWM_HIGH_MIN;
		PWMn_Update(PCA1,pwm1);

		if(++pwm2 >= PWM_HIGH_MAX)	pwm2 = PWM_HIGH_MIN;
		PWMn_Update(PCA2,pwm2);
		
		printf("pwm0:%u \\t pwm1:%u \\t pwm2:%u\\r\\n",pwm0,pwm1,pwm2);	//SUART1发送一个字符串
	





程序工程架构

程序资源

链接:https://pan.baidu.com/s/1N8SjaS6-zahovju0rCUQ3w 
提取码:sa77

以上是关于STC单片机3路PWM波形输出并串口打印当前脉冲值的主要内容,如果未能解决你的问题,请参考以下文章

STC15W408AS单片机3路PWM输出波形实测

STC153路PWM波形输出示例演示

STC15系列CCP/PWM/PCA介绍

11.STC15W408AS单片机CCP/PCA/PWM应用

11.STC15W408AS单片机CCP/PCA/PWM应用

11.STC15W408AS单片机CCP/PCA/PWM应用