1、郑州轻工业学院课程设计说明书题目:基于51单片机的直流电机控制系统设计 姓 名: 院 系: 电气信息工程学院 专业班级: 电子信息工程专业 学 号: 指导教师: 成 绩: 时间: 2023 年 12 月 12 日至 2023 年 12 月 26 日郑州轻工业学院题目 基于51单片机的直流电机控制系统设计 专业、班级 电子信息工程08级1班 学号 姓名 主要内容、根本要求、主要参考资料等:主要内容:控制系统主要是以8051单片机为核心组成的控制系统, 本系统中的电机转速与电机两端的电压成比例, 而电机两端的电压与控制波形的占空比成正比, 因此, 由MCU内部的可编程计数器阵列输出PWM波, 以调
2、整电机两端电压与控制波形的占空比, 从而实现调速。根本要求:1、掌握汇编编程的原理和方法。 2、熟悉单片机根本特征和电路设计的方法。3、掌握直流电机的控制方法。4、熟练运用定时器设计PWM波控制直流电机。5、形成一篇设计文档。主要参考资料:1孙涵芳 徐爱卿.MCS-51/96系列单片机原理及应用M.北京:北京航空航天大学出版社,1977.2何立民.单片机应用技术选编M.北京:北京航空航天大学出版社,2023.3史国生.交直流调速系统M.北京:化学工业出版社,2023.161-174.完 成 期 限: 2023.12.12-2023.12.26 指导教师签名: 课程负责人签名: 2011年 12
3、月 11日本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。控制系统主要是以8051单片机为核心组成的控制系统, 本系统中的电机转速与电机两端的电压成比例, 而电机两端的电压与控制波形的占空比成正比, 因此, 由MCU内部的可编程计数器阵列输出PWM波, 以调整电机两端电压与控制波形的占空比,从而实现调速。关键词:8051单片机 PWM信号 直流电机目录第一章:设计任务5第二章:总体设计方案5第三章 系统硬件电路设计6第四章 系统的软件设计7第五章:程序8第六章:PCB图8第七章:元件清单8第八章:参考文献8第九章:心得体会8 第一章:设计任务任务:
4、单片机为控制核心的直流电机PWM调速控制系统设计的主要内容以及技术参数:功能主要包括:1) 直流电机的正转;2) 直流电机的反转;3) 直流电机的加速;4) 直流电机的减速;5) 直流电机的转速在数码管上显示;6) 直流电机的启动;7) 直流电机的停止;第二章:总体设计方案总体设计方案的硬件局部详细框图如图一所示。数码管显示按键控制8051单片机PWM电机驱动键盘向单片机输入相应控制指令,由单片机通过P1.0与P1.1其中一口输出与转速相应的PWM脉冲,另一口输出低电平,经过ULN2023芯片控制电路,实现电动机转向与转速的控制。电动机的运转状态通过数码管显示出来。电动机所处速度级以速度档级数
5、显示。正转时最高位显示“三 ,其它三位为电机转速;反转时最高位显示“F,其它三位为电机转速。每次电动机启动后开始显示,停止时数码管显示出“0000。 第三章 系统硬件电路设计整体框图如下第四章 系统的软件设计 本系统编程局部工作采用KELI-C51语言完成,采用模块化的设计方法,与各子程序做为实现各局部功能和过程的入口,完成键盘输入、按键识别和功能、PWM脉宽控制和数码管显示等局部的设计。单片机资源分配如下表:P0显示模块接口键盘中断P1键盘模块接口P1.0/P1.1PWM电机驱动接口系统时钟PWM脉宽控制:本设计中采用软件延时方式对脉冲宽度进行控制,延时程序函数如下:/xxxxxxxxxxx
6、xxxxxx延时函数xxxxxxxxxxxxxxxxxxxxxxxxx/delays()uchar i;for(i=5000;i0;i-);键盘中断处理子程序:采用中断方式,按下键,完成延时去抖动、键码识别、按键功能执行。要实现按住加/减速键不放时恒加或恒减速直到放开停止,就需在判断是否松开该按键时,每进行一次增加/减少一定的占空比。显示子程序:利用数组方式定义显示缓存区,缓存区有8位,分别存放各个数码管要显示的值。定时中断处理程序:采用定时方式1,因为单片机使用12M晶振,可产生最高约为65.5ms的延时。对定时器置初值B1E0H可定时20ms,即系统时钟精度可达0.02s。当20ms定时时
7、间到,定时器溢出那么响应该定时中断处理程序,完成对定时器的再次赋值,并对全局变量time加1,这样,通过变量time可计算出系统的运行时间。3、软件设计中的特点:对于电机的启停,在PWM控制上使用渐变的脉宽调整,即开启后由停止匀加速到默认速度,停止那么由于当前速度逐渐降至零。这样有利于保护电机。键盘处理上采用中断方式,不必使程序对键盘反复扫描,提高了程序的效率。第五章:程序见附件1第六章:PCB图见附件2第七章:元件清单见附件3 第八章:参考文献1孙涵芳 徐爱卿.MCS-51/96系列单片机原理及应用M.北京:北京航空航天大学出版社,1977.2何立民.单片机应用技术选编M.北京:北京航空航天
8、大学出版社,2023.3史国生.交直流调速系统M.北京:化学工业出版社,2023.161-174.第九章:心得体会本次课程设计虽然只有两周,但短短两周我掌握了汇编编程的原理和方法。熟悉了单片机根本特征和电路设计的方法。掌握了直流电机的控制方法。熟练了运用定时器设计PWM波控制直流电机。总之,收获很多。附件1/xxxxxxxxxxxx头文件xxxxxxxxx/#include #include #include /xxxxxxxxxxxxxxxxxxxxxxxxxx / /xxxxxxxx自定义变量xxxxxxxx/#define uint unsigned int /自定义变量#define
9、uchar unsigned char char gw,sw,bw,qw;uchar j; /定时次数,每次20msuchar f=5; /计数的次数sbit P10=P10; /PWM输出波形1sbit P11=P11; /PWM输出波形2sbit P12=P12; /正反转sbit P13=P13; /加速sbit P14=P14; /减速sbit P15=P15; /停止sbit P16=P16; /启动uchar k;uchar t; /脉冲加减/xxxxxxxxxxxxxxxxxxxxxxxxxx/x/xxxxxxxxx控制位定义xxxxxxxxxxxxxxxxxxxx/uchar
10、code smg12=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71;/程序存储区定义字型码表char data led4=0x08,0x04,0x02,0x01; /位码uint x; /数码管显示的数值display(); /数码管显示 delays(); /延时函数key();displays();/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxx主函数xxxxxxxxxxxxxxxxxxxx/main (void) TMOD=0x51; /T0方式1
11、 定时计数T1方式1计数TH0=0xb1; /装入初值 20MSTL0=0xe0;TH1=0x00; / 计数567TL1=0x00;TR0=1; /启动 t0TR1=1; /启动t1gw=sw=bw=qw=0; /数码管初始化P0=0xc0;P2=1;while(1) /无限循环 display(); /数码管显示 key(); /xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxx数码管显示xxxxxxxxxxxxxxxx/display()uchar i; gw=x%10; /求速度个位值,送到个位显示缓冲区sw=(x/10)
12、%10; /求速度十位值,送到十位显示缓冲区bw=(x/100)%10; /求速度百位值,送到百位显示缓冲区qw=x/1000; /求速度千位值,送到千位显示缓冲区for(i=0;i4;)P2=ledi;if(i=0) /显示个位P0=smggw;delays();else if(i=1) /显示十位P0=smgsw;delays();else if(i=2) /显示百位P0=smgbw;delays(); else if(i=3) /显示千位 if(k=0)/正转时显示三 P0=0x49; delays();else P0=0x71; /反转时显示F i+;/xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx/xxxxxxxxxxxxxxxxx延时函数xxxxxxxxxxxxxxxxxxxxxxxxx/delays()uchar i;