admin 管理员组

文章数量: 1087139


2024年3月13日发(作者:vb用format左对齐)

单片机中如何实现多线程

随着计算机的不断发展,越来越多的,优秀的编程思想被提出来,并付诸实

践。在某些方面已出现了根本性的变革。另一方面,单片机自从80年代诞生以来,便以

飞快的速度发展起来,但由于其物理条件的限制,单片机控制系统的编程仍然局限于经验

的模式,很少应用那些新提出的高级语言的编程思想。如果将不断发展的编程思想与广泛

应用的单片机控制系统结合起来,一定会大大促进单片机控制系统的进一步发展。使其更

广泛的应用于各个方面。

在下面这个具体项目中,实际情况对系统有一些比较苛刻的要求。按照一般的单线程的控

制方法已经无法满足实际需求。

对象M1开始动作17操作,即首先步进电机M1(正向)转动查找光电开关信号PS1;查

到后执行两次‘过程1‘。过程1:向电机打出30拍。由表1可知该动作从C 段执行到 K

段停止;

对象M2即步进电机M2等对象M1执行完动作17后执行动作23等。对象M3和对象M4

则在开始时同时启动,分别执行各自的动作。各个对象之间有的独立,有的相互关联。

整个项目需要控制16台步进电机,21个电磁阀,3个泵,1个直流电机,系统要求全部执

行时间为6秒钟,系统要求步进电机以其最快的速度-----40us—60us打拍。如果以单线程

的方式编程让一台电机转到位之后,再转其他电机。这样16台电机打一拍就需要

640us---960us已经无法满足系统要求。这就需要使单片机并行控制多台电机运转。这种以

并行的方式驱动各个电机同时启动可以在最短的时间将各个电机同时到位。在转动电机的

同时还需要检测一些开关量已确定电机的位置。为了实现这个目的。下面提供第一种解决

方案(此方案是常用的方案之一,但作者并不推荐这个方案。因为这个方案成本太高。)。

方案一: 硬件实现。

我们可以用多个CPU,将各个电机的控制分到不同的CPU中执行,并可将不互相冲突的

电机控制过程放到一个CPU中。

系统中设定一个主CPU,其功能为与计算机通讯,并将计算机下达的指令分发给相应的从


本文标签: 电机 单片机 方案 编程