|
发表于 2011-9-17 21:55:43
|
显示全部楼层
来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。
7 A4 x9 }* @/ `: E A* {- v/ {; T/ V6 h
单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
' `( J+ r& @" {( O步骤如下:
4 V/ P$ i# g/ f5 M! K7 j! X4 Z1、单片机给出脉冲使左步进电机行进半步;
; n, D+ A& d4 n# Q/ [4 F( h2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;
2 W8 [1 [! a8 E" U" M3、单片机给出脉冲使右步进电机行进半步;
, K5 r4 v- v* `; J3 t. g' W4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;
' @* _& e2 D; R! O我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
& }; @/ ]) F V. T
0 M' N0 A: C' z$ O1 B% \8 H3 b这时完全没用到单片机宝贵的中断资源。, q0 d9 q' P) }8 N, C7 N8 Z" T
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断), c- ^ M: x; Z/ A- U; t
楼主看够不够用吧。 |
评分
-
查看全部评分
|