单片机课程设计(优秀)

上传人:无*** 文档编号:171172294 上传时间:2022-11-24 格式:DOC 页数:17 大小:495.50KB
收藏 版权申诉 举报 下载
单片机课程设计(优秀)_第1页
第1页 / 共17页
单片机课程设计(优秀)_第2页
第2页 / 共17页
单片机课程设计(优秀)_第3页
第3页 / 共17页
资源描述:

《单片机课程设计(优秀)》由会员分享,可在线阅读,更多相关《单片机课程设计(优秀)(17页珍藏版)》请在装配图网上搜索。

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则步进电机时序波形图如下:(2)、如果按照ABBCCAAB的顺序轮流通电一周,循环下去就可以进行双-三拍运转。双-三拍脉冲分配表:A101B110C011则此时步进电机时序波形图如下:(3)、如果按照ABBBCCCAAAB的顺序轮流通电一周,循环下去就可以进行单双-三拍运转。单双-三拍脉冲分配表:A100011B111000C001110此时步进电机时序波形图如下:2.步进电机的控制:(1)、运转方向控制。步

7、进电机以三相六拍方式工作,若按ABBBCCCAA次序通电为正转,则当按AACCCBBBA次序通电为反转。(2)、运转速度的控制。当改变CP脉冲的周期时,ABC三相绕组高低电平的宽度将发生变化,这就导至通电和断电时速率发生了变化,使电机转速改变,所以调节CP脉冲的周期就可以控制步进电机的运转速度。(3)、旋转的角度控制。因为每输入一个CP脉冲使步进电机三相绕组状态变化一次,并相应地旋转一个角度,所以步进电机旋转的角度由输入的CP脉冲数确定。(三)单片机芯片89C51单片机 Atmel公司生产的89C51单片机是一种低功耗/低电压高性能的8位单片机,它采用CMOS和高密度非易失性存储技术,而且其输

8、出引脚和指令系统都与MCS-51兼容;片内的Flash ROM允许在系统内改编程序或用常规的非易失性编程器来编程,内部除CPU外,还包括256字节RAM,4个8位并行I/O口,5个中断源,2个中断优先级,2个16位可编程定时计数器,89C51单片机是一种功能强、灵活性高且价格合理的单片机,完全满足本系统设计需要。1.3课题设计的任务及目标课程设计任务:根据给定的任务要求选择合适的单片机和其他电子元器件,进行系统硬件电路设计和软件编程,根据系统制作并调试系统电路板,使之实现任务要求。有关参数选择要求符合国家标准。具体设计内容如下:模拟步进电机控制,通过AT89C51的端口控制实现对步进电机的控制

9、:包括电机的正转、反转、加速、减速以及实现电机可以按一定的节拍运转,如三相电机单-三拍、双-三拍、单-双-三拍运转。课程设计目标:1课程设计说明书一份;2系统工作原理图一张;3C语言源程序;4硬件电路板调试通过;第二章 总体设计主要介绍对系统设计的总体认识及解决方案,并对采取的方案进行论证(一)系统设计的总体框图如图所示: 单片机AT89C51液晶显示步进电机电机工作模式控制部分复位电路P1P0P2P3(二)论证设计:该方案利用单片机p0、p1、P2、P3口高低电平的控制实现步进电机的启动、停止、正转、反转、加速、减速和各拍节转动以及状态显示的目的。 该系统的输入量为电机转向即正转与反转2根口

10、线,速度的增减2根口线,拍节的变化,包括单-三拍、双-三拍、单-双-三拍3根口线,再加上一根控制系统停止大STOP口线一共8根口线,恰好利用P3口的P3.0P3.7端口实现。P1口接电机是程序控制的输出端,通过脉冲控制输出端高低电平控制步进电机以何种模式运转。P0与P2端口结合通过控制电阻排内部电流来控制LCD显示器。第三章 硬件设计本设计的硬件电路只要包括步进电机控制电路部分、最小系统(AT89C51)芯片、以及显示电路三大部分。控制电路只是由开关和按键组成,由操作者根据相应的工作需要进行操作。最小系统只要是为了使单片机正常工作。显示电路主要是为了显示电机的工作状态和转速。 (一) 控制电路

11、部分:根据系统的控制要求,控制输入部分设置了速度加减控制,暂停控制,换向控制和工作模式控制,分别是K1、K2,STOP,R、L,M1、M2、M3控制电路如图4所示。通过不间断键盘检测,当检测到K1、K2按键状态变化时,内部程序检测P3.0和P3.1的状态来调用相应的加速和减速程序;当检测到STOP按键状态变化时,内部程序检测P3.2的状态实现暂停功能;当检测到R或L按键状态变化时,内部检测P3.3和P3.4端口调用正反转命令程序实现正反转;当检测到按键M1、M2、M3变化时,内部扫描对应P3.5P3.7端口状态以调用相应的源程序实现模式之间的转换。控制原理图如下图所示:(二)最小系统芯片部分:

12、 单片机最小系统或者称为最小应用系统,素质用最少的元件组成的单片机可以工作的系统,对51系列单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。 复位电路:使用了独立式键盘,单片机的P1口键盘的接口。该设计要求只需4个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了6路独立式键盘。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用30PF的电容和一12M晶体振荡器组成为整个电路提供时钟频率。 晶振电路:8051单片机的时钟信号通常用两种电路形式电路得到:内部震荡 方式和外部中断方式。在引脚XTAL1和XTAL2外部接晶振电路器(简

13、称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图5示。其电容值一般在530pf,晶振频率的典型值为12MHz,采用6MHz的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。最小系统部分原理图如下:(三)显示电路: 在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为18级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路,以便知道电机处于何种工作状态。使用lcd显示器LM016L型号(具体参数需查

14、看该显示器使用说明)显示器实现双行显示,可以很明确知道工作状态。显示部分电路图如下图所示:第四章 软件设计该电机程序采用C语言源程序控制,采用自下而上程序设计结构,先设计出每一个具体的模块(子程序)例如LCD内部控制程序模块、显示内容部分程序模块、正反装减速减速变拍模块,然后再慢慢扩大,最后组成一个系统,即步进电机的主程序。下面是各程序模块的源程序代码:1. LCD内部控制程序模块:sbit RS=P20;sbit RW=P21;sbit E=P22; void write_add(uchar i)/写命令函数 RS=0;E=0;P0=i;delay(5);E=1;delay(5);E=0;

15、void write_date(uchar i)/写数据函数 RS=1;E=0;P0=i;delay(5);E=1;delay(5);E=0; void init_lcd()/初始化程序,开中断,初始化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(uchar i,uchar j)/显示函数 write_add(0x80+i);write_date(0x3

16、0+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:;uchar *str=stop,right,left;uchar *str_mode=1_3,2_3,1_2;void in

17、it_display() uchar i; for(i=0;i6;i+) display1(i,s_namei);delay(5); displaynum(6,Speed/10); delay(5); displaynum(7,Speed%10); delay(5); for(i=0;i5;i+) display1(i+9,*(str1+i);delay(5); for(i=0;i5;i+) display2(i,m_namei);delay(5); for(i=0;i3;i+)display2(i+6,*(str_mode0+i);delay(5);void spd(uchar speed)

18、displaynum(6,speed/10); displaynum(7,speed%10);void f_state(uchar stat)uchar i;for(i=0;i5;i+)display1(i+9,*(strstat+i);delay(5); void f_mode(uchar mod)uchar i;for(i=0;i3;i+) display2(i+6,*(str_modemod+i);delay(5); void (*display)(uchar)=spd,f_state,f_mode;3. 正反装减速减速变拍模块sbit A1=P10; /定义步进电机连接端口sbit B

19、1=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相通电,其他相断电#define 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_OF

20、F 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;break;case 2:Coil_C1;break; default:break;step=step+dir;if(step0)step=2;void step2_3()step=step%6;switch(step) case 0:Coil_A1;break;case 1:Coil_AB1;bre

21、ak;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(step0)step=5;void step1_2()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

22、;case 6:Coil_C1;break;case 7:Coil_C1;break;case 8:Coil_CA1;break; default:break;step=step+dir;if(step0)step=8;void (*stepper)(void)=step1_3,step2_3,step1_2;4. 步进电机的主程序:#include #define uchar unsigned char#define uint unsigned intvoid delay(uint z);#includelcd.c#includestepper.c#includedisplay.c/显示部分

23、#define KeyPort P3uchar times=0;void delay(uint z)/延时函数uint x,y;for(x=z;x0;x-)for(y=180;y0;y-);void KeyScan()/按键扫描 uchar keyvalue; if(KeyPort!=0xff) delay(5);/延时去抖 if(KeyPort!=0xff) keyvalue=KeyPort;switch(keyvalue) case 0xfe:if(Speed1)Speed-;(*displaysp)(Speed);break;/减速 case 0xfb:dir=0;(*displayst

24、ate)(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:step_num=1;(*displaymode)(step_num);break; / 2-3拍 case 0x7f:step_num=2;(*displaymode)(step_num);break;

25、 / 1-2拍 default:break;while(KeyPort!=0xff);/松手检测 void Init_Timer0(void)/定时器初始化 TMOD|=0x01; EA=1; ET0=1; TR0=1; PT0=1; void main() Init_Timer0(); Coil_OFF init_lcd(); init_display(); while(1) KeyScan();void Timer0(void) interrupt 1 /中断服务程序 TH0=(65536-1000)/256;/重新赋值 1ms TL0=(65536-1000)%256; if(times=(20-Speed)/最大值18,所以最小间隔值20-18=2 times=0; (*stepperstep_num)(); times+;第五章 系统调试介绍系统调试过程以及出现的问题、解决方法第六章 结束语简述课程设计的收获、体会以及对本教学环节的意见和建议参考文献1.秦曾煌主编电工学 上册:电工技术第五版高等教育出版社2.李广第主编单片机基础第三版北京航空航天大学出版社3.苏小红主编、C语言大学实用教程、电子工业出版社附录1 系统工作原理图:

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!