怎么用51单片机控制输出稳定连续的0~5V的电压?
6个回答
展开全部
直接给你个我写的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位
}
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位
}
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 后面加个运放么?
追答
不同的芯片不一样,如果是ADC0832(电流输出型)需要加一个运放,如果是MAX187(电压输出型)则不用。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
单片机输出数据 经过DA转换再放到到5V(MAX)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询