|
发表于 2011-9-17 21:55:43
|
显示全部楼层
来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。
, t. y2 `+ H/ }7 ?$ q
$ V7 b" s; L2 y# L3 R单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
' H: F, }- {- p/ e" r n步骤如下:. A! X& \" q4 t2 q0 F1 M$ @7 P. W8 V
1、单片机给出脉冲使左步进电机行进半步;
' |: c1 a" G$ i* S, g- Z5 _2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;" X @" `& I# e' f8 P
3、单片机给出脉冲使右步进电机行进半步;# ]: e& x$ i4 c& j# n4 p
4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;& }) d6 {& n: x! w5 q
我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
7 H7 q5 o: z2 f, H: l( a( _1 Q- n1 O5 t
这时完全没用到单片机宝贵的中断资源。3 b% i( Y; s0 J
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),6 Z( j1 k6 ]2 ~
楼主看够不够用吧。 |
评分
-
查看全部评分
|