|
发表于 2011-9-17 21:55:43
|
显示全部楼层
来自: 中国广东广州
我说一下我以前用AT89C51做的一个步进电机控制电路吧。' J: A! C3 F" [* T$ I$ ~: v
; X/ s s5 r: H% ?' P2 r9 k, B8 {单片机同时控制两个步进电机运动,步进电机使用半步工作方式,各用一个光电开关做超程检测。' X7 W, _: z- x
步骤如下:
! x& N5 r' t1 t+ g2 ]6 g% o1、单片机给出脉冲使左步进电机行进半步;) d" u$ X; ~$ Q& z2 q' i% T* ^
2、单片机检测左光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时左步进电机可行进;# @- K- ~: c, {8 Y" ]1 q
3、单片机给出脉冲使右步进电机行进半步;
8 B! h5 B1 `) g: I0 x( R4、单片机检测右光电开关是否被遮挡(若遮挡,则表明超程),若没遮挡,则下一个循环时右步进电机可行进;' U: `: d% Y% Q, @
我的电路还有一个128X64的液晶模块和5个按键,都是采用主程序大循环的方式来实现。特别是要实现液晶的菜单耗费了很多代码空间。
0 W! P5 A3 t5 R7 a T2 B+ K: k# X8 a0 J' d( e
这时完全没用到单片机宝贵的中断资源。
& \% R; `. z. _4 h) l% t7 u- JAT89C51不做扩展的话可以实现4个外部中断(两个外中断和两个定时器工作方式为计数时实现的外中断),
6 q7 \0 {" B7 L; m: \; S楼主看够不够用吧。 |
评分
-
查看全部评分
|