- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于单片机直流调速系统课程设计
天 津 理 工 大 学
课程设计报告
题目: 基于单片机的直流调速系统设计
学生姓名 孙万亭 学号
届 2012 班级 电三
指导教师 信建国三极管三极管电机PWM电路驱动的模块
三 系统的软件设计
系统的软件设计分析在进行单片机控制系统设计时,除了系统硬件设计外,大量的工作就是如何根据每个生产对象的实际需要设计应用程序。因此,软件设计在控制系统设计中占重要地位。
键盘向单片机输入相应控制指令,由单片机通过P3.7输出与转速相应的PWM脉冲,另一口输出高电平,驱动H型桥式电动机控制电路,实现电动机转向与转速的控制。电动机所处速度级以速度档级数表示。速度分4档,快慢与电动机所处速度级快慢一一对应。
在程序中通过软件产生PWM,送出预设占空比的PWM波形。PWM(脉冲宽度调制)是一系列周期固定、占空比可调的脉冲系列,由于每个脉冲的高电平时间和低电平时间之和必须等于周期数,所以输出电平的维持时间必须由定时器来控制。设PWM周期为T,高电平时间为TH,低电平时间为TL,电压为VCC,则输出电压的平均值为:UAV =VCC*TH/(TH+TL)=VCC*TH/T=aVCC,当VCC固定时,其电压值取决于PWM波形的占空比a,而PWM的占空比由单片机软件内部用于控制PWM输出的寄存器值决定。
软件主要由3部分组成:主程序、键盘扫描程序、中断处理程序。主程序流程如图所示。图
示波器显示PWM方波:
高速挡(正转):
低速挡(正转):
反转状态:
课程设计参考资料
[1]赵影.[M] .北京:工业出版社,20.
[2]何立民.单片机与嵌入式系统应用[J]. 基于HCS12的小车智能控制系统设计.2007,(3) :51-53,57.
[3]方建军.何广平.智能机器人[M].北京:化学工业出版社.2004 :5-9.
[4]张立.电子世界[J].电动小车的循迹. 2004(6):45.
[5] /forum/thread/view/99__1.html.
[6]滕志军.今日电子[J].基于超声波检测的倒车雷达设计.2006,(9):15-17.
[7]徐科军.传感器与检测技术[M].北京:电子工业出版社,2007:110-113,160-161.
[8]潘新民.王燕芳.微型计算机控制技术实用教程[M].北京:电子工业出版社,2007:75-76,118-119.//PWM控制程序
//================================================
//使用T2作为PWM的定时器
//+-----+-----+------+|
//| 电机 ||
//+-----+-----+------+|
//|ML_D1|ML_D2| 控制||
//+-----+-----+------+|
//| 0 | 0 | 停止||
//| 0 | 1 | 正 ||
//| 1 | 0 | 反 ||
//| 1 | 1 | 禁用||
//+-----+-----+------+|
//================================================
#include REG52.H
#include PubDefine.h
#include MotorCtrl.h
//================================================
sbit P17=P3^7;
//================================================
code int KP=Kp; //比例常数
code int KD=Kd; //微分常数
code int KI=Ki; //积分常数
//================================================
//======== 初始化CPU===============================
void Ini_T0(void)//T0:位计数器
{
TMOD = 0xF0;
TMOD |= 0x05; //计数方式
TL0 = 0;
TH0 = 0;
PT0=0; //低优先级
ET0=0; //T0中断禁止
TR0=1;
T0=1; //P3^4=1
}
//===================================================
void Ini_T1(void)//T1:
文档评论(0)