9.8 实用的电机控制程序

这篇博客介绍了一个使用C语言实现的步进电机控制程序,通过矩阵按键进行角度控制,支持正转、反转以及停止。程序包括了按键驱动、电机启动和停止、按键动作调度等功能,同时在定时中断中进行按键扫描和电机转动控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

上面我们虽然完成了用中断控制电机转动的程序,但实际上这个程序还是没多少实用价值的,我们不能每次想让它转动的时候都上下电啊,是吧。还有就是它不但能正转还得能反转啊,也就是说不但能转过去,还得能转回来呀。好吧,我们就来做一个实例程序吧,结合第 8 章的按键程序,我们设计这样一个功能程序:按数字键 1~9,控制电机转过 1~9 圈;配合上下键改变转动方向,按向上键后正向转 1~9 圈,向下键则反向转 1~9 圈;左键固定正转 90 度,右键固定反转 90;Esc 键终止转动。通过这个程序,我们也可以进一步体会到如何用按键来控制程序完成复杂的功能,以及控制和执行模块之间如何协调工作,而你的编程水平也可以在这样的实践练习中得到锻炼和提升。
   
   
  1. #include <reg52.h>
  2. sbit KEY_IN_1 = P2^4;
  3. sbit KEY_IN_2 = P2^5;
  4. sbit KEY_IN_3 = P2^6;
  5. sbit KEY_IN_4 = P2^7;
  6. sbit KEY_OUT_1 = P2^3;
  7. sbit KEY_OUT_2 = P2^2;
  8. sbit KEY_OUT_3 = P2^1;
  9. sbit KEY_OUT_4 = P2^0;
  10. unsigned char code KeyCodeMap[4][4] = { //矩阵按键编号到标准键盘键码的映射表
  11. { 0x31, 0x32, 0x33, 0x26 }, //数字键 1、数字键 2、数字键 3、向上键
  12. { 0x34, 0x35, 0x36, 0x25 }, //数字键 4、数字键 5、数字键 6、向左键
  13. { 0x37, 0x38, 0x39, 0x28 }, //数字键 7、数字键 8、数字键 9、向下键
  14. { 0x30, 0x1B, 0x0D, 0x27 } //数字键 0、ESC 键、 回车键、 向右键
  15. };
  16. unsigned char KeySta[4][4] = { //全部矩阵按键的当前状态
  17. { 1, 1, 1, 1}, { 1, 1, 1, 1}, { 1, 1, 1, 1}, { 1, 1, 1, 1}
  18. };
  19. signed long beats = 0; //电机转动节拍总数
  20. void KeyDriver();
  21. void main(){
  22. EA = 1; //使能总中断
  23. TMOD = 0x01; //设置 T0 为模式 1
  24. TH0 = 0xFC; //为 T0 赋初值 0xFC67,定时 1ms
  25. TL0
卓立汉光步进电机控制器SC300的控制程序 sc300help_ch.chm为控制器附带应用软件之帮助,内含通讯协议与OCX控件调用说明。 Sc300编程控件文件夹内为进行二次开发所需要的文件及说明。 Sample为在Visual Basic中使用OCX控件进行开发的示例程序。 LabView为在LabView中使用OCX控件进行开发的示例程序。 Sample_VC在VC中使用OCX控件进行开发的示例程序 SC300系列位移台控制箱使用说明书.pdf为控制箱说明书,包括控制器使用及通讯协议,注意事项等。 setup2.2.2SC300_20121108为标准控制软件。安装完毕后如果在WIN7或WIN8系统下运行程序,需要点击右键选择兼容模式再运行。 控件调用和安装方法: 1、如果电脑已经安装配套的控制软件,可以打开示例直接运行,直接调用OCX控件中函数。 2、如果电脑没有安装配套的控制软件,就需要将OCX文件夹中的.lic和.ocx文件放在指定的路径下。 32位操作系统放在C:\WINDOWS\system32,64位操作系统放在C:\WINDOWS\SysWOW64。 同时需要注册一下,在开始运行里输入regsvr32 C:\WINDOWS\system32\ZOLIXSC300.ocx(32位), regsvr32 C:\WINDOWS\SysWOW64\ZOLIXSC300.ocx(64位),点击确定提示成功后即可调用。 如果出现提示dllregisterserver调用失败,可在程序 - 附件 - 命令提示符,在”命令提示符“上点击鼠标右键,选择”以管理员身份运行“命令, 这个时候将打开Dos命令窗口,然后按正常写法输入上述语句,就能够注册成功了。 如果已成功注册但调用不了,可尝试反注册一下:regsvr32 /u C:\WINDOWS\system32\ZOLIXSC300.ocx(32位),regsvr32 /u C:\WINDOWS\SysWOW64\ZOLIXSC300.ocx(64位)。 然后重新注册即可。 3、如果需要重新建立新的工程,按照上述1或2完成之后, VC环境下: Project-Add to Project-Components and Controls Gallery-Registered ActiveX Controls-ZolixSC300.lnk 此路径下插入即可,此时出现OCX图标,拖入即可调用。 labview环境下: 工具-导入-ActiveX控件至选板-ZolixSC300 Control 点击确定即出现图标,拖入即可调用。 4、在64位操作系统下注册控件,如果出现“对dllregisterserver的调用失败,错误代码为0x80040200”,可以以管理员身份运行:所有程序-附件-命令提示符,再输入注册指令即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值