单片机课程设计(优秀)_第1页
单片机课程设计(优秀)_第2页
单片机课程设计(优秀)_第3页
单片机课程设计(优秀)_第4页
单片机课程设计(优秀)_第5页
免费预览已结束,剩余22页可下载查看

下载本文档

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

文档简介

1、目录第一章 课程设计的目的和要求11.1课程设计的目的和要求 11.2课程设计预备知识 11.3课题设计的任务 4第二章总体设计 5第三章硬件设计 5第四章软件设计 8第五章 系统调试第六章 结束语参考文献参考文献 附录 1 系统工作原理图第一章 课程设计的目的和要求1.1 课程设计的目的和要求一、课程设计目的单片机应用基础课程设计是学好本门课程的又一重要实践性教学环节, 课程设计的目的就是配合本课程的教学和平时实验,以达到巩固消化课程的内 容,进一步加强综合应用能力及单片机应用系统开发和设计能力的训练, 启发创 新思维,使之具有独立单片机产品和科研的基本技能, 是以培养学生综合运用所 学知识

2、的过程,是知识转化为能力和能力转化为工程素质的重要阶段。 二、课程设计要求1 、利用 proteus 软件设计步进电机各模块工作原理图,并进行模拟仿真;2、控制程序设计、调试及实现:(1 )根据要求,写出完整的电机设计程序流程图;(2 )将设计程序输入、便宜,排除语法错误,生成 .hex 文件;(3 )利用 proteus 软件进行电路模拟仿真和调试;3、设计硬件电路并烧写程序,调试后系统能按照要求工作;4、写出课程设计说明书。1.2 课程设计预备知识(一)步进电机的介绍:步进电机是一种进行精确步进运动的机电执行元件,它广泛应用于工业机械的 数字控制,为使系统的可靠性、通用性、可维护性以及性价

3、比最优,根据控制系统 功能要求及步进电机应用环境,确定了设计系统硬件和软件的功能划分,从而实现 了基于 8051 单片机的四相步进电机的开环控制系统。 控制系统通过单片机存储器、 I/O 接口、中断、键盘、 LED 显示器的扩展、步进电机的环形分频器、驱动及保护 电路、人机接口电路、中断系统及复位电路、单电压驱动电路等的设计,实现了四 相步进电机的正反转,急停等功能。为实现单片机控制步进电机系统在数控机床上 的应用,系统设计了两个外部中断,以实现步进电机在某段时间内的反复正反转功 能,也即数控机床的刀架自动进给运动,随着单片机技术的不断发展,单片机在日 用电子产品中的应用越来越广泛,自六十年代

4、初期以来,步进电机的应用得到很大 的提高。人们用它来驱动时钟和其他采用指针的仪器,打印机、绘图仪,磁盘光盘 驱动器、各种自动控制阀、各种工具,还有机器人等机械装置。此外作为执行元件, 步进电机是机电一体化的关键产品之一,被广泛应用在各种自动化控制系统中,随 着微电子和计算机技术的发展,它的需要量与日俱增,在各个国民经济领域都有应 用。步进电机是机电数字控制系统中常用的执行元件,由于其精度高、体积小、控 制方便灵活,因此在智能仪表和位置控制中得到了广泛的应用,大规模集成电路的 发展以及单片机技术的迅速普及,为设计功能强,价格低的步进电机控制驱动器提 供了先进的技术和充足的资源。(二)步进电机工作

5、原理: 步进电机是工业过程控制及仪表中常用的控制元件之一, 例如在机械装置中 可以用丝杠把角度变为直线位移, 也可以用步进电机带螺旋电位器, 调节电压或 电流,从而实现对执行机构的控制。 步进电机可以直接接收数字信号, 不必进行 数模转换,用起来非常方便。 步进电机还具有快速启停、 精确步进和定位等特点, 因而在数控机床、绘图仪、打印机以及光学仪器中得到广泛的应用当某一相绕组通电时,对应的磁极就产生磁场,并与转子形成磁路,如果这 时定子的小齿和转子的小齿没有对齐,则在磁场的作用下,转子将转动一定的角 度,使转子和定子的齿相互对齐。由此可见,错齿是促使步进电机旋转的原因。三相步进电机结构示意图1

6、.步进电机的运转是由脉冲信号控制的, 传统方法是采用数字逻辑电路一环形脉冲分配器控制步进电机的步进。因此:(1) 、如果按照ABCA的顺序轮流通电一周,循环下去就可以进行单- 三拍运转。设高电平用“ 1”表示,低电平用“0”表示,依次循环直到停止:单-三拍脉冲分配表:A100B010C001则步进电机时序波形图如下:、如果按照AB BC CA AB的顺序轮流通电一周,循环下去就可以进行双-三拍运转。双-三拍脉冲分配表:A101B110C011则此时步进电机时序波形图如下(3)、如果按照AB B BC CCA A AB的顺序轮流通电一周,循环下去就可以进行单双-三拍运转单双-三拍脉冲分配表:A1

7、00011B111000C001110此时步进电机时序波形图如下2.步进电机的控制:(1 )、运转方向控制。步进电机以三相六拍方式工作,若按AB B BCCCAA次序通电为正转,则当按AACCCB BBA次序通电为反 转。(2) 、运转速度的控制。当改变 CP脉冲的周期时,ABC三相绕组高低电 平的宽度将发生变化,这就导至通电和断电时速率发生了变化,使电机转速改变, 所以调节CP脉冲的周期就可以控制步进电机的运转速度。(3) 、旋转的角度控制。因为每输入一个CP脉冲使步进电机三相绕组状态变化一次,并相应地旋转一个角度,所以步进电机旋转的角度由输入的CP脉冲数确定。(三) 单片机芯片89C51单

8、片机Atmel公司生产的89C51单片机是一种低功耗/低电压高性能的8位单片 机,它采用CMoS和高密度非易失性存储技术,而且其输出引脚和指令系统都与 MCS-51兼容;片内的Flash ROM 允许在系统内改编程序或用常规的非易失性 编程器来编程,内部除 CPU夕卜,还包括256字节RAM,4个8位并行I/O 口, 5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是 一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。1.3课题设计的任务及目标课程设计任务:根据给定的任务要求选择合适的单片机和其他电子元器件,进行系统硬件电路设计和软件编程,根据系统制作并调

9、试系统电路板,使之实现 任务要求。有关参数选择要求符合国家标准。具体设计内容如下:模拟步进电机控制,通过 AT89C51的端口控制实现对步进电机的控制:包 括电机的正转、反转、加速、减速以及实现电机可以按一定的节拍运转,如三相 电机单-三拍、双-三拍、单-双-三拍运转。课程设计目标:1 课程设计说明书一份;2 系统工作原理图一张;3 . C语言源程序;4 硬件电路板调试通过;第二章总体设计主要介绍对系统设计的总体认识及解决方案,并对采取的方案进行论证(一)系统设计的总体框图如图所示:Vl复位电路 步进电机C单片机AT89C51P0P2P1P3液晶显示电机工作模式 控制部分(二)论证设计:该方案

10、利用单片机Po、pl、P2、P3 口高低电平的控制实现步进电机的启 动、停止、正转、反转、加速、减速和各拍节转动以及状态显示的目的。该系统的输入量为电机转向即正转与反转 2根口线,速度的增减2根口线, 拍节的变化,包括单-三拍、双-三拍、单-双-三拍3根口线,再加上一根控制系 统停止大SToP 口线一共8根口线,恰好利用P3 口的P3.0 P3.7端口实现。P1口接电机是程序控制的输出端, 通过脉冲控制输出端高低电平控制步进电机以何种模式运转。P0与P2端口结合通过控制电阻排内部电流来控制 LCD显示器。第三章 硬件设计 本设计的硬件电路只要包括步进电机控制电路部分、 最小系统( AT89C5

11、1 )芯 片、以及显示电路三大部分。控制电路只是由开关和按键组成,由操作者根据相应 的工作需要进行操作。最小系统只要是为了使单片机正常工作。显示电路主要是为 了显示电机的工作状态和转速。(一) 控制电路部分 :根据系统的控制要求,控制输入部分设置了速度加减控制,暂停控制,换向控制和工作模式控制,分别是 K1、K2,STOP,R、L,M1、M2、M3控制电路如图4所示。通过不间断键盘检测,当检测到K1、K2按键状态变化时,内部程序检测P3.0 和P3.1的状态来调用相应的加速和减速程序;当检测到 STOP按键状态变化时,内 部程序检测P3.2的状态实现暂停功能;当检测到 R或L按键状态变化时,内

12、部检测 P3.3和P3.4端口调用正反转命令程序实现正反转;当检测到按键 M1、M2、M3变 化时,内部扫描对应 P3.5P3.7 端口状态以调用相应的源程序实现模式之间的转控制原理图如下图所示:(二)最小系统芯片部分:单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以 工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、 晶振电路。复位电路:使用了独立式键盘,单片机的 P1 口键盘的接口。该设计要求只需 4 个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了6路独立式键盘。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片

13、机进入复位状态,晶振电路用 30PF的电容和一 12M晶体振荡器组成为整个电路提 供时钟频率。晶振电路:8051单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚XTAL1和XTAL2外部接晶振电路器(简称晶振)或陶 瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当 外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路 如图5示。其电容值一般在530pf,晶振频率的典型值为12MHz,采用6MHz的情况 也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。最小系统部分原理图如下:OeD <>KTAL

14、1RSTPSENALEEAUI19O1C2gRlIkTEXT1R2 1"5 E781 OC OUTEXl4t i X1CRYSTALP0.0JtD0P 0.1 MDl 0JAD2 P0.3AD3P 0.4/AD 4P0.5AD5P0.&/AD6P0.7ADrP2.0/A3P2.1/A9 P2.2/A10 P2.3/A11 P2.4/A12 P2.5/A13 P2B/A14 P2 7/A15WWWP1.0PUP1.2PilJaP1.4P1.5 p.eP17P3 O/RXDP3.tD<DP3.2rlNTP3.3ZIMT1P3.4/TDP 3.5/T1P3.6RP3.7/RD

15、pfiT-AT6C51(三)显示电路:在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为18级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路,以便知道电机处于何种工作状态。 使用ICd显示器LM016L型号(具体参数需查看该显示器使用说明)显示器实现双行显示,可以很明确知道工作状态。显示部分电路图如下图所示:LCDlLMOI 创一 晶显了g0OE寸1-KHII1 a* 干 IPB;OfAE)O PolMI P0.2D2 F*0.3AD3 P0 4AD4 P0.5M5 R0EWDB 口仃 7 7芻HI57h238E l&g

16、t;337I4鼻E535H6t -"7Iilj032IJL9h21IiRESPACK-822II=_P2.2JA10F2.3/A1 1P2.4/A12P2.5/A134j ; ri r21:第四章软件设计该电机程序采用 C语言源程序控制,采用自下而上程序设计结构,先设计出每一个具 体的模块(子程序)例如 LCD内部控制程序模块、显示内容部分程序模块、正反装减速减 速变拍模块,然后再慢慢扩大,最后组成一个系统,即步进电机的主程序。下面是各程序模块的源程序代码:1. LCD内部控制程序模块:Sbit RS=P20;sbit RW=P21;sbit E=P22;void write_add

17、(uchar i)/写命令函数RS=0;E=0;P0=i;delay(5);E=1;delay(5);E=0;void write_date(uchar i)/ 写数据函数RS=1;E=0;P0=i;delay(5);E=1;delay(5);E=0;LCDvoid init_lcd()/ 初始化程序,开中断,初始化EA=1;ET0=1;TMOD=0x01;TH0=0x3c;TL0=0xb0;TR0=1;RS=0;E=0;RW=0;write_add(0x01);write_add(0x38);write_add(0x0c);write_add(0x06);void displaynum(uc

18、har i,uchar j)/write_add(0x80+i);write_date(0x30+j);void display1(uchar i,uchar j)/write_add(0x80+i);write_date(j);void display2(uchar i,uchar j)/write_add(0xc0+i);write_date(j);2. 显示内容部分程序模块:#define sp 0#define state 1显示函数显示函数显示函数#define mode 2uchar s_name="speed:"uchar m_name="mode:

19、"uchar *str="stop","right","left"uchar *str_mode="1_3","2_3","1_2"void init_display()uchar i;for(i=0;i<6;i+)display1(i,s_namei);delay(5);displaynum(6,Speed/10);delay(5); displaynum(7,Speed%10);delay(5);for(i=0;i<5;i+)display1(i+9

20、,*(str1+i);delay(5);for(i=0;i<5;i+)display2(i,m_namei);delay(5);for(i=0;i<3;i+)display2(i+6,*(str_mode0+i);delay(5);void spd(uchar speed)displaynum(6,speed/10);displaynum(7,speed%10);void f_state(uchar stat)uchar i;for(i=0;i<5;i+)display1(i+9,*(strstat+i);delay(5);void f_mode(uchar mod)ucha

21、r i;for(i=0;i<3;i+)display2(i+6,*(str_modemod+i);delay(5);void (*display)(uchar)=spd,f_state,f_mode;3. 正反装减速减速变拍模块sbit A1=P10; / 定义步进电机连接端口sbit B1=P11;sbit C1=P12;#define Coil_AB1 A1=1;B1=1;C1=0;/AB相通电,其他相断电#define Coil_BC1 A1=0;B1=1;C1=1;/BC相通电,其他相断电#define Coil_CA1 A1=1;B1=0;C1=1;/CD相通电,其他相断电#d

22、efine Coil_A1 A1=1;B1=0;C1=0;/A相通电,其他相断电相通电,其他相断电相通电,其他相断电相通电,全部断电#define Coil_B1 A1=0;B1=1;C1=0;/B#define Coil_C1 A1=0;B1=0;C1=1;/C其他相断电#define Coil_OFF A1=0;B1=0;C1=0;/int step=1;int dir=1;uchar step_num=0;uchar Speed=1;void step1_3()step=step%3;switch(step)case 0:Coil_A1;break;case 1:Coil_B1;brea

23、k;case 2:Coil_C1;break;default:break;step=step+dir;if(step<0)step=2;void step2_3()step=step%6;switch(step)case 0:Coil_A1;break;case 1:Coil_AB1;break;case 2:Coil_B1;break;case 3:Coil_BC1;break;case 4:Coil_C1;break;case 5:Coil_CA1;break; default:break;step=step+dir;if(step<0)step=5;void step1_2(

24、)step=step%9;switch(step)case 0:Coil_A1;break;case 1:Coil_A1;break;case 2:Coil_AB1;break;case 3:Coil_B1;break;case 4:Coil_B1;break;case 5:Coil_BC1;break;case 6:Coil_C1;break;case 7:Coil_C1;break;case 8:Coil_CA1;break;default:break;step=step+dir;if(step<0)step=8;void (*stepper)(void)=step1_3,step2

25、_3,step1_2;4. 步进电机的主程序:#include <reg51.h>#define uchar unsigned char#define uint unsigned intvoid delay(uint z);#include"lcd.c"#include"stepper.c"#include"display.c" / 显示部分#define KeyPort P3uchar times=0;void delay(uint z)/ 延时函数uint x,y;for(x=z;x>0;x-)for(y=180

26、;y>0;y-);void KeyScan()/ 按键扫描uchar keyvalue;if(KeyPort!=0xff)delay(5);/ 延时去抖 if(KeyPort!=0xff)keyvalue=KeyPort;switch(keyvalue)case 0xfe:if(Speed<18)Speed+;(*displaysp)(Speed);break;/ 加速case0xfd:if(Speed>1)Speed-;(*displaysp)(Speed);break;/ 减速case 0xfb:dir=0;(*displaystate)(0);break;/停止case 0xf7:dir=1;(*displaystate)(1);break;/正转( right )case 0xef:dir=-1;(*displaystate)(2);break;/反转( left )case 0xdf:step_num=0;(*displaymode)(step_num);break; / 1-3 拍case 0xbf

温馨提示

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

评论

0/150

提交评论