




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
四川职业技术学院单片机技术课程设计报告设计题目: 直流电机的控制 专 业: 机电一体化技术 班 级: 2009级机电1班 设计小组: 第 12 组 组 员: 叶卫、胡玉江、严健 指导教师: 李海兵 刘宸 日 期:2011.5.16 2011.5.27 第 18 页四川职业技术学院课程设计(论 文)任务书 电子电气工程 系 机电一体化技术 专业 2009级09机电1班学生叶卫、胡玉江、严健 学号 26 24 19 日期 2011.5.27 课程设计(论文)内容与要求:一、设计任务 利用单片机系统设计一个对直流电机的控制2、 课程设计要求 1给定条件(1) AT89S52单片机(2) 四位显示数码管(3) 电解电容,电阻,按钮,开关,导线2技术指标(1)实现电动机正反转控制(2)PWM脉冲宽度调制,实现对电机的调速(3)可用键盘设置对电机进行正转、停止、反转、快速、慢速。指导教师 李海兵 刘宸 课程设计成绩评定表课 程 设 计 评 语: 指导教师(签名) 时间 年 月 日课程设计成绩: 指导教师(签名) 时间 年 月 日目 录一、摘要5二、认识单片机51、几个基本概念52、认识AT89S51、PWM5三、课题设计71、课题目标72、课题分析8四、系统硬件设计81、硬件清单82、硬件仿真图93、焊接实物图9五、软件设计91、软件设计思路92、软件设计框图103、PWM的具体控制程序11六、编译程序111、源程序112、程序设计说明133、软件仿真效果图14七、程序设计心得体会16八、参考文献16一、摘要本设计以AT89S52单片机为核心,以4个按键作为输入达到控制直流电机的启停、速度和方向调整。在设计中,采用了PWM技术对直流电机进行控制,PWM是按一定规律改变脉冲列的脉冲列脉冲幅度,以调节输出量值和波形的一种调制方式。是一种对模拟信号电平进行数字编码的方法,通过高分频率计数器的使用对模拟信号的电平进行编译。PWM系统在很多方面具有较大的优越性:主电路简单,所需功率器件少,低速性好,调节范围宽;开关频率高,快速响应好;功率损耗小,装置效率较高。PWM变换器有不可逆和可逆两类,可逆变换器又有双极式、单级式和受限单级式等多种电路。应用最普遍的两种方式:受限单级性方式驱动和受限倍频单极性驱动方式。二、认识单片机 1、几个基本概念 单片机就是在一块硅片上集成了CPU、存储器、输入、输出接口、振荡电路、计数器等的一块集成电路。单片机最小系统就是能让单片机工作起来的一个最基本的组成电路。 2、认识AT89S51、PWMAT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS 8位微处理器,俗称单片机。AT89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C2051是它的一种精简版本。AT89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。主要特性: 与MCS-51 兼容4K字节可编程闪烁存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz三级程序存储器锁定1288位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。振荡器特性:XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。PWM调速 近年来,直流电机的结构和控制方式都发生了很大的变化。随着计算机进入控制领域,以及新型的电力电子功率元器件的不断出现,使采用全控型的开关功率元件进行脉冲调制(PWM)控制方式以成为绝对主流。这种控制方式很容易实现在单片机控制中的实现,从而为直流电机控制数字化提供平台三、课题设计 1、课题目标 利用单片机和PWM组成系统,通过程序的控制,实现对直流电机的控制,能控制速度和方向,通过控制脉冲的方向达到控制电动机正反转的目的。 2、课题分析电机调速:需采用由达林顿管组成的H型PWM电路。用单片机控制达林顿管使之工作在占空比可调的开关状态,精确调整电动机转速。这种电路由于工作在管子的饱和截止模式下,效率非常高;H型电路保证了可以简单地实现转速和方向的控制;电子开关的速度很快,稳定性也极佳,是一种广泛采用的PWM调速技术。PWM调速方式:单极性工作制。单极性工作制是单片机控制口一端置低电平,另一端输出PWM信号,两口的输出切换和对PWM的占空比调节决定电动机的转向和转速。PWM的调脉方式:调脉宽的方式有三种:定频调宽、定宽调频和调宽调频。我们采用了定频调宽方式,因为采用这种方式,电动机在运转时比较稳定;并且在采用单片机产生PWM脉冲的软件实现上比较方便。本任务中,PWM的原理对于小规模直流电动机调速系统,使用微型机和单片机是极为方便的。其方法是通过改变电动机定子电压接通和断开时间的比值(即占空比)来控制马达速度,这种方法称为脉冲宽度调速。四、系统硬件设计 1、硬件清单三极管S90148个按键5个AT89S52一只下载插座1个单片机电路板1块10uF电容1个1K电阻8只12MHz晶振1只10K电阻1只470欧电阻8只三极管S90152个二极管4个20pF电容2个连接导线若干四位数码管1个 2、硬件仿真图3、焊接实物图五、软件设计 5.1软件设计整体介绍 本系统编程部分工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各部分功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和LED显示等部分的设计。单片机资源分配如下表:P0显示模块接口外部中断0(P3.2)键盘中断P1键盘模块接口P2.0/P2.1PWM电机驱动接口内部定时器0系统时钟5.2软件设计流程图系统主函数流程PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:void delay(unsigned char dlylevel) int i=50*dlylevel; while(-i); 此函数为带参数DLYLEVEL,约产生DLYLEVEL*400us的延时,因此一个脉冲周期可以由高电平持续时间系数hlt和低电平持续时间系数llt组成,本设计中采用的脉冲频率为25Hz,可得hlt+llt=100,占空比为hlt/(hlt+llt),因此要实现定频调宽的调速方式,只需通过程序改变全局变量hlt,llt的值,该子程序流程图如图四。键盘中断处理子程序:采用中断方式,按下键,单片机P3.2脚产生一负跳沿,响应该中断处理程序,完成延时去抖动、键码识别、按键功能执行。调速档、持续加/减速:调速档通过(0-6)共七档固定占空比,即相应档位相应改变hlt,llt的值,以实现调速档位的实现。而要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少1%占空比(即hlt+/-;llt-/+),其程序流程图如图五。显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各个LED管要显示的值。显示子程序为一带参子程序,参数为显示缓存的数组名,通过for(i=0;i8;i+)方式对每位加上位选码,送到P0口并进行一两毫秒延时。该显示子程序只对各个LED管分别点亮一次,因此在运行过程中,每秒执行的次数不应低于每秒24次。定时中断处理程序:采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值3CB0H可定时50ms,即系统时钟精度可达0.05s。当50ms定时时间到,定时器溢出则响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。对于一个数的显示,先应转成BCD码,即取出每一个位,分别送入显示缓存区,对于转BCD的算法,应对一个数循环除10取模,直至为0,程序如下:dodispbuffbcd_p=bechange%10;/dispbuff为显示缓冲区数组 bcd_p+;while(bechange/=10) /disp_p为数组指针5.3软件设计中的特点:1、 对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止则由于当前速度逐渐降至零。这样有利于保护电机,如电机运用于小车上,在启动上采用此方式也可加大启动速度,防止打滑。2、 对于运行时间的计算、显示。配合传感器技术可用于计算距离,速度等重要的运行数据。3、 键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。 六、编译程序 1、源程序#include #define uchar unsigned char #define uint unsigned int sbit open=p20; sbit close=p21; sbit swap=p22; sbit sub_speed=p23; sbit abb_speed=p24; sbit PWM1=p30; sbit PWM2=p31; sbit E=p37; sbit RW=P36; sbit RS=p35; sbit test=p34; int time=0; int high=20; int period=30; int change=0; int flag=0; int num_medium=0; int num_display=0; int count_speed=0; uchar wword=0x30,0x31,0x32,0x33,0x34,0x35,0x36,0x37,0x38,0x39; void delay(chart) uint i; while (t) /对于12MHz时钟定时for(i=0;i125;i+)t-; /写命令函数LCP void wc51r(uchar j) RS=0; RW=0; P1=j E=1; E=0; dalay(3); /写数据函数LCP void wc51ddr(uchar j) RS=1 RW=0 P1=j E=1 E=0 delay(2); /初始化函数LCP void init() wc51r(0x01); wc51r(0x38); wc51r(0x0c); wc51r(0x06); void time0_int(void)intterrupt time+ THO=0xec TLO=0x78; if change=0 PWM2=1; if(time=high) PWM1=0; else if(time=period) PWM1=1; time=0; else PWM1=1 if(time=high)PWM2=0;else if(time=period) PWM2=1 time=0; void datamnee uint data MM,NN; wc51r(0xc2); wc51ddr(s); wc51ddr(p); wc51ddr(e); wc51ddr(d); wc51ddr(0x30); NN=num_display%100; MM=num_display/100; wc51ddr wwordMM; MM=NN/10; NN=NN%10; wc51ddr(wwordMM); wc51ddr(wwordNN); void motor_control() if (open=1)EA=1:if(close=1)EA=0;if(swap=1)change=change; while(swap!=0) if(sub_speed=1)high+; if(high=30) EA=0; while(sub_speed!=0) if(abb_speed=1) high-; if(high=5) high=5; while(add_speed!=0) void main() P2=0x00; ET0=1; ET1=1; TMOP=0x11; THO=0xec;/定时器T0设置参数 TLO=0x78; TH1=0x3c;/定时器T1设置参数 TL1=0xb0; TR0=1; TR1=1; init();/液晶显示初始化程序 while(1) wc51r(0x84);wc51ddr(H);WC51ddr(e);wc51ddr(l);wc51ddr(o);if(test=0) num_medium+;datamade();motor_control(); 2、程序设计说明 首先定义变量flag为定义Key1按键,Tocount为Key2按下的次数,把每一个周期平均分成多个点,如:100Hz每个周期10ms,为了方便将每个周期分成250个点,则每两个点之间的时间间距为40微秒,期分别分为250个点,则每两个点之间的时间相差40微秒,当Key1按下时可以实现;200Hz每个周期5ms,则将每个周期分别分为125个点,每两个点之间的时间也相差40微秒,当key2按下一次Tocount由1自增为2,n=250/Tocount=125,这样可以实现。频率300-1000Hz一次类推。对于这个固定的时间间隔,程序中采用定时中断完成。为了保证定时的准确,在定时中断服务程序仅设置已被标志。通过Key1来控制,当第一次按键时,实现锯齿波;当第二次按键时,实现方波的切换。以此循环,实现锯齿波和方波之间的切换。采用DAC0832数/模转换电路,输出5V的模拟电压。由于DAC0832采用
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025办公用品耗材购销合同范本
- 2025国家能源集团煤炭经营分公司高校毕业生招聘(第二批)人员(已结束)模拟试卷及答案详解(必刷)
- 2025年山东师范大学公开招聘人员(23名)考前自测高频考点模拟试题及完整答案详解1套
- 2025江西赣南医科大学高层次人才招聘180人模拟试卷附答案详解
- 2025江苏连云港市灌南县招聘事业单位人员43人模拟试卷附答案详解
- 2025签订汽车销售合同的注意事项
- 2025江苏金灌投资发展集团有限公司、灌南城市发展集团有限公司招聘高层次人才10人考前自测高频考点模拟试题及一套答案详解
- 2025内蒙古恒正实业集团有限公司招聘10人考前自测高频考点模拟试题及参考答案详解一套
- 2025年无固定期限合同内容如何确定
- 2025年湖南娄底市城市发展控股集团有限公司外派人员选聘模拟试卷及答案详解(名校卷)
- 国家公务员行测数量关系(数字推理)模拟试卷1(共253题)
- 北师大版四年级数学上册第五单元《方向与位置》(大单元教学设计)
- (高清版)JTG 5211-2024 农村公路技术状况评定标准
- 人教精通版6年级上下册重点单词和句型默写
- 《民航客舱设备操作与管理》课件-项目二 客舱服务设备
- 大隐静脉消融术手术
- 三D打印公开课
- 生而逢盛世青年当有为 (模板)
- 养殖险的理赔培训课件
- 威士忌培训课件
- DB51T 3149-2023 四川省电力用户受电设施及配电设施运维检修服务管理规范
评论
0/150
提交评论