导航: 老古网老古论坛XMOS公共讨论区XMOS开源项目区单片机程序设计嵌入式系统广告区域
→俺说说

* 18513: C51编程:所长今天出道题,农民们看过来,如何编程:

   livaroc 
livaroc发表的帖子 

 俺说说
问题一:这是一个多任务运行的例子,对于51,处理多线程任务,只能采用分时复用控制;
问题二:由于程序运行中要频繁的被中断,因此断点的保护就尤其重要;
解决:
程序分为主程序,线程分配程序,控制服务程序.
在线程分配程序中,设置线程序号寄存器,对每个控制子程序,设置不同的堆栈段.通过检测线
程序号寄存器决定下一个要执行的线程,将相应堆栈段内的内容出栈,从该程序上次反回断点
处继续执行.
将每个控制服务程序人为的划分成一些小段(时间不能过长100MS左右),中间插入执行状态入
栈指令,并将线程序号寄存器内容加一,然后反回线程分配程序.
使用一个通用定时器中断T0或T1,设置一个定时器状态字,设置定时常数,每次中断定时器状
态字加一.控制服务程序中所有的延时,由检测定时器状态字的差值来实现.


发表时间:2003年2月11日8:44:00

  
回复该帖

本主题共有 32 帖,分页:>>>>>该主题的所有内容[32]条

 *树形目录 只列出部分跟帖的标题以及简单的摘要信息 该主题的部分跟帖如下:

  67274.[详细]这种好像真的还不错!!!同意!
摘要:这种好像真的还不错!!!同意!......(30字)
- [fsadgh][1530次] 2004年11月26日

  18595.[详细]报告所长
摘要:两种方法: 硬件:用两片,当然可以达到完全的同时运行 软件:将程序写成三部分,KEY1对应 功能1;KEY2对应 功能2;KEY1+2对 应功能3 功能3=功能1+功能2,简单的方......(121字)
- [huzimax][1427次] 2003年2月11日

  28090.[详细]有点疑问
摘要:两个程序一共需要几个输出? ......(28字)
- [huzong][1320次] 2003年4月30日

[上一篇帖子]:直接写P1=addr_chan[i]就行啦P1=addr_chan[i]&0xff;改为:P
[下一篇帖子]:初学者:请问各位大虾,小弟刚刚学C51不久,能否给一点原程序让我看看,还有谁能告诉我KEIL51如何