直流电机正反转控制_第1页
直流电机正反转控制_第2页
直流电机正反转控制_第3页
直流电机正反转控制_第4页
直流电机正反转控制_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

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

文档简介

1、(课程设计说明书(2015/2016 学年第 二 学期)课程名称 :单片机应用技术课程设计 题 目 : 直流电机正反转控制 专业班级 :电气工程及其自动化1321班学生姓名 : 学 号: 130062131 指导教师 : 等 设计周数 : 两周 设计成绩 : 2016年6月 24日目 录一、课程设计目的-3二、课程设计任务及要求-3 2.1 原始数据及主要任务-3 2.2 技术要求-3 三、单片机简介-3 四、软件设计-4 4.1 系统分析及应用种类-4 4.2 系统设计-55、 电路设计 -5 5.1 电机驱动电路设计-5 5.2 显示电路设计-6 5.3 按键设计-6 5.4 Proteu

2、s 仿真图-7 5.5 Protel 99se 原理图-7 六、程序设计-8 七、操作控制-13八、心得体会-14九、参考文献-14一、课程设计目的 通过长达两周的课程设计,加深对单片机课程所学理论知识的理解,运用所学理论知识解决实际问题。结合课程设计的内容,学会利用Protel软件绘制电路原理图,掌握电路的设计与组装方法,进行软硬件联机调试。学会查阅相关专业技术资料及设计手册,提高进行独立设计的能力并完成课程设计相关任务。二、课程设计任务及要求 2.1 原始数据及主要任务 1.设计直流电机控制电路。 2.设计数码管显示电路。 3.设计开关电路。 4.分配地址,编写系统程序。 5.利用Prot

3、el设计硬件电路原理图和PCB图。 6.软硬件联机调试。 7.书写设计报告。 2.2 技术要求 设计一个以MCS-51 单片机为核心,使用I/O 口控制三极管连接继电器驱动小型,直流电机,控制正反转。用两个数码管分别显示两个正反转控制开关控制电机正反转的次数。 三、单片机简介AT89C51单片机,其内部带有4KB的ROM。无需扩展外部程序存储器。其中:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输

4、出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。P3口也可作为AT89C51的一些特殊功能口:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);

5、P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入);P3.5 T1(记时器1外部输入);P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通)。RST:复位输入。EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器,不管是否有内部程序存储器。当/EA端保持高电平时,此间内部程序存储器。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。四、软件设计4.1 系统分析及应用种类 : 应用的软件有 Protel99se Proteus7.5 Keil uVision4. 1 Protel99se的应用(1

6、) 在桌面上新建立文件夹重名名为直流电机正反转控制(2) 打开Protel99se软件(3) 运行Protel99se(4) 点击File 文件New新建(5) 注意保存形式为.DDB2 Proteus7.5的应用(1) 打开 Proteus7.5软件。(2) 在左上文件中新建设计。(3) 在界面的正上方的“库”中搜索要用的元件,然后拖入新建设计中。(4) 连线,连线有三种 无模式连线,自动连线模式,动态光标显示。(5) 移动元件 备注元件等。3 Keil uVision4 的应用(1) 打开 Keil uVision4 ,点击project,在新建 Keil project。(2) 首先要选

7、择保存的途径,在新建文件名,最后保存文件。(3) 保存文件啊后会弹出窗口,选择要运行的文件,选好后点击OK会弹出“是”或“否”,只需按否。(4) 新建编写程序窗口。(5) 在新建编写程序窗口写程序。(6) 保存程序文件必须是.C。(7) 最后,将相关的程序放到Protuse软件中进行仿真。4.2 系统设计 :根据课程设计要求在各个软件中进行设计。1. 首先应用Protel99se进行原理图设计,(1) 在Protel99se中先设计单片机画出80C51引脚图。(2) 在Protel99se中设计画出共阳极数码管的引脚图。(3)然后再Protel99se设计原理图界面插入设计的单片机引脚元件和共

8、阳极数码管引脚元件,按课程要求设计电路,其次进行链接元件。2. 设计原理通过后,在Proteus7.5 进行设计图的修饰和绘制。3. 在Proteus7.5 中绘制好原理图,然后在Keil uVision4中按要求编写设计程序。4. 编写好程序在Keil uVision4中编译无误后将程序导入Proteus7.5的原理图中进行仿真。 五、电路设计 1、电机驱动电路设计: 驱动电路为三极管驱动的桥式电路。2. 显示电路设计 采用LED共阴极数码管动态显示数据与个项参数,方法简单,容易控制,如图: 3. 按键设计 该系统中只运用到三个控制按钮,即 “正转”,“反转”,“停止”,由于按钮较少,所以采

9、用独立键电路,这种按键电路的按键结构相对行列式按键电路更简单。如图: 4、Proteus 仿真图5. Protel 99se原理图 六、程序设计 #include <reg51.h>#include <intrins.h>#define INT8U unsigned char#define INT16U unsigned int#define S1_ON() (P3 & (1<<0) = 0x00 /正转#define S2_ON() (P3 & (1<<2) = 0x00 /停转#define S3_ON() (P3 &

10、 (1<<1) = 0x00 /反转#define Forward0#define Stop1#define Backward2#define u8 unsigned char#define s8 signed char#define u16 unsigned short#define s16 signed short #define u32 unsigned int #define s32 signed int#define fp32 float#define fp64 double sbit w1= P12;sbit w2=P13;#define DIG_SEG P2 /段选u

11、8 code u8DigTab18 = 0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x00,0x39,0x5e,0x79,0x71,0x40,0x00;/0、1、2、3、4、5、6、7、/8、9、A、B、C、D、E、F、/-u8 idata u8DigShow1; u8 idata u8DigShow2; u8 idata u8DigShow3; u8 idata u8DigShow4; u8 u8DigShowTemp = 0; void delay_ms(u16 cnt) u16 x;for( ; cnt>0; cn

12、t-)for(x=110; x>0; x-); /-/ 延时函数/-void delay_us(INT16U x) for(; x>0; x-) _nop_(); /-/ 主程序/-/* 函 数 名 : dis_dri* 函数功能 : 数码管扫描函数* 输 入 : 无* 输 出 : 无*/void dis_dri(void) static u8 u8DisStep = 1; DIG_SEG = 0x00; switch(u8DisStep) case 1: /显示第1位 u8DigShowTemp=u8DigTabu8DigShow1; DIG_SEG = u8DigShowTem

13、p; w1=0;w2=1; break; case 2: /显示第2位 u8DigShowTemp=u8DigTabu8DigShow2; DIG_SEG = u8DigShowTemp; w1=1;w2=0; break; u8DisStep+; if(u8DisStep>2)/扫描完8个数码管后,重新从第一个开始扫描 u8DisStep=1; void main() TMOD |= 0x01; TH0 = 0xf8; TL0 = 0x2f;/?(65535-63535) TR0 = 1;/? ET0 = 1;/? ES=1; EA = 1; u8DigShow1 =0; u8DigS

14、how2 =0; u8DigShow3 =0; u8DigShow4 =0; while (1) int speed = 200; char str_flag; char cnt_a; char cnt_b; if(S2_ON() P0 = (1<<Stop); M_DIR = 0;M_PWM = 0; str_flag = 0; continue; if(S1_ON() delay_ms(10); if (S1_ON() while(P3 & (1<<0) = 0x00);M_DIR = 0;P0 =(1<<Forward); str_flag =

15、 1; if (+cnt_a>10) cnt_a = 1; u8DigShow1 = cnt_a%10; if (S3_ON() delay_ms(10);if (S3_ON() while(P3 & (1<<1) = 0x00);if (+cnt_b>10) cnt_b = 1; u8DigShow2 = cnt_b%10; M_DIR = 1;P0 =(1<<Forward);str_flag = 1; if(Key_INC =0)speed = speed<400?speed+1:400; if(Key_INC = 0) speed =

16、speed>0?speed-1:0; if (str_flag = 1) M_PWM =1;delay_us(speed); M_PWM = 0;delay_us(400-speed); void time0_interrupt() interrupt 1 dis_dri(); TH0 = 0xf8; TL0 = 0x2f;/?(65535-63535) TR0 = 1;七、操作控制1、当按下正转按钮时,直流电机根据制定默认状态开始转动,直流电机正转,数码管计数正转次数(此时按下反转不影响正转且反转数码管不计数);2、当再次按下反转按钮时,直流电机反向转动,当按下反转按钮时,直流电机反转

17、,数码管计数反转次数(此时按下正转不影响反转切正传数码管不计数);3、当数码管计数满以后,数字归零,4、按下停止按钮,电机停止转动。八、心得体会通过此次课程设计,使我更加扎实的掌握了有关高频电子线路方面的知识,在设计过程中虽然遇到了一些问题,但经过一次又一次的思考,一遍又一遍的检查终于找出了原因所在,也暴露出了前期我在这方面的知识欠缺和经验不足。实践出真知,通过亲自动手制作,使我们掌握的知识不再是纸上谈兵。回顾起此课程设计,至今我仍感慨颇多,从理论到实践,在这段日子里,可以说得是苦多于甜,但是可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力实验过程中

温馨提示

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

评论

0/150

提交评论