標題:
最近寫了一個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