![基于单片机的步进电机(直流电机)控制器设计_第1页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/11898d1f-36c8-4e42-8133-6e8cb7f251d9/11898d1f-36c8-4e42-8133-6e8cb7f251d91.gif)
![基于单片机的步进电机(直流电机)控制器设计_第2页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/11898d1f-36c8-4e42-8133-6e8cb7f251d9/11898d1f-36c8-4e42-8133-6e8cb7f251d92.gif)
![基于单片机的步进电机(直流电机)控制器设计_第3页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/11898d1f-36c8-4e42-8133-6e8cb7f251d9/11898d1f-36c8-4e42-8133-6e8cb7f251d93.gif)
![基于单片机的步进电机(直流电机)控制器设计_第4页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/11898d1f-36c8-4e42-8133-6e8cb7f251d9/11898d1f-36c8-4e42-8133-6e8cb7f251d94.gif)
![基于单片机的步进电机(直流电机)控制器设计_第5页](http://file3.renrendoc.com/fileroot_temp3/2022-3/12/11898d1f-36c8-4e42-8133-6e8cb7f251d9/11898d1f-36c8-4e42-8133-6e8cb7f251d95.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、单片机原理及应用课程设计基于单片机的步进电机(直流电机)控制器设计 学 院: 物联网工程学院 班 级: 自动化 姓 名: 学 号: 同组成员: 日 期: 2016.6.20-2016.6.24 一、设计目的通过具体小型测试系统设计,实践单片机系统设计及调试的全过程,以加深对单片机内部结构、功能和指令系统的理解,并进一步学习单片机开发系统的应用及一些外围芯片的接口和编程方法,初步掌握单片机系统的硬、软件设计技术及调试技巧。二、设计要求1)电机转速可以平稳控制2)通过键盘和显示器可以设置电机的转速3)显示电机的速度趋势三、仪器设备1)IBMPC机 一台2)DS-51PRO.NET单片机仿真器、编程
2、器、试验仪三合一综合开发平台 一台四、硬件线路图及主要芯片说明1、AT89C5单片机芯片说明AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。VCC:AT89C51 电源正极输入,接
3、+5V 电压。GND:电源接地端。XTAL1:接外部晶振的一个引脚。在单片机内部,它是一反相放大器输入端,这个放大器构成了片内振荡器。它采用外部振荡器时,些引脚应接地。XTAL2:接外部晶振的一个引脚。在片内接至振荡器的反相放大器输出端和内部时钟发生器输入端。当采用外部振荡器时,则此引脚接外部振荡信号的输入。RST:AT89C51 的复位信号输入引脚,高电位工作,当要对芯片又时,只要将此引脚电位提升到高电位,并持续两个机器周期以上的时间,AT89C51 便能完成系统复位的各项工作,使得内部特殊功能寄存器的内容均被设成已知状态。ALE/PROGALE:是英文"ADDRESS LATCH
4、 ENABLE"的缩写,表示允许地址锁存允许信号。当访问外部存储器时,ALE 信号负跳变来触发外部的8 位锁存器 (如74LS373),将端口P0 的地址总线(A0-A7)锁存进入锁存器中。在非访问外部存储器期间,ALE 引脚的输出频率是系统工作频率的 1/16,因此可以用来驱动其他外围芯片的时钟输入。当问外部存储器期间,将以1/12 振荡频率输出。EA/VPP:该引脚为低电平时,则读取外部的程序代码 (存于外部EPROM 中)来执行程序。因此在8031 中,EA 引脚必须接低电位,因为其内部无程序存储器空间。如果是使用AT89C51或其它内部有程序空间的单片机时,此引脚接成高电平使
5、程序运行时访问内部程序存器,当程序指针PC 值超过片内程序存储器地址(如8051/8751/89C51 的PC 超过0FFFH)时,将自动转向外部程序存储器继续运行。此外,在将程序代码烧录至8751 内部EPROM、89C51 内部FALSH 时,可以利用此引脚来输入提供编程电压(8751 为2lV、AT89C51 为12V、8051 是由生产厂方一次性加工好)。PSEN:此为"Program Store Enable"的缩写。访问外部程序存储器选通信号,低电平有效。在访问外部程序存储器读取指令码时,每个机器周期产生二次PSEN 信号。在执行片内程序存储器指令时,不产生PS
6、EN 信号,在访问外部数据时,亦不产生PSEN 信号。P0:P0 口(P0.0P0.7)是一个8 位漏极开路双向输入输出端口,当访问外部数据时,它是地址总线(低8 位)和数据总线复用。外部不扩展而单片应用时,则作一般双向IO 口用。P0 口每一个引脚可以推动8 个LSTTL 负载。P2:P2 口(P2.0P2.7)口是具有内部提升电路的双向I/0 端口(准双向并行I/O 口),当访问外部程序存储器时,它是高8 位地址。外部不扩展而单片应用时,则作一般双向IO 口用。每一个引脚可以推动4 个LSTL 负载。P1:P1 口(P1.0P1.7)口是具有内部提升电路的双向I/0 端口(准双向并行I/O
7、 口),其输出可以推动4 个LSTTL 负载。仅供用户作为输入输出用的端口。P3:P3 口(P3.0P3.7)口是具有内部提升电路的双向I/0 端口(准双向并行I/O 口),它还提供特殊功能,包括串行通信、外部中断控制、计时计数控制及外部随机存储器内容的读取或写入控制等功能。其特殊功能引脚分配如下:P3.0 RXD 串行通信输入P3.1 TXD 串行通信输出P3.2 INT0 外部中断0 输入,低电平有效P3.3 INT1 外部中断1 输入,低电平有效P3.4 T0 计数器0 外部事件计数输入端P3.5 T1 计数器1 外部事件计数输入端P3.6 WR 外部随机存储器的写选通,低电平有效P3.
8、7 RD 外部随机存储器的读选通,低电平有效2、实验接线原理图五、系统工作原理(包括采样原理、数据存放单元安排、按键和显示处理原理、中断处理等)1)采样原理通过采集点不同电压而执行不同的功能。当不同的按键被按下时,AD转换的电压不同,通过AD转换值便可以判断出是哪个按键被按下。2)按键和显示处理 键盘处理程序首先执行有无键按下的程序段,当确认有按键按下后,下一步就要识别哪一个按键被按下。对键的识别常用逐行扫描查询法或行列反转法。在获取键号后,继续扫描端口,直到状态改变,去抖动后,再次确认状态改变,即可判断按键释放。六、程序框图七、程序清单#include <reg52.h>#def
9、ine KeyPort P3#define DataPort P0 /定义数据端口 程序中遇到DataPort 则用P0 替换sbit LATCH1=P26;/定义锁存使能端口 段锁存sbit LATCH2=P27;/ 位锁存unsigned char code dofly_DuanMa10=0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;/ 显示段码值09unsigned char code dofly_WeiMa=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/分别对应相应的数码管点亮,即位码unsign
10、ed char TempData8; /存储显示值的全局变量sbit A1=P10; /定义步进电机连接端口sbit B1=P11;sbit C1=P12;sbit D1=P13;#define Coil_AB1 A1=1;B1=1;C1=0;D1=0;/AB相通电,其他相断电#define Coil_BC1 A1=0;B1=1;C1=1;D1=0;/BC相通电,其他相断电#define Coil_CD1 A1=0;B1=0;C1=1;D1=1;/CD相通电,其他相断电#define Coil_DA1 A1=1;B1=0;C1=0;D1=1;/D相通电,其他相断电#define Coil_A1
11、 A1=1;B1=0;C1=0;D1=0;/A相通电,其他相断电#define Coil_B1 A1=0;B1=1;C1=0;D1=0;/B相通电,其他相断电#define Coil_C1 A1=0;B1=0;C1=1;D1=0;/C相通电,其他相断电#define Coil_D1 A1=0;B1=0;C1=0;D1=1;/D相通电,其他相断电#define Coil_OFF A1=0;B1=0;C1=0;D1=0;/全部断电unsigned char Speed=1;bit StopFlag;void Display(unsigned char FirstBit,unsigned char
12、Num);void Init_Timer0(void);unsigned char KeyScan(void);/*- uS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振12M,精确延时请使用汇编,大致延时 长度如下 T=tx2+5 uS -*/void DelayUs2x(unsigned char t) while(-t);/*- mS延时函数,含有输入参数 unsigned char t,无返回值 unsigned char 是定义无符号字符变量,其值的范围是 0255 这里使用晶振
13、12M,精确延时请使用汇编-*/void DelayMs(unsigned char t) while(t-) /大致延时1mS DelayUs2x(245); DelayUs2x(245); /*- 主函数-*/main() unsigned int i=512;/旋转一周时间 unsigned char num; Init_Timer0(); Coil_OFF while(1) /正向 num=KeyScan(); /循环调用按键扫描 if(num=1)/第一个按键,速度等级增加 if(Speed<18) Speed+; else if(num=2)/第二个按键,速度等级减小 if(
14、Speed>1) Speed-; else if(num=3) Coil_OFF StopFlag=1; else if(num=4) StopFlag=0; TempData0=dofly_DuanMaSpeed/10;/分解显示信息,如要显示68,则68/10=6 68%10=8 TempData1=dofly_DuanMaSpeed%10; /*- 显示函数,用于动态扫描数码管 输入参数 FirstBit 表示需要显示的第一位,如赋值2表示从第三个数码管开始显示 如输入0表示从第一个显示。 Num表示需要显示的位数,如需要显示99两位数值则该值输入2-*/void Display(
15、unsigned char FirstBit,unsigned char Num) static unsigned char i=0; DataPort=0; /清空数据,防止有交替重影 LATCH1=1; /段锁存 LATCH1=0; DataPort=dofly_WeiMai+FirstBit; /取位码 LATCH2=1; /位锁存 LATCH2=0; DataPort=TempDatai; /取显示数据,段码 LATCH1=1; /段锁存 LATCH1=0; i+; if(i=Num) i=0;/*- 定时器初始化子程序-*/void Init_Timer0(void) TMOD |=
16、 0x01; /使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 /TH0=0x00; /给定初值 /TL0=0x00; EA=1; /总中断打开 ET0=1; /定时器中断打开 TR0=1; /定时器开关打开 PT0=1; /优先级打开/*- 定时器中断子程序-*/void Timer0_isr(void) interrupt 1 static unsigned char times,i; TH0=(65536-1000)/256; /重新赋值 1ms TL0=(65536-1000)%256; Display(0,8); if(!StopFlag)
17、 if(times=(20-Speed)/最大值18,所以最小间隔值20-18=2 times=0; switch(i) case 0:Coil_A1;i+;break;case 1:Coil_B1;i+;break;case 2:Coil_C1;i+;break;case 3:Coil_D1;i+;break;case 4:i=0;break; default:break; times+; /*-按键扫描函数,返回扫描键值-*/unsigned char KeyScan(void) unsigned char keyvalue; if(KeyPort!=0xff) DelayMs(10); if(KeyPort!=0xff) keyvalue=KeyPort; while(KeyPort!=0xff);switch(keyvalue) case 0xfe:return 1;break; case 0xfd:return 2;break; case 0xfb:return 3;break; case 0xf7:return 4;break; case 0xef:return 5;break; case 0xdf:return 6;break; case 0xbf:r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卫生院劳动合同模板
- 劳动合同变更协议书
- 酒水销售协议合同范本
- 物理真题:2024年高考辽宁卷物理真题
- 2024年中考物理(长沙卷)真题详细解读及评析
- 进户门购销合同
- 2025标准网站开发合同
- 2025软件购买合同
- 育儿嫂家政服务劳动合同协议
- 技能培训对员工职业素质的影响
- 医院6s管理成果汇报护理课件
- 微整培训课件
- SYT 0447-2014《 埋地钢制管道环氧煤沥青防腐层技术标准》
- 第19章 一次函数 单元整体教学设计 【 学情分析指导 】 人教版八年级数学下册
- 电梯结构与原理-第2版-全套课件
- IEC-62368-1-差异分享解读
- 2022-2023学年广东省佛山市顺德区高三(下)模拟英语试卷
- 节后复工培训内容五篇
- GB/T 33322-2016橡胶增塑剂芳香基矿物油
- GA 1051-2013枪支弹药专用保险柜
- 某水毁公路维修工程施工方案
评论
0/150
提交评论