A. 51单片机如何实现多线程多任务有哪些程序可以在“后台”自己运行
1、51单片机无法实现多线程任务,只能实现单线程。这是由51单片机的硬件决定的,否则多线程芯片就没有必要设计出来了。
2、51单片机的硬件资源,如:定时器、计数器、捕获器、比较器、AD转换、pwm、UART等等大部分的硬件资源,初始化以及启动由用户控制。开始运行后,51单片机的相关硬件电路能自动运行,无需干预。
3、在这些硬件资源运行过程中,用户可以进行其他操作(一般不更改正在运行的硬件资源,否则会影响初始设定)。
4、但在这些硬件资源运行结束后,大部分的情况下,对应的特殊寄存器(含中断)会被更改,此时,需用户进行查询特殊寄存器或处理中断。处理这些时,用户需要停止正在运行的程序,不能同时进行其他工作。
例如:
用户设置定时器为周期1S;开启定时器中断。
启动定时器后,用户可以执行其他无关定时器的运算、控制。到达1S的时间时,定时器产生中断,用户执行的程序将被停止,保存现场后,程序运行跳转至定时器中断,开始执行定时器中断程序。在定时器中断程序执行结束后,恢复现场,重新从用户程序被中断的位置开始运行。
B. 单片机 多任务 不在中断中处理
可以在单片机的主循环中定义多个子过程处理,每个循环顺序执行一遍。每个子过程处理就是一个任务处理
C. 怎么解决单片机中中断的冲突
1、不知道你所使用的是什么样的单片机。如果有中断优先级寄存器的话,那么将重要中断的优先级设置成高,这样低优先级的中断就不能干扰到这个中断的执行。
2、如果没有中断优先级设置的话,这样的方法也是可行的:当程序进入重要的中断服务程序之后,先将总中断关闭,等到中断程序执行完毕之后再打开总中断,这样其它中断也可以得到响应,而且也不会影响到你所要保护的中断的程序的执行。
D. 单片机 同时处理多件事
单片机是不能同时处理多件事情。如果要想同步处理多件事情,只能是先中断正在做的事情,转移到其它需要做的事情上,等事情处理完毕,或者还是处理到一定程度,再转回之前正在做的事情。
一、关于单片机:
单片机(Microcontrollers)是一种集成电路芯片,是采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。从上世纪80年代,由当时的4位、8位单片机,发展到现在的300M的高速单片机。
二、单片机的应用分类:
单片机(Microcontrollers)作为计算机发展的一个重要分支领域,根据发展情况,从不同角度,单片机大致可以分为通用型/专用型、总线型/非总线型及工控型/家电型。
1、通用型
这是按单片机(Microcontrollers)适用范围来区分的。例如,80C51式通用型单片机,它不是为某种专门用途设计的;专用型单片机是针对一类产品甚至某一个产品设计生产的,例如为了满足电子体温计的要求,在片内集成ADC接口等功能的温度测量控制电路。
2、总线型
这是按单片机(Microcontrollers)是否提供并行总线来区分的。总线型单片机普遍设置有并行地址总线、 数据总线、控制总线,这些引脚用以扩展并行外围器件都可通过串行口与单片机连接,另外,许多单片机已把所需要的外围器件及外设接口集成一片内,因此在许多情况下可以不要并行扩展总线,大大减省封装成本和芯片体积,这类单片机称为非总线型单片机。
3、控制型
这是按照单片机(Microcontrollers)大致应用的领域进行区分的。一般而言,工控型寻址范围大,运算能力强;用于家电的单片机多为专用型,通常是小封装、低价格,外围器件和外设接口集成度高。 显然,上述分类并不是惟一的和严格的。例如,80C51类单片机既是通用型又是总线型,还可以作工控用。
E. 51单片机如何实现多线程多任务有哪些程序可以在“后台”自己运行
51单片机可以实现执行时间片形式的多线程任务,具体做法是:1、弄个表两字节一个单位存一下各个任务的执行地址。2、在中断级别较高的T0定时器中断中,把中断压进堆栈的那两个字节保存到表里。3、用表里别的线程的地址重压进堆栈。4、从中断里退出就可以切到另一个线程继续跑了。
我记得这个在早先2000年那时候的大学计算机系单片机原理专业课里讲过,但是那科挂掉的实在太多,现在好像已经把这些独门绝技大多给砍没了,就剩背背汇编指令集。
F. 为什么单片机的两个定时器不能同时用
既然是两个定时器,就要考虑冲突的问题。为此,需要设置优先级。
只要设置了优先级,就不会不行。
至于究竟哪个优先权高,就要你自己好好考虑了。