单片机步进电机控制实验 单片机步进电机控制实验报告

单片机步进电机控制实验 单片机步进电机控制实验报告,第1张

1、实验目的和要求。了解步进电机的工作原理,学习用单片机的步进电机控制系统的硬件设计方法,掌握定时器和中断系统的应用,熟悉单片机应用系统的设计与调试方法。

2、实验设备。单片机测控实验、系统步进电机控制实验模块、Keil开发环境、STC-ISP程序下载工具。

3、实验内容。编制MCS-51程序使步进电机按照规定的转速和方向进行旋转,并将已转动的步数显示在数码管上。步进电机的转速分为两档,当按下S1开关时,加速旋转,速度从10转/分加速到60转/分。当松开开关时,减速旋转,速度恢复为10转/分。当按下S2开关时,按照逆时针旋转;当松开时,按照顺时针旋转。本程序要求使用定时器中断来实现,不准使用程序延时的方式。

4、实验步骤。预习:参考辅助材料,学习C51编程语言使用和步进电机原理。简单程序录入和调试:关于C51的中断,本程序需要使用定时器定时,并使用中断来同步。中断程序的典型例子如下:格式:void函数名()interrupt中断号using工作组{中断服务程序内容}注意:中断不能返回任何值,所以前面是void后面是函数名,名字可以自己起,但不要与c语言的关键字相同;中断函数不带任何参数,所以函数名后面的()内是空的,中断号是指单片机的几个中断源的序号。这个序号是单片机识别不同中断的唯一标志。所以一定要写正确。后面的using工作组是指这个这个中断使用单片机内存中4个工作寄存器的哪一组,c51编译后会自动分配工作组,因此最后这句话我们通常省略不写。c51中断写法实例:void T1-time()interrupt3{TH1=(65536-50000)/256TL1=(65536-50000)%6}上面的意思是定时器1的中断服务程序,定时器1的中断服务序号是,因此我们要写成 interrupt3,服务程序的内容是给两个初值寄存器装入新值。

5、实验原理。使用的单片机系统的频率是12M;步进电机转动一周需要24步。本步进电机实验板,使用FAN8200作为驱动芯片。CPU通过引脚与FAN8200相连。

1.1)主程序各行作用如下:

第一行:设置定时器模式

第二行:设置定时器高位寄存器初值

第三行:设置定时器低位寄存器初值

第四行:T0定时器中断使能

第五行:总中断使能

第六行:打开T0定时器

第七行:死循环(主程序停留在此行)

主程序整体实现的功能:初始化定时器T0

1.2)void Timer0_Int(void)是定时器0中断函数,每行作用如下:

第一行:重新设定定时器高位寄存器初值

第二行:重新设置定时器低位寄存器初值

第三行:如果P1_0 IO口是高电平则改为低电平,如是低电平改为高电平

整体实现的功能:P1_0 IO口高低电平1秒切换一次

妈呀,这么多问题,网上找找,应该有的


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/7858695.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-10
下一篇 2023-04-10

发表评论

登录后才能评论

评论列表(0条)

保存