专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
51单片机
【秀出我的Atmel设计方案】+ AT89C51步进电机控制--视频猛戳3楼
2020-03-08 19:22
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
51单片机
9332
20
20
本帖最后由 ldxywdg 于 2014-12-1 21:35 编辑
【
视频详情见3楼
】
看过很多大神发一些单片机的设计,我也发一个大学时候做的设计,
AT89C51步进电机转向/转速
控制
操作视频见3楼,算是怀念一下大学的时光,转眼毕业半年了,真是快啊。我这款设计是基于ATMEL公司生产的AT89C51为核心芯片,设计的主要用来控制步进电机的正转和反转,以及转速,并将运行情况显示在两个数码管上。
AT89C51具有抗干扰能力强,可靠性高且系统扩展容易等优势。
【代码及电路图见本楼层最后】
一
、设计内容:
1
)步进电机运行正常
2
)能正确手动复位;
3
)数码管能正确显示正反转,转数等级;
总电路图
总体电路图
各模块电路图
控制电路原理图
根据系统的控制要求,控制输入部分设置了启动控制,换向控制,加速控制和减速控制按钮,分别是
K1
、
K2
、
S2
、
S3
,控制电路如图
5
所示。通过
K1
、
K2
状态变化来实现电机的启动和换向功能。当
K1
、
K2
的状态变化时,内部程序检测
P1.0
和
P1.1
的状态来调用相应的启动和换向程序,发现系统的电机的启动和正反转控制。
根据步进电机的工作原理可以知道,步进电机转速的控制主要是通过控制通入电机的脉冲频率,从而控制电机的转速。对于单片机而言,主要的方法有:软件延时和定时中断在此电路中电机的转速控制主要是通过定时器的中断来实现的,该电路控制电机加速度主要是通过
S2
、
S3
的断开和闭合,从而控制外部中断根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,从而改变了电机的转速。
控制电路
步进电机驱动电路
步进电机常用的驱动方式是全电压驱动,即在电机移步与锁步时都加载额定电压。为了防止电机过流及改善驱动特性,需加限流电阻。由于步进电机锁步时,限流电阻要消耗掉大量的功率,故限流电阻要有较大的功率容量,并且开关管也要有较高的负载能力。
通过 ULN2803 构成比较多的驱动电路,电路图如图6所示。通过单片机的P1.0-P1.3 输出脉冲到ULN2803 的 1B-4B口,经信号放大后从 1C-4C 口分别输出到电机的A、B、C、D相。步进电机的另一种驱动方式是高低压驱动,即在电机移步时,加额定或超过额定值的电压,以便在较大的电流驱动下,使电机快速移步;而在锁步时,则加低于额定值的电压,只让电机绕组流过锁步所需的电流值。这样,既可以减少限流电阻的功率消耗,又可以提高电机的运行速度,但这种驱动方式的电路要复杂一些。驱动脉冲的分配可以使用硬件方法,即用脉冲分配器实现。
步进电机驱动电路
复位及时钟振荡电路
单片机最小系统或者称为最小应用系统,即用最少的元件组成的单片机可以工作的系统,对单片机来说,最小系统一般应该包括:单片机、复位电路、晶振电路。
复位电路:使用了独立式键盘,单片机的
P1
口键盘的接口。该设计要求只需
4
个键对步进电机的状态进行控制,但考虑到对控制功能的扩展,使用了
6
路独立式键盘。复位电路采用手动复位,所谓手动复位,是指通过接通一按钮开关,使单片机进入复位状态,晶振电路用
30PF
的电容和一
12M
晶体振荡器组成为整个电路提供时钟频率。如图
7
所示。晶振电路:89C51 单片机的时钟信号通常用两种电路形式电路得到:内部震荡方式和外部中断方式。在引脚 XTAL1 和 XTAL2 外部接晶振电路器(简称晶振)或陶瓷晶振器,就构成了内部晶振方式。由于单片机内部有一个高增益反相放大器,当外接晶振后,就构成了自激振荡器并产生振荡时钟脉冲。内部振荡方式的外部电路如图7所示。其电容值一般在 5-30pf,晶振频率的典型值为 12MHz,采用6MHz 的情况也比较多。内部振荡方式所得的时钟信号比较稳定,实用电路实用较多。
复位及时钟振荡电路
显示电路
本系统是基于提高智能机灵活性而设计的,对于步进电机的频率、步数、位置和停止等通过键盘输入相应指令,由单片机输出步进电机控制信号来实现控制,用数码管显示输入的参数并在工作时动态显示剩下的步数。
显然,要显示一个字型就应该使此字型的相应发光二极管点亮,实际上就是送一个不同电平的组合代表的数据到数码管。在该步进电机的控制器中,电机可以正反转,可以加速、减速,其中电机转速的等级分为七级,为了方便知道电机的运行状态和电机的转速的等级,这里设计了电机转速和电机的工作状态的显示电路。在显示电路中,主要是利用了单片机的 P0 口和 P2 口。采用两个共阳数码管作显示。显示电路如图8所第一个数码管接的
a
、
b
、
c
、
d
、
e
、
f
、
g
、
h
分别接
P0.0~P0.7
口,用于显示电机正反转状态,正转时显示“
1
”
,反转时显示“一”,不转时显示“
0
”。第二个数码管的
a
、
b
、
c
、
d
、
e
、
f
、
g
、
h
分别接
P2.0~P2.7
口,用于显示电机的转速级别,共七级,即从
1~7
转速依次递增,“
0
”表示转速为零。
显示电路
系统总体框图
在系统中采用AT89C51
单片机产生A
、B
、C
、D
四相信号(更具实际需要,可以扩充更多相)。当采用单片机控制时,需要在单片机和步进电机之间设置隔离电路以使强弱分开。由于步进电机的驱动电流相对较大,可增设放大电路来提供步进电机的工作电流。
系统总体框图
AT89C51介绍
本系统采用AT89C51
单片机产生控制信号单片机内部的内存即可满足要求。如需要扩展较多的外部RAM
和ROM
可加上数据缓冲器。步进电机控制信号通过
AT89C51单片机其中一个口进行扩充。为了增加步进电机工作的灵活性,在启动步进电机工作之后,当有键按下,设置产生外部中断,达到灵活控制电机的目的。
AT89C51单片机每部机构示意图
P0口的结构示意图
P1口的位结构图
主程序流程图
主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对
P1
口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化
P1=11H
、速度和方向初始值均设为
0
,就意味着步进电机按相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“
0
”,
速度值显示“
0
”,主程序流程图如图
10
所示
主程序流程图
补上元器件列表
程序附件供下载(汇编语言)
步进电机.zip
(12.21 KB, 下载次数: 18)
2014-12-1 21:03 上传 点击文件名下载附件
电路图
电路图.zip
(23.1 KB, 下载次数: 19)
2014-12-1 21:05 上传 点击文件名下载附件
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
19条回答
ldxywdg
1楼-- · 2020-03-11 12:49
本帖最后由 ldxywdg 于 2014-12-1 21:32 编辑
为1楼的图片添加了一些文字说明,这样更好理解,完整了许多!希望大家批评指正,视频在3楼,大家帮顶啊!
加载中...
上一页
1
2
3
4
一周热门
更多
>
相关问题
【东软载波ESF0654 PDS开发板活动】开箱
1 个回答
东软载波ESF0654 PDS开发板外部中断
1 个回答
东软载波ESF0654 PDS开发板高级控制定时器AD16C4T
1 个回答
用串口调试助手为什么只能在hex模式接收发送而在文本模式不行
9 个回答
触摸芯片SC02B/SC04B在地砖灯的设计方案
1 个回答
东软载波ESF0654 PDS开发板串口USART0代码分享
1 个回答
普通32位单片机使用linux的应用代码
5 个回答
东软载波ESF0654 PDS开发板AT24C04的调试
9 个回答
相关文章
51单片机与蓝牙模块连接
0个评论
51单片机的硬件结构
0个评论
基于51单片机的无线遥控器制作
0个评论
51单片机 AD转换
0个评论
51单片机数码管递增显示
0个评论
如何实现对单片机寄存器的访问
0个评论
基于51单片机的指纹密码锁
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
51单片机
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
为1楼的图片添加了一些文字说明,这样更好理解,完整了许多!希望大家批评指正,视频在3楼,大家帮顶啊!
一周热门 更多>