|
|
发表于 2011-9-17 21:55:43
|
显示全部楼层
来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。
9 p! `6 g0 d, C- s0 H% Z& Y* J
6 V* M7 y5 y- a" N; y6 D1 \$ m- m0 y单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。
, `' g/ x/ a: T* h步骤如下:$ t9 Z, l( j: q, _% w: i& D
1、单片机给出脉冲使左步进电机行进半步;
) P0 q M2 F! `5 [& ?# r+ O( s5 j2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;
$ E0 f* U7 q7 t, q* K$ Z( P# l3、单片机给出脉冲使右步进电机行进半步;8 y9 d C# G7 z g* @3 }2 q
4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;# \4 I# ~" b6 N* r0 o, \
我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
8 j9 b# K. o1 u4 o
" U( d0 ]5 k7 D* `* D! G这时完全没用到单片机宝贵的中断资源。: s2 T, P2 p0 {( `
AT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),
! t# I- r' j O0 E% o楼主看够不够用吧。 |
评分
-
查看全部评分
|