51单片机
2013年12月01日 17:51 发布者:李哲懿
各位前辈、大神: 本人是在校学生,现在有求于给位,请给位前辈给与帮助!急急急急!《基于51单片机的直流电机PWM调速控制设计》的程序。
基本要求:利用单片机生成不同宽度的PWM波形,进行直流电机的速度调节。设置四个按键K1,K2,K3,K4:按K1,K2进行直流电机的加速控制和减速控制(五级以上),按K3让电机正反转,相应的级别和正反转用led或数码管显示,按K4启停电机。(用c语言或汇编来编写程序)
只需要程序!希望给位前辈能给与帮助!谢谢! (本人QQ邮箱:1486273950@qq.com )
网友评论
tyw 2013年12月12日
129261
129262
129263
129261
129262
129263
deli333 2013年12月14日
#include "pwm.h"
void pwm_out(uchar pwm_data)
{
CCON = 0; //初始化PCA控制寄存器
//PCA定时器停止
//清除CF标志
//清除模块中断标志
CL = 0; //复位PCA寄存器
CH = 0;
CMOD = 0x04; //设置PCA时钟源
//禁止PCA定时器溢出中断
PCA_PWM1 = 0x00; //PCA模块0工作于8位PWM
CCAP1H = pwm_data; //PWM0的占空比为87.5% ((100H-20H)/100H)
CCAPM1 = 0x42; //PCA模块0为8位PWM模式
CR = 1; //PCA定时器开始工作
}
void pwm_init()
{
P_SW1&=~(CCP_S0 | CCP_S1);
}
#include "pwm.h"
void pwm_out(uchar pwm_data)
{
CCON = 0; //初始化PCA控制寄存器
//PCA定时器停止
//清除CF标志
//清除模块中断标志
CL = 0; //复位PCA寄存器
CH = 0;
CMOD = 0x04; //设置PCA时钟源
//禁止PCA定时器溢出中断
PCA_PWM1 = 0x00; //PCA模块0工作于8位PWM
CCAP1H = pwm_data; //PWM0的占空比为87.5% ((100H-20H)/100H)
CCAPM1 = 0x42; //PCA模块0为8位PWM模式
CR = 1; //PCA定时器开始工作
}
void pwm_init()
{
P_SW1&=~(CCP_S0 | CCP_S1);
}
deli333 2013年12月14日
#define CCP_S0 0x10 //P_SW1.4
#define CCP_S1 0x20 //P_SW1.5
#define CCP_S0 0x10 //P_SW1.4
#define CCP_S1 0x20 //P_SW1.5
cary 2013年12月18日
不错额
不错额
shunyijie 2013年12月18日
顺易捷pcb打样48元起,联系QQ800055586 电话:韩先生13480101190
顺易捷pcb打样48元起,联系QQ800055586 电话:韩先生13480101190
hbzhangtuo 2014年01月01日
楼主有点懒啊!
楼主有点懒啊!
Hugo801122 2014年02月18日
小弟,单片机编程要精通还是要多亲自动手啊!
小弟,单片机编程要精通还是要多亲自动手啊!
longfenghugui 2014年03月03日
中断产生一个基本步长的定时,设定一个速度变量——(主程序中也有一个设定变量,可以通过读取加减速键闭合改变变量的大小),定时器中断一次速度变量加一——(自行设定变速的步长,也可是2,也可是3,和主程序的加减配合)。比较两变量是否相等,相等则PWM输出引脚取反。这样就通过改变设定变量的值,就实现了速度的调整。
学单片机要多读程序,软硬件结合,多去图书管读读例子,不要管他是哪一年的书,虽然有的可能是2000年的
中断产生一个基本步长的定时,设定一个速度变量——(主程序中也有一个设定变量,可以通过读取加减速键闭合改变变量的大小),定时器中断一次速度变量加一——(自行设定变速的步长,也可是2,也可是3,和主程序的加减配合)。比较两变量是否相等,相等则PWM输出引脚取反。这样就通过改变设定变量的值,就实现了速度的调整。
学单片机要多读程序,软硬件结合,多去图书管读读例子,不要管他是哪一年的书,虽然有的可能是2000年的
QQSnow 2014年04月11日
学习学习
学习学习
luly8818 2014年04月28日
小弟,单片机编程要精通还是要多亲自动手啊!
小弟,单片机编程要精通还是要多亲自动手啊!
pcbkey 2015年01月31日
学习
学习
你需要先把问题分解
1、PWM模块,PWM是驱动电机的调速的一个方法,先用MCU做出来
2、电机的正反转,需要做换向电路和对应的程序
3、按键处理,这个应该是比较简单的了