- 1、本文档共8页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C51编程多任务程序设计的结构
C51编程:多任务程序设计的结构,纯属个人观点,希望大家借签一下,提出更好的意见。 [小师⊕] [156次] 01-7-31 下午 08:48:27
C51的一些特征技巧可供利用:??1.时间的模糊性.????在大多数情况下,时间是具有模糊性的.象秒,分钟,小时..,从长的时间角度,即使你计秒的时间被退后0.5秒,在大多数情况下都是允许的,包括一些显示.还有象扫描键盘,你可在20MS去抖,也可在30,30MS时间去抖,这个时间范围是有一定弹性的.又如闪烁要求400MS,你可在410MS去刷新,下次在2*400MS,只要保证长的周期定时是准确的,个别时间是可推迟的。这样的情形会在许多地方发生,这就给设计多任务程序提供了一个基础.??2.消息的周期循环性.????消息指系统函数(定时类的),模块之间有状态变化,模块内部有状态请求而相应产生的标志数据或变量数据,它的特点是它的遍历整个模块,直到有模块接收它后让它消失,没有模块接收时,循环一周被自身消失.???举个例,有T0计数器0.1MS产生一个中断,让其他所有模块都知道,模块不能消灭它,它只能被自己消灭:????void?timer0(void)?interrupt?1?/*T0中断*/????{???????fSYS_100us=1;????}bit?fSYS_TimeNow;#define?Timer0_MainLoop()?{fSYS_TimeNow=0;if(fSYS_100us){fSYS_TimeNow=1;fSYS_100us=0;}}unsigned?char?uCount;main(){?init();?uCount=100;?while(1){???Time0_MainLoop();???Task0();???if(fSYS_TimeNow)Task1();???Task2();???if(fSYS_TimeNow){??????uCount--;??????if(uCount==0){????????uCount=100;????????Task3();??????}???}?}}这样消息具有自我生成消失发布的能力,而且使模块具有独立性(Time0_MainLoop();可放在WHILE中的任何地方而不影响它的作用).??而象键盘之类产生的消息,常常是每个模块接收到它后,就使它消失,避免其他模块也接收.消息在多任务程序中的作用:相当与桥梁,使模块间既相互独立又相互连接。比如说,有个按键产生的消息,打开设置画面显示:nSetScreenOn,让其它的模块中相应程序运行,这是连接。如果你的程序没写到设置画面显示部分,完全不影响整个程序,照常运行正确,这是独立性。消息通常用队列存储,一如按键缓冲队列,一般包括函数:NewsPush(unsigned?char?nData)压入消息,unsigned?char?NewsPop()弹出消息,NewsRead()宏定义的读队列中最前端的消息,fNewsEnable表示有消息需要各个模块接收,gNewsNum消息个数。一个模块接收后执行NewsPop();fNewsEnable=0消灭消息。现在举个例,P1.0键盘扫描模块作为多任务模块,并产生消息nKeyPush按键按下,nKeyPop松开。nKeyPush时P1.1=1,nKeyPop时P1.1=0./**********************************/void?timer0(void)?interrupt?1?/*T0中断*/{??fSYS_1ms=1;}bit?fSYS_TimeNow;????/*1MS时间到消息*/#define?Timer0_MainLoop()?{fSYS_TimeNow=0;if(fSYS_1ms){fSYS_TimeNow=1;fSYS_1ms=0;}}main(){??init();??while(1){????Timer0_MainLoop();????/*系统时间循环*/?????/*----------------------------------*/?????if(fSYS_TimeNow)???/*如果有1MS到的消息产生*/???????Key_MainLoop();????/*按键检查循环*/?????}?????/*----------------------------------*/???????Work_MainLoop();????/*按键的任务循环*/?????/*----------------------------------*/?????/
您可能关注的文档
- (一)电极安装QRS命名与测量.doc
- (东莞)安全生产百日整治行动实施方案.doc
- (中国)对外贸易理论与政策.docx
- (全)微生物综合实验201211.doc
- (定)北仑人民医院绿化摆放方案.doc
- (【通信工程类】外文文献)Wi-Fi,WiMaxandWCDMA(翻译后).doc
- (七年级)二元一次方程组及解不等式组.doc
- (表格式)新人教版二元一次方程组全章教案.doc
- (重要)现代家具企业的企业经营策略.doc
- (重庆理工大学)余成波-远程测控与信息处理.doc
- 中国国家标准 GB/T 20867.1-2024机器人 安全要求应用规范 第1部分:工业机器人.pdf
- 《GB/T 20867.1-2024机器人 安全要求应用规范 第1部分:工业机器人》.pdf
- 《GB/T 23423-2024飞机主舱集装货物装载机》.pdf
- GB/T 23423-2024飞机主舱集装货物装载机.pdf
- 中国国家标准 GB/T 23423-2024飞机主舱集装货物装载机.pdf
- 《GB/T 4706.114-2024家用和类似用途电器的安全 第114部分:饮用水处理装置的特殊要求》.pdf
- 中国国家标准 GB/T 4706.114-2024家用和类似用途电器的安全 第114部分:饮用水处理装置的特殊要求.pdf
- GB/T 4706.114-2024家用和类似用途电器的安全 第114部分:饮用水处理装置的特殊要求.pdf
- GB/T 4706.120-2024家用和类似用途电器的安全 第120部分:紫外线辐射水处理器具的特殊要求.pdf
- 中国国家标准 GB/T 4706.120-2024家用和类似用途电器的安全 第120部分:紫外线辐射水处理器具的特殊要求.pdf
最近下载
- 接受美学视角下的儿童文学翻译——以《小王子》为例.docx
- 做情绪的主人 一 认识情绪 课件.ppt
- 六年级上册英语教案-Module 4 Unit 1 Thanksgiving is my favourite festival∣外研版(三起).docx VIP
- 新动物防疫管理制度.doc
- 电工培训课件PPT(共-95张).ppt
- 第1课 社会主义在中国的确立与探索【中职专用】-【名师课堂】高一思想政治《中国特色社会主义》备课精品课件(高教版2023·基础模块).pptx
- 质量控制实验室GMP指南1300问完整版.pdf VIP
- 医学影像学-消化系统的影像学诊断.ppt
- 旅游界app项目创业计划书.pptx VIP
- 第1课 铰链四杆机构的组成及分类公开课教案教学设计课件资料.pptx VIP
文档评论(0)