如果不用OS, 可以将不同任务放在定时器中断里, 然后将任务分步骤执行(这大概就叫状态机吧) 比如任务1放在主循环里, 任务2放在定时器1中断里, 任务3放在定时器2中断里 或者自己利用定时器实现时间片轮换算法 关键是分配好任务执行的时间片, 以满足对不同事件的响应 感觉单片机实时性的要求很高
所谓的同时执行是不正确的说法,每个时间段只能执行一个程序 , 不过由于单片机运行速度很快,可以看为同时执行 , Keil就有多工的执行方式RTOS (Real Time Operating System)只要用这种方式去编译就会有这种效果,不过这个跟一般的程序执行不太一样。具体可看下RTOS的书
可以的。
单片机是靠程序的,并且是可以修改的。
AT89C51是一种带4K字节FLASH存储器(FPEROM—Flash Programmable and Erasable Read Only Memory)的低电压、高性能CMOS 8位微处理器,俗称单片机。AT89C51是一种带2K字节闪存可编程可擦除只读存储器的单片机。
单片机的可擦除只读存储器可以反复擦除1000次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪速存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,AT89C051是它的一种精简版本。AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。现在AT89S51/52已经取代了AT89C51/52。
理论上一个CPU没有可以并行执行的说法,中断执行也是暂停了程序跑中断代码的。
如果中断可以宏观的算的话。那么下面也可以算的。
void main(void){
while(1){
任务子程序1();
任务子程序2();
}
}
以上就是关于单片机中如何实现多线程,多任务全部的内容,包括:单片机中如何实现多线程,多任务、51单片机怎么让几个程序同时执行、at89c51单片机可不可以储存多个程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)