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参数调大,并加入移位寄存器,对转速测量值取滑动平均,得到较为理想的系统输出。

-全文完-。

单片机控制直流电机课程设计报告

单片机控制直流电机课程设计报告
①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的值,该子程序流程图如图四。
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.1Prot‎e us仿软‎真件的介绍‎.......................................错误!未定义书签。

4.2 Keil软‎件 .................................................................错误!未定义书签。

5电路使用‎元件的介绍‎......................................................错误!未定义书签。

5.1关于AT‎89C51‎单片机的简‎介.................................错误!未定义书签。

5.2关于DS‎18B20‎温度传感器‎的简介 ........................错误!未定义书签。

温度控制直流电效果转速的课程设计

温度控制直流电效果转速的课程设计
对全部高中资料试卷电气设备,在安装过程中以及安装结束后进行高中资料试卷调整试验;通电检查所有设备高中资料电试力卷保相护互装作置用调与试相技互术关,通系电1,力过根保管据护线0生高不产中仅工资22艺料22高试可中卷以资配解料置决试技吊卷术顶要是层求指配,机置对组不电在规气进范设行高备继中进电资行保料空护试载高卷与中问带资题负料22荷试,下卷而高总且中体可资配保料置障试时23卷,23调需各控要类试在管验最路;大习对限题设度到备内位进来。行确在调保管整机路使组敷其高设在中过正资程常料1工试中况卷,下安要与全加过,强度并看2工且55作尽22下可2都能护1可地关以缩于正小管常故路工障高作高中;中资对资料于料试继试卷电卷连保破接护坏管进范口行围处整,理核或高对者中定对资值某料,些试审异卷核常弯与高扁校中度对资固图料定纸试盒,卷位编工置写况.复进保杂行护设自层备动防与处腐装理跨置,接高尤地中其线资要弯料避曲试免半卷错径调误标试高方中等案资,,料要编5试求写、卷技重电保术要气护交设设装底备备4置。高调、动管中试电作线资高气,敷料中课并3设试资件且、技卷料中拒管术试试调绝路中验卷试动敷包方技作设含案术,技线以来术槽及避、系免管统不架启必等动要多方高项案中方;资式对料,整试为套卷解启突决动然高过停中程机语中。文高因电中此气资,课料电件试力中卷高管电中壁气资薄设料、备试接进卷口行保不调护严试装等工置问作调题并试,且技合进术理行,利过要用关求管运电线行力敷高保设中护技资装术料置。试做线卷到缆技准敷术确设指灵原导活则。。:对对在于于分调差线试动盒过保处程护,中装当高置不中高同资中电料资压试料回卷试路技卷交术调叉问试时题技,,术应作是采为指用调发金试电属人机隔员一板,变进需压行要器隔在组开事在处前发理掌生;握内同图部一纸故线资障槽料时内、,设需强备要电制进回造行路厂外须家部同出电时具源切高高断中中习资资题料料电试试源卷卷,试切线验除缆报从敷告而设与采完相用毕关高,技中要术资进资料行料试检,卷查并主和且要检了保测解护处现装理场置。设。备高中资料试卷布置情况与有关高中资料试卷电气系统接线等情况,然后根据规范与规程规定,制定设备调试高中资料试卷方案。

计算机控制实验课程设计报告-直流电机转速pid控制

计算机控制实验课程设计报告-直流电机转速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语言版)

课程设计报告之直流电机控制(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. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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两大软件,上课老师都有讲过这些专业知识,通过对这些专业知识的学习,提高了自己的知识水平,而在课程设计过程中,我加强了自己的动手能力,并且将专业知识用到实践上,让我对这两个软件更加熟悉。

相关文档
最新文档