单片机课程设计-基于89C51的电机转速计设计(16页).doc

上传人:1595****071 文档编号:37037083 上传时间:2022-08-29 格式:DOC 页数:16 大小:446KB
返回 下载 相关 举报
单片机课程设计-基于89C51的电机转速计设计(16页).doc_第1页
第1页 / 共16页
单片机课程设计-基于89C51的电机转速计设计(16页).doc_第2页
第2页 / 共16页
点击查看更多>>
资源描述

《单片机课程设计-基于89C51的电机转速计设计(16页).doc》由会员分享,可在线阅读,更多相关《单片机课程设计-基于89C51的电机转速计设计(16页).doc(16页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-单片机课程设计-基于89C51的电机转速计设计-第 11 页单片机系统课 程 设 计成绩评定表设计课题 : 基于89C51的电机转速计设计 学院名称 : 电气工程学院 专业班级 : 学生姓名 : 安徽人在河南 学 号 : 指导教师 : 设计地点 : 31-505 设计时间 : 2018-01-012018-01-14 指导教师意见:成绩: 签名: 年 月 日单片机系统课 程 设 计课程设计名称: 基于89C51的电机转速计设计 专 业 班 级 : 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计地点: 31-505 课程设计时间: 2018-01-012018-01-14 单片机

2、系统 课程设计任务书学生姓名专业班级自动学号题 目基于89C51的电机转速计设计课题性质工程设计课题来源选题指导教师主要内容(参数)1. 电机起动2. 多级调速,包括提速、减速3. 电机停车任务要求(进度)第1-2天:熟悉课程设计任务及要求,查阅技术资料,确定设计方案。第3-4天:按照确定的方案设计单元电路。要求画出单元电路图,元件及元件参数选择要有依据,各单元电路的设计要有详细论述。第5-6天:软件设计,编写程序。第7-8天:实验室调试。第9-10天:撰写课程设计报告。要求内容完整、图表清晰、文理流畅、格式规范、方案合理、设计正确,篇幅合理。主要参考资料1 张毅刚 彭喜元 彭宇 单片机原理及

3、应用(第2版) 高等教育出版社2 程国刚 陈跃琴 崔荔蒙51单片机典型模块开发查询手册 电子工业出版社3 程国刚 杨后川 PROTEUS原理图设计与电路仿真 电子工业出版社审查意见系(教研室)主任签字: 年 月 日 目录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总原理图11附录C部分原程序131 引言在实际应用中,电动机作为把电能转换为机械能的主要设备,

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

5、方案方框图所示,由单片机输出PWM 信号,并由I/O口输出,经驱动电路输出给电机,从而控制电机得电、断电以及调整电枢电压。单片机上电后,系统进入准备状态。当按动启动按钮后,根据预设值电机进入一级转速工作;根据不同需求的按下加减速按钮,调整I/O口的预定值,从而可以控制PWM波形的占空比,进而控制电压的大小。控制电机的加减速,并在数码管上显示出当前的预设值。图2.1 直流电机调速方案方框图AT89C51是一种带4K字节FLASH存储器(FPEROMFlash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。

6、AT89C2051是一种带2K字节闪存可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。AT89C51 提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RA

7、M中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。软件方案:PWM(脉冲宽度调制)是通过控制固定电压的直流电源开关频率,改变负载两端的电压,从而达到控制要求的一种电压调整方法。PWM可以应用在许多方面,比如:电机调速、温度控制、压力控制等等。在PWM驱动控制的调整系统中,按一个固定的频率来接通和断开电源,并且根据需要改变一个周期内“接通”和“断开”时间的长短。通过改变直流电机电枢上电压的“占空比”来达到改变平均电压大小的目的,从而来控制电动机的转速。也正因为如此,PWM又被称为“开关驱动装置”。单片机由软件来实现PWM调整:在PWM调速系统中占空比D是一个重要参数在电源电压

8、Ud不变的情况下,电枢端电压的平均值取决于占空比D的大小,改变D的值可以改变电枢端电压的平均值从而达到调速的目的。改变占空比D的值有三种方法:A、定宽调频法:保持t1不变,只改变t2,这样使周期也随之改变。B、调宽调频法:保持t2不变,只改变t1,这样使周期也随之改变。C、定频调宽法:保持周期T(或频率)不变,同时改变t1和t。前两种方法在调速时改变了控制脉冲的周期(或频率),当控制脉冲的频率与系统的固有频率接近时,将会引起振荡,因此常采用定频调宽法来改变占空比从而改变直流电动机电枢两端电压。利用单片机的定时计数器外加软件延时等方式来实现脉宽的自由调整,此种方式可简化硬件电路,操作性强等优点。

9、本次设计中,采用定时器作为脉宽控制的定时方式,这一方式产生的脉冲宽度极其精确。3 硬件电路设计3.1复位电路复位电路和时钟电路是维持单片机最小系统稳定运行的基本模块和最重要的内部因素之一。复位电路通常分为两种:上电复位和手动复位,如图3.1,图3.2所示。图3.1 上电复位电路图3.2 手动复位电路有时系统在运行过程中出现程序跑飞的情况,在程序开发过程中,需要经常手动复位。所以本次设计选用手动复位。3.2振荡电路振荡电路是单片机系统工作的核心,它提供单片机工作的“动力”,并关系到单片机运行速度的快慢、应用系统稳定性的高低等。一般可以使用晶体或晶振来搭建,他们的主要区别在于晶体需要外接振荡电路才

10、能够起振,而晶振只需要在相应的引脚上提供电源和地信号既可以发出脉冲信号。高频率的时钟有利于程序更快的运行,也有可以实现更高的信号采样率,从而实现更多的功能。但是告诉对系统要求较高,而且功耗大,运行环境苛刻。考虑到单片机本身用在控制,并非高速信号采样处理,所以选取合适的频率即可。合适频率的晶振对于选频信号强度准确度都有好处,本次设计选取12.000M无源晶振接入XTAL1和XTAL2引脚。并联2个30pF陶瓷电容帮助起振。振荡电路如图3.3所示图3.3 振荡电路3.3驱动电路在实际的直流电机驱动电路应用中,可以使用H桥来驱动直流电机,也可以使用相应的驱动芯片来驱动直流电机。H桥采用4个功率MOS

11、FET管,两两组成一个桥壁,每个三极管旁边有一个续流二极管,当对角线上两个三极管打开时,电机朝一个方向运转;另一条对角线上的三极管打开时,电机反转。功率MOSFET管可以将微弱的信号放大成幅值较大的电信号,是单片机系统中最常用的功率驱动器件。除了使用三极管搭建H桥驱动外,还可以使用达林顿管等驱动芯片来驱动直流电机。达林顿管又称复合管,原理是将两只三极管适当地连接在一起,组成一只等效的新三极管。放大倍数是两只三极管放大倍数之积,常常用于驱动较大驱动电流的器件。常见的达林顿集成芯片有ULN2003和ULN2803。由于本次设计使用的开发板上自带了ULN2003芯片,所以采用ULN2003驱动芯片驱

12、动直流电机。驱动电路如图3.4所示。图3.4 直流电机驱动电路3.4键盘电路起动、停车、加速、减速四个按键分别与单片机的P1.0,P1.1,P1.2,P1.3相连,然后再与地相连。其电路如图3.5所示。图3.5 电机起动、停车、加速、减速按键电路3.5显示电路本次设计中,因需要显示调速等级,故使用一位8段数码管用作显示。数码管是单片机系统常用的一种外围显示器件,可以显示一些简单的数字或字符。显示电路如图3.6所示图3.6 一位八段数码管显示电路4 软件设计4.1 软件总流程图通电开机后,CPU得电,根据软件定义引脚功能,定时器工作方式等。并进入键盘扫描子程序。当检测到键盘动作时,经过延时子程序

13、去抖,确定按键按下后,申请中断。单片机读取键值,并根据软件调节PWM波形,向外输出;同时根据按键次数计算端码,向数码管发送。起动默认3级,数码管显示3.如图4.1所示图4.1 软件总流程图4.2 中断流程图中断由键盘申请,当确定键盘有键按下后,根据扫描出的键值进行计算:若是加速按键则在原来基础上加上按键按动的次数,若是减速按键则减去。计算出此时的等级,根据软件预设调整PWM波形,并向数码管输送新的段码。如图4.2所示。图4.2 中断流程图5 功能开发调试及硬件仿真5.1 开发软件介绍程序开发软件:KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。另外重要的一

14、点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。本次设计使用的版本是Keil uVision4。硬件仿真软件:Proteus软件是一种低投资的电子设计自动化软件,多达30多个元件库。Proteus软件提供多种现实存在的虚拟仪器仪表。此外,Proteus还提供图形显示功能,可以将线路上变化的信号,以图形的方式实时地显示出来。这些虚拟仪器仪表具有理想的参数指标,例如极高的输入阻抗、极低的输出阻抗,尽可能减少仪器对测量结果的影响,Proteus软件提供丰富的测试信号用于电路的测试。

15、Proteus在编译方面支持Keil编译器。当电路设计完成之后,为了减少在电路板上调试时的难度,保证电路设计的正确性,将Keil c51编译生成的*.HEX 文件载入Proteus软件,实现电路仿真。5.2 仿真结果初始状态,直流电机半速运转。如图5.1所示图5.1 初始状态下直流电机运行状态按下停止键,直流电机运行状态如图5.2所示图5.2 电机停转按下加速键,直流电机运行状态如图5.3所示图5.3 直流电机加速按下减速按键,直流电机运行状态如图5.4所示图5.4 直流电机减速6 总结这次课程设计让我收获颇多,查资料,同学交流,到最后写论文,每个过程都是对自己的能力的一次提高。通过这次设计,

16、增长了自己的实践能力,分析问题的能力也提高不少。这一次的课程设计,还让我学会了独立思考,独立解决问题。让我也真正领悟到了“细节决定成败”的道理。在设计过程中,还锻炼了我冷静思考问题的能力。在我看来,这不仅仅是一次课程设计,更像是人生中的一堂课,让我学会了很多东西,学会了很多人生道理。附录A 参考文献1 张毅刚 彭喜元 彭宇 单片机原理及应用(第2版) 高等教育出版社2 程国刚 陈跃琴 崔荔蒙51单片机典型模块开发查询手册 电子工业出版社 3 程国刚 杨后川 PROTEUS原理图设计与电路仿真 电子工业出版社 4 康华光 电子技术基础模拟部分 高等教育出版社 5 夏路易 石宗义 电路原理图与电路

17、板设计教程Protel 99SE 北京希望电子出版社附录B总原理图本次设计总原理图如图附录B.1所示附录C部分原程序#include #include #define uint unsigned int#define uchar unsigned charuchar led_code10 = 0xa0, 0xf9, 0xc4, 0xd0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x90/段码 0,1,2,3,4,5, 6, 7, 8, 9uchar led_bit4 = 1, 2, 4, 8; /位码uchar led_buf4; /显示缓存uchar key_buf4;

18、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 *说 明:延时子程序 *功 能:产生一定时间的延时 *输 入:ms 延时时间1m

19、s的倍数void delayms(uint ms) uint a, b; for (a = 0; a ms; a+); for (b = 0; b = 1000) /数据在于等于10000 i = 4; /显示4位 else if (num = 100) / 数所小于1000大于100 i = 3; /显示3位 else if (num = 10) /数据小于100大于10 i = 2; /显示两位 else if (num 10) /数据小10 i = 1; /显示1位 /*显示输出*/ numToBuf(); P2 = led_bitn; /调用位码 P0 = led_bufn; /调用段

20、码 n+; /移位 n = n % i; *名 称:int_1 *说 明:定时器1中断服务程序 *功 能:键盘扫描void int_1(void)interrupt 3 TH1 = 0xfe; TL1 = 0x0c; /定时器0赋初值 if(counter=num) MOTORPORT1=1;else if(counternum) MOTORPORT1=0;counter+;counter=counter%100; *名称:Key_Scan *说明: *功能:键盘扫描*返回值:按键对应值(015);无键按下返回0x7funsigned char Key_Scan(void) / unsigne

21、d char i, n; unsigned char key_temp; P1 = 0xf0; if (P1 &0xf0) != 0xf0) if (P1 &0xf0) != 0xf0) delayms(100); for (i = 0; i 4; i+) P1 = (1 i); n = P1; n &= 0xf0; 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 * 4; bre

22、ak; 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; do temp2 = Key_Scan(); while (temp1 = temp2); re

23、turn temp1;/*主程序*/void main() TMOD = 0x11; TH0 = 0xD8; /定时器T0为方式1 TL0 = 0xf0; /定时器0的时间常数(10ms,12MHZ) TR0 = 1; /启动定时器0 TH1 = 0xff; /定时器T0为方式1 TL1 = 0x9c;/启动定时器0 TR1=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;MOTOR1=MOTORPORT0;

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com