標題: 最近寫了一個15單片機6路PWM獨立輸出的程序經過測試合適的,分享下。 [打印本頁]

作者: ygd6650626    時間: 2018-3-21 09:36
標題: 最近寫了一個15單片機6路PWM獨立輸出的程序經過測試合適的,分享下。
#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區(qū)域
PWMCFG=0X00;   //初始電平全低電平,不用ADC
PWMCKS=0X0B;   //系統(tǒng)時鐘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;
}



作者: zhangjianhu    時間: 2018-3-22 18:20
很棒的程序,用來參考。
作者: wuxishun    時間: 2018-3-26 23:22
有源程序電路圖嗎




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1