1、手机端页面文档仅支持阅读 15 页,超过 15 页的文档需使用电脑才能全文阅读。
2、下载的内容跟在线预览是一致的,下载后除PDF外均可任意编辑、修改。
3、所有文档均不包含其他附件,文中所提的附件、附录,在线看不到的下载也不会有。
片内数据存储区可读可写,用于动态数据的保存,访问速度很快。
如果用户欲将数据存于其中,可以用以下关键字进行说明指片内的,容量为,通过直接寻址进行访问指片内的,容量,通过或间接寻址进行访问指片内的位寻址区,总的字节容量为片外数据存储区般通过在系统外扩展芯片来实现,总容量最多为,可以用关键字来声明存储于此的变量,它的范围为整个片外,特别的存储区的数据访问速度是最慢的。
编译模式编译模式就是编译器根据程序的代码规模和数据规模所采取的不同编译方法。
针对数据规模即变量总体规模的编译选项有如下种小模式设计 的过程 中,我能 够 顺利完成交通灯的设计,而在设计中遇到的 问题,都应该感谢樊 高峰 老师,王锋 哲老 师在理论和实操方面的帮助,我才能顺利地完成,让我 从中 学到了很多知识, 同时也要对帮助过我的同学表示谢意。
在今后步入社会后的 学习和工作中,我定会更加地努力,以更好的表现去回报学校 及老师的栽培。
再次 对 在 百忙之中 抽出宝贵时间来评阅这篇论文的各位专家致以衷心的感谢, 参考文献 参考文献 杨振江 冯军 , 单片机原理与实践指导 中国电力出版社 谭浩强 , 程序设计第三版 清华大学出版社 于乐 戴佳 常江 , 单片机 语言常用模块与综合系统设计实例精讲 电子工业出版社 江晓安 董秀峰 杨颂华 , 数字电子技术第二版 西安电子科技大学出版社 江小安邵思飞沈金根高丽孙肖子,模拟电子 技术 西北大学出版社 附录 附录 交通灯源程序 南北黄灯 东西黄灯 位选 偏移量 东西数码指示值 南北数码指示值 倒计时设置的键值保存 定时 器中断次数 灯状态循环标志 附录 中断强行标志 调时方向切换键标志 延时子程序 按键扫描子程序 键处理子程序 显示子程序 东西通行 调用按键扫描程序 调用显示程序 附录 按键扫描子程序 , , 附录 , 启动定时器 清标志 , 设置的键值返回保存 附录 第 位 东西秒十位 第 位 东西秒个位 第 位 南北秒十位 第 位 南北秒个位 先延时,提前显示位了 定时中断子程序 附录 定时器中断次数。
南北黄灯闪烁判断 南北黄灯亮 南北黄灯亮 附录 南北黄灯亮 南北黄灯亮 东西黄灯闪判断 南北黄灯亮 附录 南北黄灯亮 南北黄灯亮 南北黄灯亮 附录 东西或南北先到达 时即开始重新计时 第次循环结束重置 东西通行 南北通行 , 取反 附录 关定时器 南北加 东西加 加到 置 关定时器 就是如何将问题分割成多个子任务,每个任务都是整个程序的部分,分别完成不同的功能,拥有自己的寄存器和任务堆栈。
般的,每个任务都是个无限循环结构,任务在整个执行过程中将分别处于运行,等待,就绪,种状态,运行状态表示此任务正在使用,等待状态表示此任务正等待个事件的发生,在此之前它不会得到运行,就绪状态表示此任务切就绪随时可以得到运行。
多任务在只有个的系统中,每时刻只可能有个任务在运行,而多任务其实是通过在各个任务之间转换和调度来实现的,当转换非常迅速时,从宏观上看就像是同时在运行。
中断中断就是种硬件机制,通过它感知异步事件的发生,中断旦被响应,将保存相关的寄存器,同时跳转到中断处理子程序。
微处理器中的开中断和关中断指令可以让系统响应或不响应中断,但是在多任务系统中,关中断的时间应尽可能的短。
任务切换西南大学本科毕业论文设计任务切换就是将正在运行任务的寄存器中的全部内容保存到此任务的任务堆栈中,然后把下个将要运行的任务在任务堆栈中的内容重新装入寄存器中,最后跳转到将要运行任务的代码处。
任务切换过程增加了程序的额外负担,的寄存器越多,额外负担就越重。
任务切换所需时间取决于有多少寄存器需要入栈。
时钟节拍时钟节拍是周期性的中断,可以把它看作是系统心脏的跳动,时钟的节拍式中断可以将任务延时若干个整数时钟节拍,时钟节拍的拍率越快,系统任务切换就越频繁,系统的额外开销就越大。
同时任务切换程序在时钟节拍中断发生时根据任务的状态来决定是否要进行任务切换。
代码的临界段代码的临界段表示在运行过程中不能分割的代码段,旦这部分代码开始执行,系统将不会响应任何中断打入,临界段代码通过在代码首尾处加入关中断和开中断指令来实现不被中断。
可重入函数可重入函数可以被个以上的任务所调用,而不必担心数据被破坏,可重入函数在任何时候都可以被中断,段时间后又可以得到运行,同时相应的数据不会丢失。
可重入函数要么只使用局部变量,变量保存在寄存器中或堆栈中,要么使用全局变量,在任务切换时就要保存和恢复相应的全局变量。
可重入函数范例不可重入函数范例,西南大学本科毕业论文设计调度调度就是系统通过种策略决定该轮到那个任务运行,调度算法主要有时间片轮转法和优先级调度法。
时间片轮转法就是赋予每个任务相同的时间片计数,每当时钟节拍中断发生时,系统会将正在运行任务的时间片计数减,当时间片计数为零时,当前任务会由运行状态变成就绪状态,同时将进行任务切换。
优先级调度算法就是系统赋予每个任务各异的数值,数值越小代表优先级越高,在进行任务切换时系统总是找到优先级最高的任务进行任务切换。
空闲任务用户在启动多任务系统之前,必须要创建个空闲任务,当用户创建的其它任务都处于等待状态时,将会转去执行空闲任务,同时空闲任务将永远处于就绪状态,即它可以随时得到执行。
平台上的语言下面将介绍在多任务调度器设计时有关编译器的些特性。
从到是面向单片机的语言,不同的软件厂商提供不同版本的和编译器,本文介绍的是目前国内广泛使用的由德国公司推出的,与其它版本相比编译速度快,其代码生成效率很高。
与汇编语言相比,语言具有程序结构清晰,库函数资源丰富的特点,以及在程序的可阅读性,可维护性和可重用性上具有明显的优势。
但这里并不是说汇编语言没有了用武之地,后面会谈到这点。
中代码和数据的存储区域和访问方式单片机所拥有的内部资源十分有限,但是花样很多,它不仅体现在存储资源西南大学本科毕业论文设计的物理分布,也体现在对他们的寻址。
单片机的存储资源可以分为程序存储器,片内数据存储器,片外数据存储器,特殊功能寄存器和存储区。
这里着重介绍片内数据存储区和片外数据存储区 附录 南北减 东西减 减到 重置 东西强行 南北强行 附录 西南大学本科毕业论文设计目录摘要文献综述研究背景研究现状本人的研究思路引言任务多任务中断任务切换时钟节拍代码的临界段可重入函数调度空闲任务平台上的语言从到中代码和数据的存储区域和访问方式编译模式指针中的可重入函数函数参数和返回值的传递语言和汇编语言混合编程以为开发平台基于单片机的多任务调度器设计创建任务任务堆栈初始化任务控制块初始化西南大学本科毕业论文设计任务切换系统函数时钟中断处理函数任务延时具体实例的设计显示驱动设计按键电路设计贪吃蛇和俄罗斯方块的设计结论附录参考文献致谢西南大学本科毕业论文设计基于单片机的多任务程序设计李洋西南大学工程技术学院,重庆摘要本文介绍了基于单片机的多任务程序设计。
首先介绍了多任务系统的基本概念,然后设计了以为开发平台基于单片机的多任务调度器,主要实现了任务调度函数时钟中断处理函数任务创建函数任务堆栈初始化函数以及系统延时函数。
最后编写了在上同时显示俄罗斯方块和贪吃蛇游戏的实例,并给出了游戏流程图和硬件电路图。
本课题所设计的多任务系统具有结构简单,使用方便灵活的特点。
关键词单片机多任务调度器西南大学本科毕业论文设计西南大学本科毕业论文设计文献综述研究背景单片机系统是嵌入式系统中十分重要的组成部分,在智能控制领域和测试系统中有着非常广泛的应用。
通常单片机上的程序为个无限循环单任务结构,程序从上到下顺序执行,在无限循环过程中采用调用函数的方式来完成相关操作,面对些短小的实时任务可以通过中断来处理,并且只有当个任务执行完之后,另个任务才能被执行,单任务系统具有简单直观和易于控制的特点,于此同时它又具有灵活性差在复杂系统中难以胜任的缺点。
比如当程序延时等待时,将处于空转状态即造成效率低下,而当所面对的问题越来越复杂时此结构极其不方便,不利于编程。
为了克服以上缺点将多任务机制引入单片机系统显得十分有必要,这里说的多任务并不是指计算机真的在特定的时间段内同时运行多个任务,而是按照时间片在各个任务之间进行快速的切换,各个任务轮流占用,当切换非常迅速时,将产生从微观上看轮流执行而宏观上并行执行的效果。
研究现状目前在单片机上实现多任务机制的方式主要还是移植现有商业嵌入式实时操作系统如等,它们主要完成任务管理任务的同步和通信以及对存储资源的管理,同时用户利用实时系统提供的或系统函数来完成相应的实时处理。
采用这种方法在定程度上能够缓解当前单片机系统以单任务为核心的窘境,提高的利用率,但是在单片机上移植商业实时操作系统除了要支付数额不小的的专利费用外,由于单片机自身的片上资源十分有限,特别是数据存储区空间和程序存储区空间十分有限,即使对于比较高档的单片机而言,在移植的过程中往往个系统内核就要占去大部分程序存储空间,同时在内核运行时也要消耗不少资源,这样就严重限制了用户对于应用程序的开发,对于那些低档的单片机绝大多数是不能运行商业性实时操作系统的。
所以,如何在没有操作系统的情况下,采用种简单的方法在单片机上实现多任务机制,那将是十分有意义的。
本人的研究思路对于像这种内部资源很有限的单片机而言,将个完整的实时操作系统移植上去显然是奢侈和不现实的,为了能够在上实现多任务机制,本文设计了基西南大学本科毕业论文设计于时间片调度算法的多任务调度器,它为子任务提供延时和任务切换系统函数。
根据多任务机制的特点,系统必须提供个基准时钟,系
