|
发表于 2011-9-17 21:55:43
|
显示全部楼层
来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。# O( V6 u* K9 P) \0 n
; c- l; N& p4 H, |" X4 Q3 s' v
单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
. ^, h( m F/ e# {- P步骤如下:. p8 ~9 \: n" d) ^' ?% s
1、单片机给出脉冲使左步进电机行进半步;
! n5 Z/ Q& V( ?2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;+ N9 \( O/ U/ B5 p8 P( k
3、单片机给出脉冲使右步进电机行进半步;$ O u- j" g1 _7 U) b7 E" j
4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;: N$ e. W/ w5 E! ~9 W
我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
. v4 ?/ T5 \# O, \, M4 n
! }$ @' f1 `, `4 C* y z这时完全没用到单片机宝贵的中断资源。
0 P) q# @. l# ^ g7 Z3 fAT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),& `; f3 W+ @9 c) @2 [4 R6 W! @" l
楼主看够不够用吧。 |
评分
-
查看全部评分
|