收藏 分享(赏)

单片机课程设计_基于89C51的直流电机调速系统的设计.doc

上传人:精品资料 文档编号:10163521 上传时间:2019-10-15 格式:DOC 页数:21 大小:4.76MB
下载 相关 举报
单片机课程设计_基于89C51的直流电机调速系统的设计.doc_第1页
第1页 / 共21页
单片机课程设计_基于89C51的直流电机调速系统的设计.doc_第2页
第2页 / 共21页
单片机课程设计_基于89C51的直流电机调速系统的设计.doc_第3页
第3页 / 共21页
单片机课程设计_基于89C51的直流电机调速系统的设计.doc_第4页
第4页 / 共21页
单片机课程设计_基于89C51的直流电机调速系统的设计.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

1、 单片机系统课程设计单片机系统课 程 设 计成绩评定表设计课题 : 直流电机调速系统 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 学 号 : 指导教师 : 设计地点 : 设计时间 : 指导教师意见:成绩:签名: 年 月 日单片机系统课程设计单片机系统课 程 设 计课程设计名称: 直流电机调速系统 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 课程设计时间: 2014-12-29 2015-01-09 单片机系统课程设计单片机系统 课程设计任务书学生姓名 专业班级 学号题 目课题性质 工程设计 课题来源 选题指导教师主要内容(参数)1. 电机

2、起动2. 多级调速,包括提速、减速3. 电机停车任务要求(进度)第 1-2 天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第 3-4 天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第 5-6 天:软件设计,编写程序。第 7-8 天:实验室调试。第 9-10 天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张迎新单片微型计算机原理、应用及接口技术(第 2 版)2 程国刚 陈跃琴 崔荔蒙 51 单片机典型模块开发查询手册 电子工业出版社3 程国刚 杨后川 PRO

3、TEUS 原理图设计与电路仿真 电子工业出版社审查意见系(教研室)主任签字: 年 月 日 单片机系统课程设计基于 89C51 的直流电机调速系统的设计目录1 引言 12 总体方案设计 .13 硬件电路设计 33.1 复位电路 33.2 振荡电路 .43.3 驱动电路 .43.4 键盘电路 .53.5 显示电路 .64 软件设计 74.1 软件总流程图 .74.2 中断流程图 85 功能开发调试及硬件仿真 85.1 开发软件介绍 85.2 仿真结果 96 总结 10附录 A 总原理图 .11附录 B 部分原程序 .12单片机系统课程设计01 引言在实际应用中,电动机作为把电能转换为机械能的主要设

4、备,一是要具有较高的能量转换效率;二是应能根据生产工艺的要求调整转速。电动机的调速性能如何对提高产品质量、提高劳动生产率和节省电能有着直接的决定性影响。因此,调速技术一直是研究的热点。本次设计采用了普中科技 51 单片机开发板,配以 AT89C51 单片机以及ULN2003D 芯片驱动直流电机,并在数码管上显示当前级数。可以实现按键起动、增减速、停车的功能。调速方面,通过单片机发送不同占空比的 PWM 波形,从而改变电机的电枢电压,进而实现对直流电机的调速。关键词:AT89C51 单片机 PWM 多级调速 数码管显示2 总体方案设计硬件方案:以 AT89C51 单片机为核心的直流电机控制系统控

5、制简图如图2.1 直流电机调速方案方框图所示,由单片机输出 PWM 信号,并由 I/O 口输出,经驱动电路输出给电机,从而控制电机得电、断电以及调整电枢电压。单片机上电后,系统进入准备状态。当按动启动按钮后,根据预设值电机进入一级转速工作;根据不同需求的按下加减速按钮,调整 I/O 口的预定值,从而可以控制 PWM 波形的占空比,进而控制电压的大小。控制电机的加减速,并在数码管上显示出当前的预设值。A T 8 9 C 5 1复位电路时钟电路数码管驱动电路键盘图 2.1 直流电机调速方案方框图单片机系统课程设计1AT89C51 是一种带 4K 字节 FLASH 存储器(FPEROM Flash

6、Programmable and Erasable Read Only Memory)的低电压、高性能 CMOS 8 位微处理器,俗称单片机。AT89C2051 是一种带 2K 字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 1000 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。AT89C51 提供以下标准功能:4k 字节 Flash 闪速存储器,128 字节内部RAM,32 个 I/O 口线,两个 16 位定时/计数器,一个 5 向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时

7、,AT89C51 可降至 0Hz 的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止 CPU 的工作,但允许 RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存 RAM 中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。软件方案:PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM 可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。在 PWM 驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电

8、枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM 又被称为“开关驱动装置” 。单片机由软件来实现 PWM 调整:在 PWM 调速系统中占空比 D 是一个重要参数在电源电压 Ud 不变的情况下,电枢端电压的平均值取决于占空比 D 的大小,改变 D 的值可以改变电枢端电压的平均值从而达到调速的目的。改变占空比 D 的值有三种方法:A、定宽调频法:保持 t1 不变,只改变 t2,这样使周期也随之改变。B、调宽调频法:保持 t2 不变,只改变 t1,这样使周期也随之改变。C、定频调宽法:保持周期 T(或频率)不变,同时改变 t1 和 t。前两种方法在调速时

9、改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整,此种方式可简化硬件电路,操作性强等优点。单片机系统课程设计2本次设计中,采用定时器作为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确。3 硬件电路设计3.1 复位电路复位电路和时钟电路是维持单片机最小系统稳定运行的基本模块和最重要的内部因素之一。复位电路通常分为两种:上电复位和手动复位,如图 3.1,图3.2 所示。图 3.1 上电复位电路图 3.2 手动复位电路单片机系统课程设计

10、3有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,需要经常手动复位。所以本次设计选用手动复位。3.2 振荡电路振荡电路是单片机系统工作的核心,它提供单片机工作的“动力” ,并关系到单片机运行速度的快慢、应用系统稳定性的高低等。一般可以使用晶体或晶振来搭建,他们的主要区别在于晶体需要外接振荡电路才能够起振,而晶振只需要在相应的引脚上提供电源和地信号既可以发出脉冲信号。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对

11、于选频信号强度准确度都有好处,本次设计选取12.000M 无源晶振接入 XTAL1 和 XTAL2 引脚。并联 2 个 30pF 陶瓷电容帮助起振。振荡电路如图 3.3 所示图 3.3 振荡电路3.3 驱动电路在实际的直流电机驱动电路应用中,可以使用 H 桥来驱动直流电机,也可单片机系统课程设计4以使用相应的驱动芯片来驱动直流电机。H 桥采用 4 个功率 MOSFET 管,两两组成一个桥壁,每个三极管旁边有一个续流二极管,当对角线上两个三极管打开时,电机朝一个方向运转;另一条对角线上的三极管打开时,电机反转。功率MOSFET 管可以将微弱的信号放大成幅值较大的电信号,是单片机系统中最常用的功率

12、驱动器件。除了使用三极管搭建 H 桥驱动外,还可以使用达林顿管等驱动芯片来驱动直流电机。达林顿管又称复合管,原理是将两只三极管适当地连接在一起,组成一只等效的新三极管。放大倍数是两只三极管放大倍数之积,常常用于驱动较大驱动电流的器件。常见的达林顿集成芯片有 ULN2003 和 ULN2803。由于本次设计使用的开发板上自带了 ULN2003 芯片,所以采用 ULN2003 驱动芯片驱动直流电机。驱动电路如图 3.4 所示。图 3.4 直流电机驱动电路3.4 键盘电路起动、停车、加速、减速四个按键分别与单片机的 P1.0,P1.1 ,P1.2,P1.3相连,然后再与地相连。其电路如图 3.5 所

13、示。单片机系统课程设计5图 3.5 电机起动、停车、加速、减速按键电路3.5 显示电路本次设计中,因需要显示调速等级,故使用一位 8 段数码管用作显示。数码管是单片机系统常用的一种外围显示器件,可以显示一些简单的数字或字符。显示电路如图 3.6 所示图 3.6 一位八段数码管显示电路单片机系统课程设计64 软件设计4.1 软件总流程图通电开机后,CPU 得电,根据软件定义引脚功能,定时器工作方式等。并进入键盘扫描子程序。当检测到键盘动作时,经过延时子程序去抖,确定按键按下后,申请中断。单片机读取键值,并根据软件调节 PWM 波形,向外输出;同时根据按键次数计算端码,向数码管发送。起动默认 3

14、级,数码管显示 3.如图 4.1 所示开始初始化有键按下 ?扫描键盘去抖有键按下 ?根据键值起动 停车 加速 ( 1 5 ) 减速 ( 5 1 )结束是否是否图 4.1 软件总流程图单片机系统课程设计74.2 中断流程图中断由键盘申请,当确定键盘有键按下后,根据扫描出的键值进行计算:若是加速按键则在原来基础上加上按键按动的次数,若是减速按键则减去。计算出此时的等级,根据软件预设调整 PWM 波形,并向数码管输送新的段码。如图 4.2 所示。开始有键按下申请中断读取键值计算等级发送 P W M 发送段码结束图 4.2 中断流程图5 功能开发调试及硬件仿真5.1 开发软件介绍程序开发软件:Keil

15、C51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 KeilC51 生成的目标代码效率非常之高,多数语句生成的汇编单片机系统课程设计8代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。本次设计使用的版本是 Keil uVision4。硬件仿真软件:Proteus 软件是一种低投资的电子设计自动化软件,多达30 多个元件库。Proteus 软件提供多种现实存在的虚拟仪器仪表。此外,Proteus 还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的

16、参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus 软件提供丰富的测试信号用于电路的测试。Proteus 在编译方面支持 Keil 编译器。当电路设计完成之后,为了减少在电路板上调试时的难度,保证电路设计的正确性,将Keil c51 编译生成的*.HEX 文件载入 Proteus 软件,实现电路仿真。5.2 仿真结果初始状态,直流电机半速运转。如图 5.1 所示图 5.1 初始状态下直流电机运行状态按下停止键,直流电机运行状态如图 5.2 所示图 5.2 电机停转按下加速键,直流电机运行状态如图 5.3 所示单片机系统课程设计9图 5.3 直流电机加速

17、按下减速按键,直流电机运行状态如图 5.4 所示图 5.4 直流电机减速6 总结单片机系统课程设计10附录 A 总原理图本次设计总原理图如图附录 A.1 所示附录 B 部分原程序#include #include #define uint unsigned int#define uchar unsigned charuchar led_code10 =0xa0, 0xf9, 0xc4, 0xd0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90;/段单片机系统课程设计11码 0,1,2,3,4,5, 6, 7, 8, 9uchar led_bit4 =1, 2, 4, 8

18、; /位码uchar led_buf4; /显示缓存uchar key_buf4;int num =50; /显示数据int n = 0; / 当前显示位int i = 4; /位消隐参数int m = 0; /按键次数uchar key_code;sbit MOTOR0=P30;sbit MOTOR1=P31;int MOTORPORT0=0;uint MOTORPORT1;int MOTORDIR=0;int MOTORSTOP=0;int counter=0;sbit p10=P10;sbit p11=P11;sbit p12=P12;sbit p13=P13;/*名 称:delayms

19、*说 明:延时子程序*功 能:产生一定时间的延时*输 入:ms 延时时间 1ms 的倍数*/void delayms(uint ms)uint a, b;for (a = 0; a = 1000)/数据在于等于 10000i = 4; /显示 4 位else if (num = 100)/ 数所小于 1000 大于 100i = 3; /显示 3 位else if (num = 10)/数据小于 100 大于 10i = 2; /显示两位单片机系统课程设计13else if (num num)MOTORPORT1=0;counter+;counter=counter%100;/*名称:Key_

20、Scan*说明:*功能:键盘扫描*返回值:按键对应值(015);无键按下返回 0x7f*/unsigned char Key_Scan(void) /unsigned char i, n;unsigned char key_temp;P1 = 0xf0;if (P1 for (i = 0; i 4; i+)P1 = (1 i);n = P1;n if (n != 0xf0)switch (n)case (0xe0): key_temp = i * 4;break;case (0xd0): key_temp = 1+i * 4;break;case (0xb0): key_temp = 2+i

21、* 4;break;case (0x70): key_temp = 3+i * 4;break;default:key_temp = 0x7f;return key_temp;return 0x7f; /如果未按任何键/*名 称:key_dectde*说 明:*功 能:按键释放检测*/unsigned char key_dectde(void)unsigned char temp1, temp2;temp1 = Key_Scan();if (temp1 = 0x7f)return 0x7f;dotemp2 = Key_Scan();单片机系统课程设计15while (temp1 = temp2

22、);return temp1;/*主程序*/void main()TMOD = 0x11;TH0 = 0xD8; /定时器 T0 为方式 1TL0 = 0xf0; /定时器 0 的时间常数(10ms,12MHZ)TR0 = 1; /启动定时器 0TH1 = 0xff; /定时器 T0 为方式 1TL1 = 0x9c;/启动定时器 0TR1=1;IE = 0x8a; /允许定时器 0/1 中断/* 键盘程序*/while (1)/循环if(p10=0)delayms(100);if(p10=0)num+=5;if(p11=0)delayms(100);if(p11=0)num-=5;if(p12=0)delayms(100);if(p12=0)MOTORDIR=!MOTORDIR;if(p13=0)delayms(100);if(p13=0)num=0;if(MOTORDIR=0)MOTOR0=MOTORPORT0;MOTOR1=MOTORPORT1;else if(MOTORDIR=1)MOTOR0=MOTORPORT1;单片机系统课程设计16MOTOR1=MOTORPORT0;

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报