51单片机IO口输出高电平时,接近VCC,可以按VCC来计算。
你使用5V供电,IO输出高电压平应该按5V计算。
LED限流电阻= ( 5V - led工作时端电压 ) / led工作电流
LED电压一般 2到3V,按平均2.5V,工作电流按10ma
限流电阻= (5-2.5)V/10ma = 0.25k = 250欧,一般选200-1000欧都可以
直接给你个我写的pwm函数 在形参里填数即可控制pwm占空比 后面加个10k电阻和104的电容滤波 就可以实现0-5v输出了
void PWM(unsigned int DUTY) //9bit (范围max 0x1ff min 0x000)
{
CMOD=0x02; //0000 010 使用TO溢出计数 0 禁止PCA中断
CCON=0x40; //01 000 000 启动PCA模块
CCAPM1=0x42; //0100 0010 脉宽调节方式 8位PWM 无中断
PCA_PWM1=(DUTY>>7); //pwm0 高1位
CCAP1H=(DUTY&0XFF); //pwm0 低8位
}
直接给你个我写的pwm函数 在形参里填数即可控制pwm占空比 后面加个10k电阻和104的电容滤波 就可以实现0-5v输出了
void PWM(unsigned int DUTY) //9bit (范围max 0x1ff min 0x000)
{
CMOD=0x02; //0000 010 使用TO溢出计数 0 禁止PCA中断
CCON=0x40; //01 000 000 启动PCA模块
CCAPM1=0x42; //0100 0010 脉宽调节方式 8位PWM 无中断
PCA_PWM1=(DUTY>>7); //pwm0 高1位
CCAP1H=(DUTY&0XFF); //pwm0 低8位
}
PWM只适合具有惯性环节的模拟控制,不是标准的模拟量,最好用DA芯片来实现,可以选串行接口的DA
单片机输出数据 经过DA转换再放到到5V(MAX)