|
发表于 2011-9-17 21:55:43
|
显示全部楼层
来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。
5 E: R h2 J" r. U# [: F" X- S' G d
单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
+ Y- R8 {# K- Y2 y, x步骤如下:
/ I% l2 K, V1 `1 k; H8 ?7 Z1、单片机给出脉冲使左步进电机行进半步;3 ?9 q0 l+ ]) P. v
2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;
& v8 t( `: q2 j) ~0 \* {3、单片机给出脉冲使右步进电机行进半步;1 [: @8 A+ ?# P& f% |0 F1 G4 P
4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;
: x4 t- q5 z' c( p i$ S# i8 o, ?我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
! w9 p: q) A) E# d: p5 q" {. m3 z
2 R' ^" F3 R8 N( h7 G! o这时完全没用到单片机宝贵的中断资源。. ~) T. s0 b% y( x1 i, N
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),
' U" @% `, \8 k3 c6 {0 ]楼主看够不够用吧。 |
评分
-
查看全部评分
|