直流电动机控制电路设计_第1页
直流电动机控制电路设计_第2页
直流电动机控制电路设计_第3页
直流电动机控制电路设计_第4页
直流电动机控制电路设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、韶 关 学 院课程设计说明书论文课程设计题目:直流电动机控制电路设计仿真学生姓名:陈绮媚学 号:09101071027院 系:物理与机电工程学院专业班级:09电子一班 指导教师姓名及职称:周永明 教授洪远泉 实验师 起止时间: 2021年 9 月 2021年 11 月 课程设计评分:直流电机控制电路设计仿真设计目的了解直流步进电动机驱动电路的工作原理和设计方法掌握串行ADC0831芯片的驱动方法掌握利用单片机控制产生PWM的方法实验仪器 单片机开发板、直流电源、计算机实验软件平台设计任务 利用AT89C52单片机对直流电动机进行转速、旋转方向的控制。用以单刀双掷开关控制直流电动机的旋转方向,用

2、电位器通过ADC0831将模拟电压量转换为数字值,作为PWM波形的延时常数,从而控制电动机的转速。设计原理实验原理图如图1: 图1图1中,DIR为0时,Q4,Q2截止,Q3,Q1导通。此时PWM如果输出为1,那么Q6,Q8导通,Q5,Q7截止,直流电机正转。如果PWM为0,那么Q6,Q8截止,Q5,Q7导通,直流电机反转。DIR、PWM的编码对应电动机的状态如下表所示。DIRPWM电动机状态00停止01正转10反转11停止 六、实验步骤Keil 软件的工程工程设计 第一步:翻开Keil u vision2软件,选择Project/New Project,选择保存工程文档的路径。工程文档的名字为

3、直流电动机,选择“保存。如图2所示。第二步:选择单片机类型为atmel公司的AT89C52,然后选择“确定第三步:参加启动代码。如下图。选择“是第四步:新建设计文件直流电动机.c 。File/New 。然后保存文件。第五步:将直流电动机.c文件添加到工程工程中。第六步:将程序输入文本中。C语言程序源代码:#includereg51.h #includeintrins.h #define uchar unsigned char #define uint unsigned int sbit CS=P20; sbit CLK=P24; sbit DO=P25 ; sbit PWM=P37; sbit

4、 SW=P32; sbit DIR=P36; sbit ACC0=ACC0; uchar AD_TMP,time; void delay(uchar ms) int i; while (ms-) for(i=0;i0;i-) Data0;i-) _nop_(); return(Data); void POS() DIR=1; PWM=1; time=AD_TMP; delay(time); PWM=0; time=255-time; delay(time); void NEG() DIR=0 ; PWM=0; time=AD_TMP; delay(time); PWM=1; time=255-

5、time; delay(time); void main() while(1) AD_TMP=AD_CONV(); SW=1; if(SW=1) POS(); else NEG() ; 第七步:编译程序。第八步:生成机器码。设置KeilC软件,产生十六进制的机器码文件,用于烧写到单片机。在Option fot Target1选项中,选择output中的Creat HEX File.再从新编译系统,就可以产生直流电动机.hex文件。第九步:系统仿真 Keil 平台下软件仿真分为模拟仿真和硬件仿真,仿真模式的设置在目标选项“Options for TargetTatget1界面下,选择Debug.

6、“Use Simulation未模拟仿真, 不用加硬件仿真器,可以仿真 与端口硬件没有关联的程序。选择Protues VSM Simulation可以将Protues与Keil关联,用软件实现硬件仿真功能。 运行Protues软件建立新工程,保存后。跟据图1找出所示的原件,并按照图连接好线。六 思考题在原来电路的根底上,参加液晶和行列式键盘,用K0键控制直流电动机正转,K1键控制电机反转。转速控制仍然根据ADSC0831采集的电压来定。液晶屏第一行显示电机是正转还是反转,第二行显示ADSC0831采集的电压。1.1源程序如下: #includereg51.h #includeintrins.h

7、 #define uchar unsigned char #define uint unsigned int sbit CS=P20; sbit CLK=P24; sbit DO=P25 ; sbit PWM=P37; sbit SW=P32; sbit DIR=P36; sbit ACC0=ACC0; void Delay(uint i) while(i-); void Write_Instruction(uchar x) Delay(1000); E=0; RW=0; RS=0; LCDData=x; E=1; Delay(20); E=0; void Write_Data(char x)

8、 Delay(1000); E=0;RW=0;RS=1;E=1; LCDData=x;E=0;void Cls(void)Write_Instruction(0 x01); void InitLCD(void)Write_Instruction(0 x38);Delay(200);Write_Instruction(0 x0c);Delay(200);Write_Instruction(0 x06);Delay(200); void Write_String(uchar x,uchar *p) Write_Instruction(x); while(*p!=0 x00) Write_Data(

9、*p); p+; if (x+=0 x8f) Write_Instruction(0 xc0); bit ReadKey(void) bit dat; keyport=0 xf0; if(keyport=0 xf0) dat=0;else dat=1;return(dat);/* ReadKey(); IdentifyKey(); */ uchar IdentifyKey(void) uchar i=0,j=0 xfe,m; while(j!=0 xef) keyport=j; m=keyport&0 xf0; switch(m) case 0 xe0: i=i+0; j=0 xef; bre

10、ak; case 0 xd0: i=i+1; j=0 xef; break; case 0 xb0: i=i+2; j=0 xef;break;case 0 x70: i=i+3; j=0 xef; break; default: i=i+4; j=(j1)+1; break; return(i); void ScanKey(void) if (ReadKey() uchar key; key=IdentifyKey(); while(ReadKey(); switch(key) case 0 : uchar AD_TMP,time; void delay(uchar ms) int i; while (ms-) for(i=0;i0;i-) Data0;i-) _nop_(); return(Data); void POS() DIR=1; PWM=1; time=AD_TMP; delay(time); PWM=0; time=255-time; delay(time); void NEG() DIR

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论