单片机的多任务程序(单片机多任务编程)

海潮机械 2022-12-14 21:21 编辑:admin 108阅读

1. 单片机多任务编程

现在市面上有很多种类型的单片机,如果你是初学者建议学习51系列,这样的话网上的学习资源会后很多。

51单片机的编译软件现在最流行的是keil c51,你可以用这个软件进行编程和编译。单片机自身完成不了什么任务需要有外电路的配合,所以你需要购买一块51单片机开发板或者你如果嫌麻烦或者经济上不允许的话也可以用软件仿真,比如proteus 软件,它可以构建单片机的外围电路,让单片机完成一定的功能。

书店里有很多51单片机的书,网上也有很多电子版。建议你从51的汇编语言学起这样会对单片机内部的工作原理有一个较深入的了解。

2. 单片机多任务处理

单片机可以按分时、顺序、中断的方法处理多个任务

程序是非常抽象的,程序质量的好与差直接影响到运行的效果。我们用单片机设计电子产品时,同时运行多个任务是很正常的。单片机是按顺序执行指令的,所以,主程序也是按着顺序从头到底的运行的。以C语言写的单片机程序为例,一般以main()作为主函数,利用while(1)不断循环要执行的任务程序。在实时性要求不同的应用场合,顺序运行就可以了,实时性要求很高的任务一般用中断来处理,如果想平衡各个任务的运行时间,可以分时处理。

中断处理实时性高任务

中断可以理解为中途打断,比如你正在工作,突然领导来电话了,当你认为领导电话比较重要的时候,就可以先保存正在进行的工作进度,接听领导电话,然后再接着你的工作。单片机程序也是一样的。高优级的任务可以设置为中断,比如按键输入中断或者串口接收中断。以串口接收中断为例,假如单片机配置了串口接收中断,当串口接收到数据时,主程序就会被打断,保护现场数据后马上跳到串口接收中断程序,串口接收中断程序处理完成后,再返回主程序接着运行。

分时处理多个任务

可以用分时的方案平衡各个任务的处理时间,比如,我们可以引入一个计数器i,假如有5个任务,可以让i在0~4之不断循环,当i=0时执行任务1,当i=1时执行任务2,当i=3时执行任务4,当i=4时执行任务5就可以了。

当然,你还可以用定时器中断做一个计时器,0~1ms时运行任务1,1~2ms时运行任务2,2~3ms时运行任务3,3~4ms时运行任务4,4~5ms时运行任务5。如果有更高的要求的话,还要以用到嵌入式操作系统了,比如FreeRTOS、uCos。

欢迎关注@电子产品设计方案,一起享受分享与学习的乐趣!关注我,成为朋友,一起交流一起学习

记得点赞和评论哦!非常感谢!

3. 单片机如何实现多任务

功能模块是硬件,是可以同时运行的,初始化后就开始运行,互不影响。如果是软件上的多个功能模块,是不可能同时运行的。就是电脑的CPU也不可能,但因电脑CPU运行速度快,多模块,其实就是多任务,多线程,也是分时运行的,每个模块轮流运行一段后切换。

在宏观上好像是同时运行的。当然单片机也可以采用这种技术,但需要操作系统来管理。51单片机又很难跑操作系统。所以,通常采用按顺序循环运行每个模块。在宏观。仍然有同时运行的效果。

4. 单片机 多线程

是一款主要用于对局域网(Internet上也适用)上的各种信息进行查看的工具。采用多线程技术,搜索速度很快。

它将局域网上比较实用的功能完美地融合在一起,比如搜索计算机(包括计算机名,IP地址,MAC地址,所在工作组,用户),搜索共享资源,搜索共享文件,多线程复制文件(支持断点传输),发短消息,高速端口扫描,捕获指定计算机上的数据包,查看本地计算机上活动的端口,远程重启/关闭计算机等,功能十分强大。该软件是一款绿色软件,解压后直接打开运行,无需安装。

5. 单片机定时器实现多任务

消防通道,学校,医院,警察局

6. 单片机 多任务

scu的意思是:存储控制部件(Storage Control Unit);硫包衣尿素(Sulfur Coated Urea)。

双语例句:

1.SCU 'a' will then wait for the token to be reintroduced to verify the debit was complete.然后SCU“A”将等待令牌被再引入,以核实转帐是否完整。

2.The token is then presented to another SCU 'b' and a complete debit is performed with product produced.然后令牌被提供给另一个SCU“B”,同时生成完整的转帐并生产出产品。

3.It consists of a simple multi-task core together with timer and NMI functions, which are embedded in a common SCU.该系统框架由一个简单的多任务内核,配合使用普通单片机自带的不可屏蔽中断(NMI)和定时器功能构成。

4.It is then removed before the debit can be performed but close enough to the end so that the SCU thinks it was complete but without verification.然后在转帐之前将其去除,但应足够接近末端以使SCU认为它是完整的只是没有经过认证。

7. 单片机多任务编程思路

可以使用ucsoII之类的实时操作系统来建立事务、进程,也可以通过特殊的程序结构来模拟多任务处理。

其实以上两者的区别在于有操作系统可以让方便事务管理,以及中断模拟。要是事务不是很多,就可以通过循环执行函数来模拟多任务处理(所有函数中不能有等待操作)。其实后者用的更多,因为大部分单片机程序都是这么写的,用上单片机一般都会处理多个事务,重要的用中断,不重要的用在主循环。

8. 单片机多任务编程怎么用

两个办法:

1.在while(1)循环内遍历你所有的采样函数.

2.用PIC的定时器中断,设置一个时间片比如20ms,到时间后就进入调度函数,依照优先级高低(也可以不管优先级)运行函数,下个中断就运行任务列表里(采样函数列表)下个,其实完成了个小的RTOS的功能.

9. 单片机多线程编程

1、51单片机无法实现多线程任务,只能实现单线程。这是由51单片机的硬件决定的,否则多线程芯片就没有必要设计出来了。 2、51单片机的硬件资源,如:定时器、计数器、捕获器、比较器、AD转换、pwm、UART等等大部分的硬件资源,初始化以及启动由用户控制。开始运行后,51单片机的相关硬件电路能自动运行,无需干预。 3、在这些硬件资源运行过程中,用户可以进行其他操作(一般不更改正在运行的硬件资源,否则会影响初始设定)。 4、但在这些硬件资源运行结束后,大部分的情况下,对应的特殊寄存器(含中断)会被更改,此时,需用户进行查询特殊寄存器或处理中断。处理这些时,用户需要停止正在运行的程序,不能同时进行其他工作。 例如: 用户设置定时器为周期1S;开启定时器中断。 启动定时器后,用户可以执行其他无关定时器的运算、控制。到达1S的时间时,定时器产生中断,用户执行的程序将被停止,保存现场后,程序运行跳转至定时器中断,开始执行定时器中断程序。在定时器中断程序执行结束后,恢复现场,重新从用户程序被中断的位置开始运行。

10. 单片机多文件编程

 1 所用到的硬件工具

  51单片机烧写程序需要用到单片机的UART串口,所用到的工具为USB/TTL,具有四个引脚分别为5V、GND、TXD、RXD,需要和单片机的UART口连接,在连接的时候需要注意的是,串口要交叉连接,即USB/TTL的TXD和单片机的RXD连接;USB/TTL的RXD和单片机的TXD连接。

  2 所用到的软件以及设置

  STC的51单片机需要用到STC-ISP软件,该软件可以在STC的官网上下载到

  烧写过程为:1)选择具体的单片机型号,本文用的是STC89C51;2)选择串口号,该串口号就是USB/TTL的串口号,可以在我的电脑→设备属性中可以看到;3)选择所要下载的hex文件,点击“打开程序文件”选择需要烧写的hex文件,该文件由编程软件生成,如keil生成;4)点击下载“下载/编程”,这里需要注意的是,点击完了后,会在右侧出现“正在检测目标单片机”的字样,这时要把单片机的电源开关一下,即先断电再马上上电。之后,就出现下载的进度条。

  经过以上步骤单片机烧写程序的过程就完成了。

  3 烧写程序需要注意的地方

  用USB/TTL连接单片机时,需要将数据线交叉连接;点击了下载按钮后需要给单片机重新断电再上电,进行单片机的冷启动。

11. 单片机多任务程序架构

单片机原理:单片机由运算器、控制器、存储器、输入输出设备构成。 单片机自动完成赋予它的任务的过程,也就是单片机执行程序的过程,即一条条执行的指令的过程,所谓指令就是把要求单片机执行的各种操作用的命令的形式写下来,这是在设计人员赋予它的指令系统所决定的,一条指令对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统,不同种类的单片机,其指令系统亦不同。

为使单片机能自动完成某一特定任务,必须把要解决的问题编成一系列指令(这些指令必须是选定单片机能识别和执行的指令),这一系列指令的集合就成为程序,程序需要预先存放在具有存储功能的部件——存储器中。

存储器由许多存储单元(最小的存储单位)组成,就像大楼房有许多房间组成一样,指令就存放在这些单元里,单元里的指令取出并执行就像大楼房的每个房间的被分配到了唯一一个房间号一样,每一个存储单元也必须被分配到唯一的地址号,该地址号称为存储单元的地址,这样只要知道了存储单元的地址,就可以找到这个存储单元,其中存储的指令就可以被取出,然后再被执行。

程序通常是顺序执行的,所以程序中的指令也是一条条顺序存放的,单片机在执行程序时要能把这些指令一条条取出并加以执行,必须有一个部件能追踪指令所在的地址,这一部件就是程序计数器PC(包含在CPU中),在开始执行程序时,给PC赋以程序中第一条指令所在的地址,然后取得每一条要执行的命令,PC在中的内容就会自动增加,增加量由本条指令长度决定,可能是1、2或3,以指向下一条指令的起始地址,保证指令顺序执行。应用:单片机作为计算机发展的一个重要分支领域,根据发展情况,从不同角度,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。

通用型:这是按单片机适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。

总线型:这是按单片机是否提供并行总线来区分的。

总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。

控制型:这是按照单片机大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。

例如,80C51类单片机既是通用型又是总线型,还可以作工控用。