找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 5231|回复: 2
收起左侧

最近写了一个15单片机6路PWM独立输出的程序经过测试合适的,分享下。

[复制链接]
ID:190258 发表于 2018-3-21 09:36 | 显示全部楼层 |阅读模式
#include "include.h"

void pwm_init()
{

P1M0|=0xc0               ;//(00000000)
P1M1=0     ;//(11000000)

P2M0|=0x8e                     ;//(00000000)
P2M1=0           ;//(10001110)
PWM2T1=0x0001;
PWM2T2=0;
PWM3T1=0x0001;
PWM3T2=0;
PWM4T1=0x0001;
PWM4T2=0;
PWM5T1=0x0001;
PWM5T2=0;
PWM6T1=0x0001;
PWM6T2=0;
PWM7T1=0x0001;
PWM7T2=0;
P_SW2=0X80;           //特殊功能寄存器位于扩展RAM区域
PWMCFG=0X00;   //初始电平全低电平,不用ADC
PWMCKS=0X0B;   //系统时钟12分频(11+1)
PWMC=20000;           //周期20ms--20000us12M晶振12分频时钟
PWMCR|=0X80;

}
void PWM1_control(u16 pwm)
{
PWM2T1=PWMC-PWM2T2;
PWM2T2=pwm;                  //脉宽控制-高电平脉宽时间
PWM2CR=0X08;          //输出引脚PWM2-P2.7
PWMCR|=0X01;
}
void PWM2_control(u16 pwm)
{

PWM3T1=PWMC-PWM3T2;
PWM3T2=pwm;                  //脉宽控制-高电平脉宽时间

PWM3CR=0X00;          //输出引脚PWM2-P2.1

PWMCR|=0X02;
}

void PWM3_control(u16 pwm)
{

PWM4T1=PWMC-PWM4T2;
PWM4T2=pwm;                  //脉宽控制-高电平脉宽时间

PWM4CR=0X00;          //输出引脚PWM2-P2.2
PWMCR|=0X04;
}

void PWM4_control(u16 pwm)
{

PWM5T1=PWMC-PWM5T2;
PWM5T2=pwm;                  //脉宽控制-高电平脉宽时间

PWM5CR=0X00;          //输出引脚PWM2-P2.3
PWMCR|=0X08;
}

void PWM5_control(u16 pwm)
{

PWM6T1=PWMC-PWM6T2;
PWM6T2=pwm;                  //脉宽控制-高电平脉宽时间

PWM6CR=0X00;          //输出引脚PWM2-P1.6
PWMCR|=0X10;
}

void PWM6_control(u16 pwm)
{

PWM7T1=PWMC-PWM7T2;
PWM7T2=pwm;                  //脉宽控制-高电平脉宽时间

PWM7CR=0X00;          //输出引脚PWM2-P1.7
PWMCR|=0X20;
}


评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:59423 发表于 2018-3-22 18:20 | 显示全部楼层
很棒的程序,用来参考。
回复

使用道具 举报

ID:243748 发表于 2018-3-26 23:22 来自手机 | 显示全部楼层
有源程序电路图吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表