mf_blue 发表于 2011-3-12 16:51

AVR单片机驱动步进电机学习记录之一(驱动LED灯)

【概况】:原来用减速电机做电跟,精度很不好。想用步进电机做个单轴电跟(就带星野设备,一个单反相机),提高精度。在大学学过单片机,但是当时老师不严,自己觉得单片机难懂,也就没上过几节课。现在才身有体会,什么叫“书到用时方恨少;事非经过不知难”。现在也就一点一点的慢慢学吧!不管最后是不是能学懂,我都要感谢帮助过我的朋友:(牧夫论坛)schwt 、gki2008、wildbo、ddr等好友。翻了好些帖子,实在是不懂,自己依葫芦画瓢,也买了一些设备(买来都三个月了),如下:
1、AT89S52开发板
2、ATMEGA8L-8PU数据烧录线
3、ULN2003电机驱动板
4、志高28BYJ-48步进电机由于自己关于这方面的基础知识薄弱,好些大师级人物觉得非常简单的基础知识,咱也觉得不容易明白,隔行如隔山呀!现在呢就从零开始,一步一步学。【本课目标】:熟悉编写程序的软件keil;烧录程序到开发板。
第一步:安装ISP烧录线(ATMEGA8L-8PU)的驱动,可参照《ISP线的使用》(以下部分图片引用其文章,版权归其作者所有)。
ISP烧录线/下载线
解压缩“AVR_fighter.rar”文件夹到本地硬盘。插入ISP烧录线到电脑usb接口,将弹出新硬件向导,如下:

出现新硬件向导的时候选择“否,暂时不”:

点击下一步,从下个窗口中选择“从列表或指定位置安装”:

再点下一步,点浏览:

找到刚解压的AVR_fighter文件夹,再点击确定:

点下一步,驱动就装完了。

下图就是烧录线与电脑、AT89S52开发板连接图:



第二步:熟悉keil集成开发环境
解压缩“keil中文版.rar”压缩包,其实里面还包括dais集成开发环境及使用说明,如下:

把keil目录复制到C盘根目录下,(注意必须是C:\ 根目录,不要安装在其他目录)并去掉所有文件的只读属性,执行目录UV2下的UV2.EXE即可,出现启动屏幕:



第三步:编写驱动LED程序
关于怎么建立第一个C项目,还是看keil入门.pdf吧!非常详细。下面直接奔代码吧!

#include "AT89X52.h"
//keil里没有"AT89S52.h"库文件,但网上说AT89X52.h通用void main(void)
//定义一个主函数,这个是必须的{
unsigned int a;
//定义a为一个整数型变量

do{
for (a=0;a<50000;a++); //for()循环语句
P2_0 = 0; //P2_0为AT89S52单片机的引脚,我的这个开发板上的灯对应P2_0- P2_7引脚。
P2_1 = 1; //为零时灯灭,为1时灯亮
for (a=0;a<50000;a++);
P2_0 = 1;
P2_1 = 0;
//以上代码表示两个LED灯一个亮,一个灭
}
while(1);
/*do{}while()循环语句,意思是:先执行do{}内的语句,执行完后再判断while()括号里的语句,等于1时,再执行do{}里的语句,如果为0,就不执行了*/}
然后用keil软件生成hex文件。


第四步:烧录程序到单片机里
这里用到AVR_fighter文件夹里的AVR_fighter.exe软件。

打开软件,先选择芯片At89s52。

然后选择擦除,将会擦除芯片内原有的程序。

然后再点击“装入flash”。

找到刚编译的hex文件,点击确定。再选择擦除按钮下面的编程按钮,在软件左下角出现以下信息:
最后呢,灯就一闪一闪亮了。O(∩_∩)O哈哈~!



相关资料后附。

wolfbeard 发表于 2011-3-12 17:12

好玩吧。::42::                                          .

mf_blue 发表于 2011-3-12 19:06

本学习记录相关软件:



















BG2IVR 发表于 2011-3-12 19:59

步进电机在低速的时候不够稳定,速度不均匀的

mf_blue 发表于 2011-3-12 20:26

回复 4# BG2IVR


    可是像现在的中高级赤道仪都用步进电机,例如HEQ5、EQ6pro等都是步进电机

schwt 发表于 2011-3-15 23:58

建议用下keil的软件仿真功能,可以方便的检查程序结果
页: [1]
查看完整版本: AVR单片机驱动步进电机学习记录之一(驱动LED灯)