keilc温度控制直流电机转速课程设计报告
单片机直流电机控制实训报告
单片机直流电机控制实训报告基于AT89C51单片机的直流电动机控制器设计实训报告专业:弹药工程与爆炸技术班级:弹药二班学生姓名:杨宁指导教师:佟慧艳能源与水利学院1 实训目的通过单片机实训使学生能够掌握利用Keil软件编写单片机程序,学会设计完整的单片机应用系统;依托Protues仿真平台进行单片机电子应用系统设计与仿真,使学生掌握单片机应用系统的设计技能;培养学生运用所学知识分析和解决实际问题的能力以及实际动手能力和查阅资料能力。
2 实训任务及要求2.1 任务描述一单片机为控制核心设计一款直流电机电机控制系统,可以实现直流电机的加速、正转、反转等控制方式。
2.2 任务要求1)用AT89C51单片机实现上述任务要求;2)在Keil IDE中完成应用程序设计与编译;3)在Proteus环境中完成电路设计、调试与仿真。
3 系统硬件组成与工作原理3.1单片机的控制器与最小系统单片机的最小系统是指有单片机和一些基本的外围电路所组成的一个可以使单片机工作的系统,一般来说,它包括单片机、晶振电路和复位电路(如图一)。
图1 最小系统设计截图(一)控制器部分分析AT89C51(如图2)是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and ErasableRead Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。
AT89C51提供以下标准功能:4k 字节Flash 闪速存储器,128字节内部RAM,32 个I/O 口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。
直流电机控制课程设计
直流电机控制课程设计一、课程目标知识目标:1. 学生能理解直流电机的工作原理,掌握直流电机的基本结构及其功能。
2. 学生能掌握直流电机控制的基本方法,包括启动、调速、制动等。
3. 学生能了解并描述直流电机在自动化控制中的应用。
技能目标:1. 学生能运用所学知识,进行简单的直流电机控制电路的设计与搭建。
2. 学生能通过实际操作,熟练使用相关仪器设备进行直流电机控制实验。
3. 学生能通过实验数据分析,解决直流电机控制过程中出现的问题。
情感态度价值观目标:1. 学生对直流电机控制技术产生兴趣,培养探究精神和创新意识。
2. 学生在小组合作中,培养团队协作能力和沟通表达能力。
3. 学生关注直流电机控制技术在现实生活中的应用,增强学以致用的意识。
分析课程性质、学生特点和教学要求:1. 本课程为工程技术类课程,注重理论与实践相结合,强调学生的动手能力。
2. 学生为初中年级学生,具备一定的物理基础和动手操作能力,但对复杂电路和控制原理理解有限。
3. 教学要求以学生为主体,注重启发式教学,引导学生主动探究和解决问题。
二、教学内容1. 直流电机的工作原理与结构- 直流电机的组成及其功能- 直流电机的工作原理- 直流电机的类型及特点2. 直流电机控制方法- 直流电机的启动方法- 直流电机的调速方法- 直流电机的制动方法3. 直流电机控制电路设计与搭建- 控制电路元件的识别与选用- 控制电路的设计原理与步骤- 控制电路的搭建与调试4. 直流电机控制实验- 实验设备的使用与操作- 实验步骤与方法- 实验数据的收集与分析5. 直流电机控制技术应用- 直流电机控制技术在现实生活中的应用案例- 直流电机控制技术的未来发展教学内容安排与进度:第一课时:直流电机的工作原理与结构第二课时:直流电机控制方法第三课时:直流电机控制电路设计与搭建第四课时:直流电机控制实验第五课时:直流电机控制技术应用教材章节关联:教学内容与教材第二章“直流电机的原理与应用”相关联,涵盖直流电机的基本概念、原理、控制方法及其在实际中的应用。
直流电机转速控制实验报告
直流电机转速控制实验报告自动控制原理实验实验报告直流电机转速控制设计一、实验目的1、了解直流电机转速测量与控制的基本原理。
2、掌握LabVIEW图形化编程方法,编写直流电机转速控制系统程序。
3、熟悉PID参数对系统性能的影响,通过PID参数调整掌握PID控制原理。
二、实验设备与器件计算机、NI ELVIS II多功能虚拟仪器综合实验平台、LabVIEW软件、万用表、12V直流电机、光电管,电阻、导线。
三、实验原理直流电机转速测量与控制系统的基本原理是:通过调节直流电机的输入电压大小调节电机转速;利用光电管将电机转速转换为一定周期的光电脉冲、采样脉冲信号,获取脉冲周期。
将脉冲的周期变换为脉冲频率,再将脉冲频率换算为电机转速;比较电机的测量转速与设定转速,将转速偏差信号送入PID控制器,由PID 控制器输出控制电压,通可变电源输出作为直流电机的输入电压,实现电机转速的控制。
四、实验过程(1)在实验板上搭建出电机转速光电检测电路将光电管、直流电机安装在实验板上的合适位置,使得直流电机的圆片恰好在光电管之中,用导线将光电管与相应阻值的电阻相连,并将电路与相应的接口相连,连接好的电路图如下。
(2)编写程序,实现PID控制SP为期望转速输出,是用户通过转盘输入期望的转速;PV为实际测量得到的电机转速,通过光电开关测量马达转速可以得到;MV为PID输出控制电压,将其接到“模拟DBL”模块,实现控制电源产生所需的直流电机控制电压。
通过不断地检测马达转速与期望值对比产生偏差,通过PID控制器产生控制信号,实现对直流电机转速的控制。
编写的程序如下图所示五、调试过程及结果PID参数调整如下时,系统出现了振荡现象,导致了系统的不稳定。
于是将参数kc调小,调整后的参数如下:系统出现了一定程度的超调,不满足实际的应用。
继续将Ti参数调大,并加入移位寄存器,对转速测量值取滑动平均,得到较为理想的系统输出。
-全文完-。
单片机控制直流电机课程设计报告
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的值,该子程序流程图如图四。
MOV TL0,#0CH
SETB ET0 ;开定时器0
SETB EA
SETB TR0
LOOP:AJMP LOOP ;等待
AT89C51单片机功能强大,方便今后的功能扩展。通过各种方案的讨论及尝试,再经过多次的整体软硬件结合调试,不断地对系统进行优化。同时对电动机控制不是一个简单的电子控制问题,它涉及很多方面的知识。相信单片机在今后的自动控制领域中将有更广阔的应用前景。相信该系统能成功运用于直流电机转速系统的实时监控,简化控制逻辑系统,而且成本低廉、功能完整、抗干扰性能好。能成功应用于直流电机转速调节、监控、保护场合,并且监控界面友好,使用方便。能够对直流电机实行实时监控,不仅大大改善了高速运行时的稳定性,而且还实现了保护功能。
SETB P2.0
CLR P2.2
SETB GORD ;置高低电平判断位为1
MOV GAO,LEN ;置高电平初值
MOV A,#100 ;置周期总长值
SUBB A,GAO ;求低电平比例值
MOV DI,A ;存低电平比例值
温度控制直流电动机转速的课程设计
目录1 1引言..............................................................................错误!未定义书签。
2设计任务及要求..............................................................错误!未定义书签。
2.1设计目的................................................................错误!未定义书签。
2.2设计要求................................................................错误!未定义书签。
3 本课程设计的意义..........................................................错误!未定义书签。
4应用软件介绍..................................................................错误!未定义书签。
4.1Prote us仿软真件的介绍.......................................错误!未定义书签。
4.2 Keil软件 .................................................................错误!未定义书签。
5电路使用元件的介绍......................................................错误!未定义书签。
5.1关于AT89C51单片机的简介.................................错误!未定义书签。
5.2关于DS18B20温度传感器的简介 ........................错误!未定义书签。
温度控制直流电效果转速的课程设计
计算机控制实验课程设计报告-直流电机转速pid控制
基于89c52单片机的PWM 直流电机PID控制调速系统实验报告指导老师:衣法臻姓名:杨浩学号:09212020班级:自动化0901日期:2012年7月6日星期五目录第一章系统方案设计 (3)1.1 直流电机转速开环控制与闭环控制的选取 (3)1.2 直流电机调速方式的选取 (4)1.3 直流电机测速装置的选取 (5)1.4 系统控制算法的选取 (8)1.5 系统总体设计 (10)第二章硬件设计 (11)2.1 AT89C52芯片介绍 (11)2.2 直流电机驱动芯片ULN2803设计 (13)2.3 数显管显示给定速度和实际速度模块 (15)2.4 按键模块设计 (16)2.5 测速模块设计 (18)第三章软件部分设计 (19)3.1 数显管显示软件设计部分 (19)3.2 外部中断P3.3计数程序 (21)3.3 定时器0中断软件设计 (22)3.4 PWM算法程序设计 (25)3.5 PID控制算法程序设计 (26)3.6 按键程序设计 (29)第四章基于matlab的PID参数设计及仿真 (31)4.1 各部分传递函数的整定 (31)4.2 PID参数的整定 (31)第五章结果分析 (33)第六章实验总结及感想 (34)参考文献 (36)附录一硬件系统电路原理图 (36)附录二程序源代码 (36)第一章、系统总体方案设计1.1直流电机转速开环控制与闭环控制的选取对直流电机转速的控制有一般有两种方式,一种是开环控制,一种是闭环控制。
开环控制的优点是简单、稳定、可靠。
若组成系统的元件特性和参数值比较稳定,且外界干扰较小,开环控制能够保持一定的精度。
缺点是精度通常较低,无自动纠偏能力;闭环控制的优点是控制的精度可以达到很高,而且对外界的干扰和系统的参数变化有很好的抑制作用,且可以通过输出反馈控制系统的控制过程。
缺点是存在稳定性,振荡,超调等一系列问题,对系统的性能分析和设计远比开环控制麻烦。
经过利弊的取舍,本次试验选择的是闭环控制,因为准备应用PID算法控制电机的转速,故而需要有实际转速进行反馈与给定的转速形成对比,进而通过算法输出PWM波形来控制直流电机。
课程设计报告之直流电机控制(C语言版)
单片机课程设计学院:电气与信息工程学院班级:07级电气工程及其自动化3班设计者:设计名称:直流电机调速指导老师:张志文教授目录一. 课程设计题目及其实现目标 (3)二. 设计原理图 (4)三. 设计原理及其实现方法 (5)四. 流程图 (6)五. 程序清单 (7)六.课程设计心得 (13)一. 课程设计题目及其实现目标课程设计题目:直流电机调速实现的目标1).通过键盘改变脉冲的占空比从而达到改变转速使得电机转速从高到低,从低到高2).通过改变pwm的极性从而改变电机的转向,实现正反转3).能够通过数码显示管显示电机的转速和电机的转向4).通过启动键唯一启动电机,从而达到防止电机误启动的目的5).能够通过键盘快速达到电机预先设定的速度和转向备注:由于没有传感器,所以本课程设计中没有设计测速模块,所显示的速度为理论速度,并非电机的实际转速二. 设计原理图注:本原理图采用proteus绘制三. 设计原理及其实现方法1. 速度调节的实现通过控制L298的使能端“允许”或者“禁止”,通过改变a (脉冲宽度)的值,从而达到控制PWM脉冲宽度调节电机转速的目的2. 转向的控制通过L298中的H桥,从AT89C51中的P1_6和P1_7输出控制信号控制BJT的基极电压,控制L298中H桥的BJT通断,从而达到控制电机转向的目的附:A. L298的原理图B.本设计所需要芯片以及作用AT89C51:单片机L298:控制电机驱动和转向74L408:四与门芯片8255A:用于扩展51端口,作显示用2803:显示缓冲用MAX239:串口通讯芯片四. 流程图五.程序清单#include<at89x51.h>#include<motor_ctr.h>#include<absacc.h>#include<stdio.h>#include<intrins.h>#define PA XBYTE[0x1FFF] //A口地址;#define PB XBYTE[0x3FFF] //B口地址;#define PC XBYTE[0x5FFF] //C口地址;#define CON XBYTE[0x7FFF] //*控制字地*/ ;uchar key=0; //定义key为全局变量uint a=100;uchar n=5; //单次增加的步长,用于输出脉冲占空比控制uint k1=0,mn=10; //设置mn为转向标志位uchar bai,shi,ge;uint seg_code[11]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x98,0xff}; //0~9的七段显示代码; /*THE MAIN PROCESS*/void main(){CON=0x80;P1_5=0; //使电机停转;TMOD=0x15; //定时器1工作在模式1TH1=0xFF; //定时器1的溢出中断时间为50ms;TL1=0xb0;ET1=1;TR1=1;while(1){key=GetKey();/*case 1~case 9是预先设定的速度,方便电机直接调节到该速度,避免通过’+’键调节*/ switch(key){ case '1': { a=10;break; }case '2': { a=25; break; }case '3': { a=40; break; }case '4': { a=55; break; }case '5': { a=70; break; }case '6': { a=90; break; }case '7': { a=110;break; }case '8': { a=130;break; }case '9': { a=150;break; }case '+': { P1_4=0;control();break; } //电机加速case '-': { control(); break;} //’-‘代表减速case '=': { P1_7=0; P1_6=1; mn=0;control(); break;} //电机顺时针转case 'c': { P1_7=1; P1_6=0; mn=1;control() ; break;} //逆时针转case '/': { control();} //‘/‘键按下时,电机开始转动default: break; //不影响电机运行}}}/*THE END OF MAIN PROCESS*//*THE INTERRUPTION FUNCTION*/void time()interrupt 3 //中断号为3,即是定时器1溢出中断{ //此处是计时50ms中断一次TR1=0; //此函数用于显示速度k1+=TL0;display(a/100,a%100/10,a%10,mn);/*if(count==51){sprintf(s,"%04d",k1%1000); //注意sprintf的用法;//确保有四位输出count=1;k1=0;}display(a,bai,shi,ge); */TH1=0x3c;TL1=0xb0;TH0=0x00;TL0=0x00;TR1=1;}/* THE INTERRUPTION FUNCTION *//*THE GETKEY FUNCTION WHICH W AS USED TO GET THE INFORMA TION FROM THE KEY *//*行信号从P1口的低四位读进,列信号从P2口的高四位读进*/uchar GetKey(){P1_0=0;P1_1=1;P1_2=1;P1_3=1;P2_0=1;P2_1=1;P2_2=1;P2_3=1;_nop_();_nop_(); // 适当的延时以便消除抖动if(!P2_0)return '7';if(!P2_1)return '8';if(!P2_2)return '9';if(!P2_3)return '/';P1_0=1;P1_1=0;P1_2=1;P1_3=1;_nop_();_nop_();if(!P2_0)return '4';if(!P2_1)return '5';if(!P2_2)return '6';if(!P2_3){P1_4=0;return '*'; }P1_0=1;P1_1=1;P1_2=0;P1_3=1;_nop_();_nop_();if(!P2_0)return '1';if(!P2_1)return '2';if(!P2_2)return '3';if(!P2_3)return '-';P1_0=1;P1_1=1;P1_2=1;P1_3=0;_nop_();_nop_();if(!P2_0)return 'c';if(!P2_1){P1_4=0;return '0'; } // P1_4和P1_5脚通过一个“与”门用来防止误启动if(!P2_2)return '=';if(!P2_3)return '+';return 0;}/*延时程序*//*THE DELAY FUNCTION*/void delay(uint i){uint j,k;for(;i>0;i--)for(j=10;j>0;j--)for(k=10;k>0;k--);}/*THE DISPLAY FUNCTION*/void display(uchar bai,uchar shi,uchar ge ,uint mn){PB=0x08; //0000 1000PA=seg_code[ge];delay(2);PB=0x04;//0000 0100PA=seg_code[shi];delay(2);PB=0x02;//0000 0010PA=seg_code[bai];delay(2);PB=0x01;//0000 0001PA=seg_code[mn];delay(2); //注意这儿的延时越短越好,应为处理终端的时间越短,对电机// 的实时性显示就越好;}/*THE CONTROL FUNCTION*//*由于参数a 是一个全局变量,代表着脉冲的占空比,每次调用函数时;必须注意参数a 值;*//* 如果按键为‘-’,‘+’(加速减速)以及‘c',’=‘(正转反转)时,不需跳出循环,按其他键时,需要跳出循环,必须需要重新设置占空比*//* P1_4和P1_5脚通过一个“与”门用来防止误启动*/void control(){EA=1;while(1){if(a>=150)a=150; //设置了a 的最大值,限定了电机的最高速度if(a<=10)a=10; // 设置了a 的最小值,限定了电机的最高速度P1_5=1; // 与P1_4信号形成控制L298的控制信号达到控制转速的目的delay(a); // 调用延时,形成脉宽的调节P1_5=0; //电机逐渐停转;delay(160-a);/*以下的程序改变a 的值达到改变脉冲宽度的目的*/key=GetKey();if(key=='-') // 减速a=a-n;else if(key=='+'){a=a+n;} // 加速else if(key=='=') // 如果按下’=‘键,则电机顺时针转;{P1_6=1;P1_7=0;mn=0;}else if(key=='c') //反转{ P1_7=1;P1_6=0;P1_4=1;mn=1;}else if(key=='*'||key=='0') //如果按下停止键’*‘或者’0’;{ P1_5=0;P1_4=1; //ENA=0(P1_5=0)电机停转;break;}else if(key!=0) //如果没有按键按下,则继续在此while循环中运行{switch(key){case '1': { a=10; break; }case '2': { a=25; break; }case '3': { a=40; break; }case '4': { a=55; break; }case '5': { a=70; break; }case '6': { a=90; break; }case '7': { a=110; break; }case '8': { a=130; break; }case '9': { a=150; break; }default : break ;}}}EA=1;}附:motor_ctr.h FILEtypedef unsigned char uchar;typedef unsigned int uint ;extern uchar GetKey();extern void delay(uint i);extern void control();void display(uchar bai,uchar shi,uchar ge ,uint mn);六.课程设计心得两周的课程设计结束了,总得算来,这两周的课程设计体会颇多。
直流电机转速控制实验报告
计算机控制技术综合性设计实验实验课程:直流电机转速控制实验设计报告学生姓名:学生姓名:学生姓名:学生姓名:指导教师:牛国臣实验时间:年月日直流电机转速控制实验设计报告一、实验目的:1.掌握电机的工作原理。
2.掌握直流电机驱动控制技术。
3.掌握增量式编码器位置反馈原理。
4.熟悉单片机硬件电路设计及编程。
5.实现直流电机的转速控制。
二、实验内容:已知某一直流永磁有刷伺服电机参数如下:设计直流电机转速控制系统。
要求:表1 直流伺服电机参数1.分析并建立电机的数学模型,分别得出在连续控制系统和离散控制系统中对应的传递函数;2.基于MATLAB软件对直流电机进行仿真,并通过PID控制器的参数整定对直流电机进行闭环控制,3.设计直流电机控制硬件电路,主要包括主控模块、电机驱动模块、编码器反馈模块、通信模块、电源模块、显示模块等。
4.对各模块进行单元调试,设计数字PID控制器,并基于A VR单片机编制程序,进行系统联调。
5.最终完成直流电机控制硬件平台的设计、搭建及软件调试,要求有速度设置、显示功能,速度控制误差在1%以内,具有与上位机通讯的接口,能通过上位机方便进行参数设置、速度控制等操作。
三、 实验步骤:1、建立电机的数学模型,得出控制统的传递函数;由直流电机得来的三个方程:n k dt di Li R s u E m m ++=)( i k T M m =f L m T dtdw J T T ++= 、 进行拉式变换得:)()()()(s n k s LSI s I R s U E m m ++=)(s I k T M m =f L m T s JS T T +Ω+=)(带入数据在进行z 变换得: 521039.19252.01394.0459.1)(-⨯+-+=z z z z G 2、.基于MATLAB 软件对直流电机进行仿真(1)连续系统阶跃响应程序为:>> num=[1]num =1>> den=[0.0000000542,0.00061,0.0468]den =0.0000 0.0006 0.0468>> G=tf(num,den)Transfer function:1----------------------------------5.42e-008 s^2 + 0.00061 s + 0.0468>> step(G)>> Gz=c2d(G,0.01,'zoh')Transfer function:11.43 z + 0.06868-----------------z^2 - 0.4618 zSampling time: 0.01>> step(Gz)阶跃响应曲线如图1所示:图1 阶跃响应曲线(2)离散系统的单位阶跃响应程序如下:>> num=[52.756.913];>> den=[1 -0.8009 0.0005123];>> sys=[num,den,0.001];>> dstep(num,den,100)离散系统的阶跃响应曲线如图2所示(T=1ms):图2 离散系统的阶跃响应曲线(3)PID参数整定1)设D(z)=错误!未找到引用源。
直流电机转速PID控制课程设计报告
直流电机转速PID控制系统设计学院:专业班级:姓名:学号:指导老师:目录第一章PID简介 (1)第二章直流电机工作原理 (6)2.1 工作原理 (6)2.2、直流电机PID控制原理方框图 (7)第三章控制系统方案选择 (10)3.1 系统设计要求 (10)3.2 系统模块设计 (12)第四章硬件设计与实现 (17)4.1 硬件设计 (17)4.2系统面板图 (24)第五章流程设计 (26)5.1 软件设计流程图 (26)第六章程序说明 (30)6.1 直流电机部分程序 (30)6.2 温度检测部分程序 (37)第七章说明及调试 (46)7.1 调试过程 (46)7.2 运行结果 (47)第八章课程设计体会 (49)第一章 PID简介PID (比例积分微分,英文全称为Proportion Integration Differentiation)控制器问世至今已有近70年历史,它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制的主要技术之一。
当被控对象的结构和参数不能完全掌握,或得不到精确的数学模型时,控制理论的其它技术难以采用时,系统控制器的结构和参数必须依靠经验和现场调试来确定,这时应用PID控制技术最为方便。
即当我们不完全了解一个系统和被控对象,或不能通过有效的测量手段来获得系统参数时,最适合用PID控制技术。
PID控制,实际中也有PI和PD控制。
PID控制器就是根据系统的误差,利用比例、积分、微分计算出控制量进行控制的。
PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法,它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
keilc温度控制直流电机转速课程设计报告
目录一、设计目的及要求 (2)1.1 设计目的 (2)1.2 设计要求 (3)二、设计方案及论证之硬件电路设计 (3)2.1芯片简介 (3)2.2 电路原理图 (4)2.21 电机测速即驱动部分: (4)2.22电路供电系部分 (5)2.23显示部分 (5)三、设计方案及论证之软件设计 (6)3.1 程序设计思路 (6)四、器件清单 (13)五、器件识别与检测 (14)六、仿真结果: (15)七、软件简述 (15)7.1 keil 简介 (15)7.2 keil与proteus联调与仿真实现 (16)九、参考文献 (17)课程设计任务书一、设计目的及要求1.1 设计目的本设计主要是应用proteus软件和嵌入式C语言编程工具,结合单片机原理及应用。
危机原理与接口技术等专业课程,强化和巩固专业理论基础,掌握Proteus仿真的技巧和嵌入式C语言编程工具,提高单片机开发能力,并为嵌入式开发打下基础。
1.2 设计要求(1) 使用AT89C51单片机为核心,使用4 位集成式数码管显示当前温度,温度传感器使用DS18B20,使用L298 驱动直流电动机。
(2)用4 位集成式数码管显示当前温度, , 当温度在≥45 C 时, 直流电动机在L298 0 0 驱动下加速正转,温度在≥75 C 全速正转;当温度≤10 C 时,直流电动机加速反转,温度≤0 C 时,直流电动机全速反转;温度10 C ~ 45 C 之间时,直流电动机停止转动。
(3)控制程序在Keil 软件中编写,编译,整个控制电路在Proteus 仿真软件中连接调示。
二、设计方案及论证之硬件电路设计2.1芯片简介本设计选择采用AT89C51单片机为核心。
AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
单片机课程方案设计书(温度控制直流电动机转速)
2 设计任务与要求2.1 设计任务温度控制直流电动机转速2.2 设计要求(1)、本题目由学号为的学生完成。
(2)、使用A T89C51单片机为核心,使用4位集成式数码管显示当前温度,温度传感器使用DS18B20,使用L298驱动直流电动机。
(3)、用4位集成式数码管显示当前温度,当温度在时,直流电动机在L298驱动下加速正转,温度在全速正转;当温度时,直流电动机加速反转,温度时,直流电动机全速反转;温度之间时,直流电动机停止转动。
(4)、控制程序在Keil软件中编写,编译,整个控制电路在Proteus仿真软件中连接调示。
3 本课程设计的意义直流电动机作为一种高效率速度控制电动机引人注目、但市场的知名度还小高。
许多用户在设备用电动机的选择上经常出现不合理的现象。
比如为了实现设备的功能、当变频器控制的异步电动机满足不了要求时就盲目的选用昂贵的伺服电动机、其中有些情况完全可以用价格较低的直流电动机来实现。
采用单片机构成控制系统,可以节约人力资源和降低系统成本,从而有效的提高工作效率,可以实现复杂的控制,控制灵活性和适应性好,无零点漂移,控制精密高,可提供人机界面,多机联网工作。
采用智能功率电路驱动比传统的分立功率器件组成的驱动体积小,功能强;减少了电路元器件数量,提高了系统的可靠性;控制电路哈尔功率电路集成在一起,使监控更容易实现;集成化使电路的连线减少,减少了布线电容和电感以及信号传输的延时,增加了系统抗干扰的能力;集成化使系统成本大大降低。
4 应用软件介绍4.1 Proteus仿真软件Proteus是一款Labcenter出品的电路分析实物仿真系统,可仿真各种电路和IC,并支持单片机,元件库齐全,使用方便,是不可多得的专业的单片机软件仿真系统。
该软件的特点:(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。
(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS一232动态仿真、1 C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。
单片机课程设计报告直流风扇电机转速测量与PWM控制
一.设计思路程序应用模块化进行设计,主要有初始化模块、显示模块、读键模块、数制转换模块、双字节除法模块、中断模块和控制调节模块。
编程次序可按此先后进行。
初始化模块:8155工作方式、T0和T1工作方式、标志位状态、所用单元初值、中断设置以及初始显示等。
显示模块:设定值和实测值的数值与字符动态显示。
读键模块:从I/O口依据某位数码管亮时读入小按键是否有效,然后根据四个小键盘的不同功能进行相应的处理,只要设定值一改变立刻显示。
加1键和减1键要有连加连减功能。
数制转换模块:将二进制转换为十进制。
外部中断模块:将转1圈的时间通过双字节除法程序求出即时转速。
定时中断模块:PWM输出波形形成。
控制调节模块:通过设定值和实测值的比较来改变脉冲波的占空比,该数据的调节分为简单比例调节PP和比例积分调节PI。
调节公式分别为:YK=YK1+KP*EKYK=YK1+KP*EK+KI*EK2YK:要输出的数据YK1:上次输出的数据EK:设定值和实测值的差值EK1:上次的EK值EK2:EK-EK1的差值KP:比例系数(设KP=1~2)KI:积分系数(设KI=1~2)一.带注释软件清单;==========使用单元设定==========//..................................使用单元设定DIS0 EQU 30HDIS1 EQU 31HDIS2 EQU 32HDIS3 EQU 33HLED EQU 34HTM1 EQU 35H;TM2 EQU 36H;INTV BIT 37H;中断标志THX EQU 38H;定时脉宽高电平CISHU EQU 39HFIRST BIT 41H; 检测加减是否第一次按下SET1 BIT 42HSETZ0 EQU 43H;设定当前设定值SETZ0~SETZ3SETZ1 EQU 44HSETZ2 EQU 45HSETZ3 EQU 46HTM3 EQU 47H; 循环次数单元JIA1 BIT 48H; 单步加标志LIANJIA BIT 49H; 连加标志JIAN1 BIT 50H; 单步减标志LIANJIAN BIT 51H; 连减标志SETDATA EQU 52H; 设定速度暂存单元REALDATA EQU 53H; 实测速度暂存单元YK1 EQU 54H; 上次输出数据暂存单元KP EQU 56H;比例系数KI EQU 57H;积分系数EK EQU 58H;设定值和实测值的差值EK1 EQU 59H;上次的EK值OUTPUT EQU 60H;EK2 EQU 61H;EK-EK1的值ONPRESS BIT 62H;判定ENTER键是否弹起标志TMS EQU 63H;闪烁时长SHAN BIT 64H; 闪烁标志;==========主程序==========ORG 0000HSJMP MAINORG 0013H;外部中断1入口地址AJMP INX1ORG 001BH;定时器T1中断入口地址AJMP ITX1ORG 0070HMAIN: MOV SP,#70H;设定堆栈指针入口地址ACALL INIT;调用初始化程序M1: JB SET1,FLASH;当前为设置状态则跳到闪烁显示模块ACALL DISP; 否则为一般显示SJMP NEXTTFLASH: ACALL DISP1NEXTT: ACALL DELAY;调用按键延时程序ACALL M2;调用按键程序DJNZ CISHU,M1;第隔100MS刷新一下实测值MOV CISHU,#20ACALL CONTROL;调用控制调速模块SJMP M1//==========初始化模块==========INIT:MOV DPTR,#0FD00H ;设置PA、PB为输出口,PC为输入口MOV A,#03HMOVX @DPTR,AMOV TMOD,#21H ;定时器/计数器T1为方式2,定时器/计数器T0为方式1 MOV TL0,#00H ; 定时器/计数器T0赋初值#00HMOV TH0,#00HMOV THX,#0BBH ;输出单元赋初值#0BBH,即脉冲高电平宽度MOV TH1,THXMOV TL1,THXSETB TR1 ;启动定时器/计数器T1SETB TR0 ; 启动定时器/计数器T0SETB ET1 ;允许定时器/计数器T1溢出中断SETB EX1 ;允许外部中断1中断SETB IT1 ;选择边沿触发SETB EA ;CPU开中断SETB 07H;SETB SHANCLR 11H;检测是否成功MOV LED,#7FHMOV R0,#DIS0MOV DIS0,#14MOV DIS1,#15MOV DIS2,#15MOV DIS3,#15MOV SETZ2,#15MOV SETZ3,#15CLR ONPRESSSETB SET1SETB FIRSTCLR JIA1。
温度控制直流电动机转速系统设计报告
实训题目:温度控制直流电动机转速学生姓名:崔敬通学号: 201223160126 专业:电子信息工程2013年11月27日1 引言直流电机具有良好的线性调速特性和控制性能,使其调速控制占主流地位。
尽管交流变频电机、步进电机等在控制调速领域的应用比较广泛,但直流电机调速仍是大多数调速控制电机的最佳选择。
89C55单片机支持C语言编程,可移植性好,速度快,已被广泛应用于机电一体化、工业控制、智能仪器仪表等领域。
现应用89C51单片机对直流电机速度进行有效测试和控制,通过对直流电机转速脉冲和中断次数的计数,可实现根据输入值控制直流电机的转速。
2 设计任务与要求根据设计需要,通过测量原件把检测到的直流电机转速读入到89C55单片机中,再通过编程使读入的数值在显示器上显示出来。
若检测到的电机转速等于设定值,则对直流电机的转速进行记录;若检测到的电机转速没有达到设定值,则通过加大数值或模数转换芯片使电机速度提升至设定值;若检测到电机转速超过设定值则通过模数转换芯片把电机速度降至设定值。
通过这种实时检测和在线控制的方式使单片机能够对直流电机2.1系统的设计要求及主要技术指标本论文要求使用单片机进行电路设计,同时单片机部分应带有显示功能。
单片机对某个位置进行温度监控,当外部温度≥45℃时,电动机加速正转,当温度≥75℃时,电动机全速正转;当外部温度≤10℃时,电动机加速反转,当温度≤0℃时,电动机全速反转;当温度回到10℃~45℃之间时电动机逐渐停止转动。
2.2系统总体方案系统总体方案设计,如下图2.1图2.1 系统总体方案图2.3总体方案论述该系统采用AT89C55单片机为核心,通过DS18B20进行温度采集,送入单片机,经过软件编程进行温度的比较和范围划定,然后通过程序控制由单片机产生不同的PWM(脉冲宽度调制)信号,送给电机驱动芯片L298的使能端口,通过L298驱动芯片来控制直流电机的启动、速度、方向的变化;单片机将温度数据传送给LM016L显示温度。
直流电机调速计算机控制技术课程设计报告
. . . .计算机控制技术课程设计专业:自动化班级:姓名:学号:指导教师:交通大学自动化与电气工程学院2021 年07 月15 日直流电机调速系统设计1设计目的本课程设计是在修完?计算机控制技术A?课程之后,为加强对学生系统设计和应用能力的培养而开设的综合设计训练环节。
本课程设计结合?计算机控制技术A?课程的根底理论,重点强调实际应用技能训练,包括计算机控制系统算法软件和硬件设计。
其课程设计任务是使学生通过应用计算机控制技术的根本理论,根本知识与根本技能,掌握计算控制技术中各主要环节的设计、调试方法,初步掌握并具备应用计算机进展设备技术改造和产品开发的能力,培养学生的创新意识,提高学生的动手能力、分析问题和解决问题的能力。
2 设计方法设计一个直流电机系统,合理选择PID控制规律,掌握被控对象参数检测方法、H桥驱动的功能、旋转编码器的功能、单片机PWM控制波形输出方法,进一步加强对课堂理论知识的理解与综合应用能力,进而提高解决实际工程问题的能力。
直流电机调速系统是以电机转速作为变量,单片机根据采集电机转速的测量值与设定值的偏差去控制PWM波形的脉宽,从而改变直流电机两端的电压,到达控制转速的目的。
直流电机调速系统由单片机、直流电机、光电式旋转编码器、H桥驱动、LCD显示屏等及相关电路组成。
3 设计方案及原理3.1系统功能介绍整个控制系统由控制器、执行器、被控对象和测量变送组成,在本次控制系统中控制器为单片机,采用算法为PID增量算法控制规律,执行器为H桥驱动电路,测量变送器为光电式旋转编码器,被控对象为直流电机。
然后通过单片机对数据进展处理,控制转速的大小和正反转。
3.2系统组成总体构造计算机控制系统由控制计算机系统和生产过程两大局部组成。
控制计算机是指按生产过程控制的特点和要求而设计的计算机系统,它可以根据系统的规模和要求选择或设计不同种类的计算机。
计算机控制系统根本构造如图1所示。
控制器D/A 执行机构被控对象A/D 测量变送r 给定值+-euy 被控量图1 计算机控制系统根本构造直流电机调速系统构造框图如图2所示。
《专业课程设计》实验报告直流电机转速及方向的控制
专业课程设计设计报告直流电机转速及方向的控制班级:专业:设计人(学号):完成日期二零零九年九月直流电机转速及方向的控制一、设计目的:①培养自学能力:由于DP-51PROC单片机综合仿真实验仪以前没用过,所以只能以已学过的51单片机实验箱为基础,自己摸索,学习。
②培养合作精神:由于本实验相对比较综合,需要这几个人的合作协调,所以在实验过程中,可以培养自己的合作精神。
③提高知识串联的应用能力:本实验涉及单片机,电力拖动,电子电子等知识,尤其是跟单片机联系非常紧密,需要有综合应用各个知识点的能力,如单片机的C语言,电力电子的PWM控制,以及电机拖动中的直流电机的工作原理等。
④培养查阅资料的能力:由于本实验用到的DP-51PROC单片机没有用过,所以程序调试过程中会遇到很多的问题,有时候需要自己去图书馆查阅资料,有时需要在网上搜索,甚至是请教以前的老师。
二、设计任务:在DP-51PROC单片机综合仿真实验仪为实验平台上,通过编写程序,以PWM(脉宽调制)方波,实现对直流电机的转速大小,正反方向的控制以及对直流电机的启动、停止的控制。
三、设计要求:1、学习如何控制直流电机,理解PWM功率驱动电路,学会利用仿真仪上的已有模块进行接口控制。
2、分析设计项目原理,进行方案可行性实验验证并有记录。
3、进行方案设计,包含硬件设计和软件设计,由于实验室提供DP-51PROC实验箱,所以主要是软件设计。
程序由C语言编写,在KEIL软件平台上通过编译,并生成HEX 文件,还要画出程序的流程图。
4、提供电子版和纸质的设计报告各一份。
5、准备方案论证的PPT,阐述设计思想。
四、系统方案设计:1、⑴系统总体设计:在DP-51PROC单片机综合仿真实验仪的实验平台上,编写实验程序,实现直流电机的启动停止、速度大小及方向控制。
①启动、停止控制可以通过定义DP-51PROC 单片机端口来实现。
②直流电机可以顺时转动,也可以逆时针转动,只要改变输入端接线的极性,就可以改变电机的转向,为防止方向瞬时变化给直流电机造成较大的冲击,产生火花,必须在电机停转后再改变方向,可通过加延时程序实现。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
目录一、设计目的及要求 (3)1.1 设计目的 (3)1.2 设计要求 (4)二、设计方案及论证之硬件电路设计 (4)2.1芯片简介 (4)2.2 电路原理图 (5)2.21 电机测速即驱动部分: (5)2.22电路供电系部分 (6)2.23显示部分 (6)三、设计方案及论证之软件设计 (7)3.1 程序设计思路 (7)四、器件清单 (18)五、器件识别与检测 (19)六、仿真结果: (20)七、软件简述 (21)页脚内容17.1 keil 简介 (21)7.2 keil与proteus联调与仿真实现 (21)九、参考文献 (22)课程设计任务书页脚内容2一、设计目的及要求1.1 设计目的本设计主要是应用proteus软件和嵌入式C语言编程工具,结合单片机原理及应用。
危机原理与接口技术等专业课程,强化和巩固专业理论基础,掌握Proteus仿真的技巧和嵌入式C语言编程工具,提高单片机开发能力,并为嵌入式开发打下基础。
页脚内容31.2 设计要求(1) 使用AT89C51单片机为核心,使用4 位集成式数码管显示当前温度,温度传感器使用DS18B20,使用L298 驱动直流电动机。
(2)用4 位集成式数码管显示当前温度, , 当温度在≥45 C 时, 直流电动机在L298 0 0 驱动下加速正转,温度在≥75 C 全速正转;当温度≤10 C 时,直流电动机加速反转,温度≤0 C 时,直流电动机全速反转;温度10 C ~ 45 C 之间时,直流电动机停止转动。
(3)控制程序在Keil 软件中编写,编译,整个控制电路在Proteus 仿真软件中连接调示。
二、设计方案及论证之硬件电路设计2.1芯片简介本设计选择采用AT89C51单片机为核心。
AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。
同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。
空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。
掉电方式保存RAM中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个硬件复位。
页脚内容42.2 电路原理图2.21 电机测速即驱动部分:电机选用美国史普拉格公司生产的3000 系列霍尔开关传感器3013,它是一种硅单片集成电路,器件的内部有稳压电路,霍尔电视发生器,放大器,施密特触发器和集成开路输出电路,具有工作电压范围宽,页脚内容5可靠性高,外电路简单,输出电平可与各种数字电路兼容等特点。
电动机测试部分原理图如下:2.22电路供电系部分电路通过12V 电源供电,由霍尔元件及外围器件组成的测速电路将电动机转速转换成脉冲信号送到单片机89C51 的P3.5 脚,作为T1 计数器计数使用,得到的计数值。
与设定的值进行比较形成偏差.根据比较结果通过Po 端口送给DAC0832 进行数/模转换, 从而使得输出电压增大或者减少,得到模拟电压输出给功率放大电路放大,再去控制电机的转速。
2.23显示部分采用LM016L作为显示屏下图为显示部分:页脚内容6三、设计方案及论证之软件设计3.1 程序设计思路程序框图开始页脚内容73.2源程序void dsreset(void) ;温度采集初始化{uint i;DS=1;i++;DS=0;i=103;while(i>0)i--;DS=1;i=4;while(i>0)i--;页脚内容9DS=1;}void tmpwritebyte(uchar dat);控制温度传感器{uint i;uchar j;bit testb;for(j=1;j<=8;j++){testb=dat&0x01;dat=dat>>1;if(testb) //write 1{DS=0;i++;i++;DS=1;页脚内容10i=8;while(i>0)i--;}else{DS=0;i=8;while(i>0)i--;//write 0DS=1;i++;i++;}}}bit tmpreadbit(void) ;读数据赋值给dat{uint i;bit dat;DS=1;页脚内容11DS=0;i++;i++;DS=1;i++;dat=DS;i=8;while(i>0)i--;return (dat);}uchar tmpread(void){uchar i,j,dat;dat=0;for(i=1;i<=8;i++){j=tmpreadbit();dat=(j<<7)|(dat>>1);}return(dat);}页脚内容12uint tmp() ;数据处理即判断温度正负{float tt;uchar a,b,b1;dsreset();delay(1);tmpwritebyte(0xcc);tmpwritebyte(0xbe);a=tmpread();b=tmpread();temp=b;b1=b;temp<<=8;temp=temp|a;if(b1<8){页脚内容13flag+=1;tt=temp*0.0625;temp=tt*10+0.5;dis_buf[0]=0;}else{flag-=1;temp=~temp;temp=temp+1;tt=temp*0.0625;temp=tt*10+0.5;dis_buf[0]=0x40;}return temp;}void display(uint temp);将采集后转化的温度对数组赋值页脚内容14{uchar A1,A2,A3;A1=temp/100;A2=temp%100/10;A3=temp%10;t=A1*10+A2;dis_buf[3] = table[A3];dis_buf[2] = table1[A2];dis_buf[1] = table[A1];}void timer1() interrupt 3;用定时器T1调用温度采集函数进行温度采集{TH1=(65536-20000)/256;TL1=(65536-20000)%256;tmpchange();页脚内容15display(tmp());}void timer0() interrupt 1;用定时器T0将处理后的温度用数码管显示{TH0 = (65536-500)/256;TL0 = (65536-500)%256;P2=0xff;P0=dis_buf[dis_index];P2=dis_digit;dis_digit = _crol_(dis_digit,1);dis_index++;dis_index &= 0x07;}if(flag==1);判断电机旋转情况{页脚内容16flag=0;if(t>=75)Turn_z();elseif(t>=45)Turn_zj();elseif(t>10)Turn_t();elseTurn_fj();}elseif(flag==-1){flag=0;Turn_f();页脚内容17}四、器件清单温度控制直流电机转速所需元器件清单页脚内容18五、器件识别与检测根据单片机的C语言程序设计与应用,我们知道了C51单片机,所用的一般元器件有电阻、电容、开关、排阻,而对于晶振和数码管是我们所必须学习和掌握的,晶振是一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。
他结合单片机内部的电路,产生单片机所必须的时钟频率,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越页脚内容19页脚内容20高,那单片机的运行速度也就越快。
数码管根据公共端的连接情况有共阳极共阴极两种,对共阴极LED 显示器的发光二极管的公共端的com 接地,当某发二极管的阳极为高电平时,相应的发光二极管点亮。
六、仿真结果:d0d0d1d1d2d2d3d3d4d4d5d5d6d6d7d7d 0d 1d 2d 3d 4d 5d 6d 7ER S RS R W ER W XTAL218XTAL119ALE 30EA31PSEN 29RST9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD 11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427U1AT89C51C122PFC222PFC310uFX112MR110kD 714D 613D 512D 411D 310D 29D 18D 07E 6R W 5R S 4V S S1V D D 2V E E3LCD1LM016L234567891RP1470R24.7k60.6DQ 2VCC 3GND 1U2DS18B20PWM1IN15IN27ENA 6OUT12OUT23ENB11OUT313OUT414IN310IN412SENSA 1SENSB15GND 8VS4VCC9U4L298C4100nf+203D1D2D3D4C5100nf+12VA B PWM1A B七、软件简述7.1 keil 简介Keil C51是美国Keil Software公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势。
因而易学易用。
Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试等在内的完整开发方案,通过一个集成开发环境uVision将这些部分组合在一起。
运行Keil软件需要WIN98、NT、WIN2000、WINXP等操作系统。
7.2 keil与proteus联调与仿真实现双击图标进入keil uVision2编程环境,输入程序。
返回桌面双击图标进入Proteus仿真环境。
点击左上角选项P后根据设计的电路图调出所需元件画好硬件原理图如图所示。
然后按照4.1节所写步骤设置keil和proteus的工作环境。
实现keil和proteus的联调。
八、总结在课程设计的过程中,用到了Keilc和Proteus两大软件,上课老师都有讲过这些专业知识,通过对这些专业知识的学习,提高了自己的知识水平,而在课程设计过程中,我加强了自己的动手能力,并且将专业知识用到实践上,让我对这两个软件更加熟悉。