08电信2班舒功萌_第1页
08电信2班舒功萌_第2页
08电信2班舒功萌_第3页
08电信2班舒功萌_第4页
08电信2班舒功萌_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、毕 业 设 计 设计题目 “Uc/os-2内核在80C51系列单片机上的移植研究”设计学 院 物理科学与工程技术学院专 业 电子信息工程年 级 2008级姓 名 舒功萌指导教师 甘辉职 称 讲师(2012年 6 月)宜春学院教务处制目 录1毕业设计任务书2毕业设计开题报告3毕业设计答辩资格审查表4论文原创性申明5论文版权使用授权书6毕业设计正文7外文资料译文8外文资料原文宜春学院毕业设计任务书题 目: “Uc/os-2内核在80C51系列单片机上的移植研究”设计 学 院: 物理科学与工程技术学院 系 电子与信息工程系 专 业: 电子信息工程 班 级: 2008级 学 号: 0834301218

2、 姓 名: 舒功萌 起止日期: 2011.11.20-2012.6.5 指导教师: 甘辉 职称: 讲师 系主任: 袁易君 审核日期: 2012.3.20 说 明毕业论文任务书由指导教师填写,并经教研室审定,下达到学生。进度表分前、中、后三期由学生填写,每期填写后交指导教师签署审查意见,并作为毕业论文工作检查的主要依据。学生根据指导教师下达的任务书独立完成开题报告,3周内提交给指导教师批阅。本任务书在毕业论文完成后,与论文一起交指导教师,作为论文评阅和毕业论文答辩的主要档案资料,是学士学位论文成册的主要内容之一。一、毕业论文的要求和内容 介绍了一种实时操作系统uc/os-2的内核结构,分析了它的

3、移植价值。了解了单片机硬件平台上的关键技术,并详细的描述了此移植的实现过程,分析了移植测试实现的条件,并对一些特殊情况进行了说明,并总结了移植的一般方法。二、研究方案、目标近年来。嵌入式系统已成为了后PC时代的一个广阔的研发领域,实际应用中,原有的操作系统无法支持新增应用功能时,常会采用系统移植来解决问题。UC/QS-2作为一个高可靠,开源的嵌入式实时操作系统,具有广泛的应用;而利用廉价的80C51实现更具先天优势。所以以80C51为移植目标来详细讨论移植过程,其中总结设计了一个堆栈结构;最后给出移植测试实验,分析了移植中要注意的一些问题,总结了移植的一般方法。三、阅读书目清单1 李群芳、肖看

4、,单片机原理、接口及应用嵌入式系统技术基础.清华大学出版社出版,2005.2 谢自美,电子线路设计、实验、测试 .武汉:华中理工大学出版社,2000.3 何书森、何华斌,实用数字电路原理与设计速成.福州:福建科学技术出版社,2000.4 白驹衍, 单片计算机及应用.北京:电子工业出版社, 1999.5 谢振辉, 改进式MCS-51单片机实验.北京:科学出版社,2006.6 李维諟,郭强.液晶显示应用技术.北京:电子工业出版社.2005.7 陈小忠、黄宁、赵小侠,单片机接口技术实用子程序.北京:人民邮政出版社,2005.8 李华,MCS-51系列单片机实用接口技术M.北京:北京航空航天大学出版社

5、,1993.9 胡学海,单片机原理及应用系统设计M.北京:北京电子工业出版社,2005.10 张义和、陈敌北,例说8051.北京:人民邮电出版社,2006. 四、毕业论文进度计划序号各阶段工作内容起止日期备注1完成各种资料的收集2011.11.232012.3.4完成2对资料进行整理2012.3.5-3.26完成3把整理好的资料按要求书写成册完成毕业设计书2012.3.274.1完成4根据设计书进行课题设计2012.4.35.20完成5论文初稿2012.5.21-5.23完成6修改论文2012.5.246.1完成7初步定稿2012.6.16.5完成五、主要参考资料1 李群芳、肖看,单片机原理、

6、接口及应用嵌入式系统技术基础.清华大学出版社出版,2005.2 谢振辉, 改进式MCS-51单片机实验.北京:科学出版社,2006。3 张义和、陈敌北,例说8051.北京:人民邮电出版社,2006。六、毕业论文进度表(本表由学生填写,每期分别交指导教师签署审查意见)前 期(2011年11月23日至2012年1月4日)学生主要工作: 收集-uc/os-2的内核结构的相关资料,通过的方式上网和上图书馆。通过上网查找80c51单片机的现状与近期发展状况。图书馆查找设计的相关书籍。工作较努力,遵守纪律,作风严谨务实。同导师交流论文下一阶段工作进程。指导教师审查意见:年 月 日中 期(1月5日至5月20

7、日)学生主要工作:整理资料,把整理好的资料按要求书写成册完成毕业设计书。并根据设计书开始设计课题。论文初稿成形。能按时按量优异地完成任务书中规定的任务,能熟练运用所学理论和专业知识,能综合分析问题和解决问题。运用所学知识和技能及获取新知识去发现与解决实际问题;能对课题进行理论分析。指导教师审查意见:年 月 日后 期(5 月 21日至 6 月 5日)学生主要工作:将论文初稿通过指导老师审查。检查是否存在一些问题,并认真解决问题。从而达到路清新;语言表达准确,概念清楚,论点正确;实验方法科学,分析归纳合理;结论严谨,设计有应用价值。最后确定论文。并按照要求打印论文。学生完成终稿,导师完成毕业论文审

8、定和评阅工作。指导教师审查意见:年 月 日 七、其他(学生提交)1开题报告1份 2外文资料译文1份(1000字以上,并附资料原文) 3设计1份(理科4000字以上,文科6000字以上) 指 导 教 师: 教研室负责人: 学生开始执行 任务书日期: 学生姓名: 送交毕业设计日期: 宜春学院毕业设计开题报告题 目: “Uc/os-2内核在80C51系列单片机上的移植研究”设计 学 院:物理科学与工程技术学院 系 电子与信息工程系 专 业: 电子信息工程 班 级: 08级 学 号: 0834301218 姓 名: 舒功萌 指导教师: 甘辉 填表日期: 2011 年 11 月 30 日选题的依据及意义

9、近年来,嵌入式系统已成为后PC时代一个广阔的研发领域,其应用范围越来越广。实际应用中,由于移植所花费代价最小,原有操作系统无法支持新增应用功能时,常会采用系统移植来解决问题。uC/OS-II作为一个高可靠,开源的嵌入式实时操作系统,具有广泛的应用;而利用廉价的80C51实现众多传感器、控制器等电子设备的网络互联,更是具有先天优势。因此在80C51上移植uC/OS-II具有重要的意义。国内外研究现状及发展趋势(含文献综述)单片机控制的移植是为适应电子产业的飞速发展。数字化时代对人类的发展产生了巨大的变化,我们亲身经历了数字技术的蓬勃发展,目睹了它以惊人的速度,渗透到社会与生活的方方面面。不管是国

10、内还是在国外,数字化的产品都是不会过时的,人们也在不断地更新一个又一个的设计。本课题研究内容 以uC/OS-II为移植对象,以80C51为移植目标来详细讨论移植的过程,其中自己设计了一个堆栈结构;最后给出移植测试实验,分析了移植中要注意的一些问题,总结了移植的一般方法。 本课题研究方法 uC/OS-II可以让最高优先级的就绪任务处于运行状态,且其功能强大,具备多任务,内核可分开,稳定性能,又因uC/OS-II移植性也很高,把它的特点移植在80C51上让80C51单片机也具备这些优秀功能。首先了解uC/OS-II和80C51单片机的内部结构和特点,根据各自硬件结构编写相应的各自代码,最后采用Ke

11、ilCx51编译器进行编译,其整个移植过程在KeilCx51开发平台上搞定。研究目标、主要特色及工作进度研究目的:让原有操作系统可以支持新添加的功能主要特点:uC/OS-II高可靠开源的操作系统的应用广泛六、参考文献1 李群芳、肖看,单片机原理、接口及应用嵌入式系统技术基础清华大学出版社出版,2005.2 白智国,王芳,冯丹.嵌入式系统移植问题的研究计算机工程与科学,2005,27.97-993 JeanJLabrosse.嵌入式实时操作系统uC/OS-II .第2版.北京:北京航天航空大学出版社,2005.283-316.4 马忠梅.单片机的C语言应用程序设计北京:北京航空航天出版社,200

12、3.120-135.5 徐爱钧,彭秀华.KeilCx51V7.0单片机高级语言编程与uVision2应用实践.北京:电子工业出版社,2005.490-450.6 黄涛,徐宏吉.嵌入式实时操作系统移植技术的分析与应用计算机应用,2003,88-90.7 张谦,竹利平.C/OS-II实时嵌入式操作系统的实时性分析与测试.计算机工程与设计,2005,26宜春学院2009届毕业设计答辩资格审查表题 目“Uc/os-2内核在80C51系列单片机上的移植研究”设计 学生姓名舒功萌专业电子信息工程班级08级学号0834301218检查内容论文完成情况完成开题报告完成外文资料翻译完成中、英文摘要完成软硬件验收

13、无论文期间考勤情况良好累计旷课时间无学生自查说明 本人严格按照任务书进度开展论文设计工作及时发现问题并发馈给指导老师,跟老师一起探讨最佳解决方案,不断的改进设计;严格按照任务书的要求,对论文进行排版,确保内容的准确性、格式无误的情况下完成毕业论文设计工作。学生签名: 年 月 日指导教师意见(说明是否进行答辩及评定成绩)指导教师签名:成绩 年 月 日宜春学院论文原创性申明本人郑重申明:所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果。对本文的研究作出重要贡献的个人和集体,均在文中以明确方式表明。本人

14、完全意识到本申明的法律责任,其后果由本人承担。作者签名:日 期:论文版权使用授权书本论文作者完全了解学校有关保留、使用论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。本人授权宜春学院可以将本论文的全部或部分内容编入数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本论文。作者签名: 日期:导师签名: 日期:宜春学院物理科学与工程技术学院毕业设计 把这一页去掉毕 业 设 计 设计题目 “Uc/os-2内核在80C51系列单片机上的移植 研究”设计学 院 物理科学与工程技术学院专 业 电子信息工程年 级 2008级姓 名 舒功萌指导教师 甘辉

15、职 称 讲师(2012 年 6 月)宜春学院教务处制宜春学院物理科学与工程技术学院毕业设计“Uc/os-2内核在80C51系列单片机上的移植研究”设计宜春学院 物理科学与工程技术学院 电子信息工程 舒功萌指导老师:甘辉摘要:介绍了一种实时操作系统uC/OS-II的内核结构,分析了它的移植技术;讨论了将其移植到80C51系列单片机硬件平台上的关键技术,并详细描述了此移植的实现过程,分析了移植测试实验情况;针对keilCx51编译器环境下的一些特殊情况进行了说明,并总结了移植的一般方法。关键词:8051单片机;实时操作系统;移植;交叉编译器;测试Abstract:09-2096-04Porting

16、uC/OS-IIkernelto80C51-familymicroprocessorZHAOJian-hua,WANGWen-yong(SchoolofComputerScienceandEngineering,UESTofChina,Chengdu610054China)AbstractThekernelstructureandtheportingtechnologyofuC/OS-IIisintroduced,whichisakindofembeddedrealtimeoperatisystem.ThekeytechnologyandtheprocessofportinguC/OS-IIk

17、ernelto80C51familymicroprocessorsarediscussed,thetestingex-perimentafterportingisanalyzed.FinallythedifferenceabouttheportingtothecompilerofkeilCx51ispointedout,andthegeneraltransplantingmethodsaresummarized.Keywords :8051microprocessor;realtimeoperatingsystem; port;cross-compiler; 目 录TOC o 1-3 h u

18、HYPERLINK l _Toc14567 1、前言 PAGEREF _Toc14567 3 HYPERLINK l _Toc25518 2、硬件 PAGEREF _Toc25518 4 HYPERLINK l _Toc11424 2.1硬件的基本组成 PAGEREF _Toc11424 4 HYPERLINK l _Toc22824 2.2硬件的基本组成(见图A) PAGEREF _Toc22824 4 HYPERLINK l _Toc2982 2.3 硬件介绍: PAGEREF _Toc2982 4 HYPERLINK l _Toc8538 2.3.1 单片机概述 PAGEREF _Toc

19、8538 4 HYPERLINK l _Toc6248 2.3.2 AT89C51单片机简介 PAGEREF _Toc6248 4 HYPERLINK l _Toc2989 2.4 数码显示管 PAGEREF _Toc2989 8 HYPERLINK l _Toc26051 3、电路原理分析 PAGEREF _Toc26051 10 HYPERLINK l _Toc17467 3.1 电路图如下:(图A) PAGEREF _Toc17467 10 HYPERLINK l _Toc2391 3.2 显示原理 PAGEREF _Toc2391 10 HYPERLINK l _Toc25708 3.

20、3 键盘及读数原理 PAGEREF _Toc25708 10 HYPERLINK l _Toc12321 3.4 连击功能的实现 PAGEREF _Toc12321 10 HYPERLINK l _Toc24982 4 、程序设计思想和相关指令介绍 PAGEREF _Toc24982 11 HYPERLINK l _Toc19756 4.1 数据与代码转换 PAGEREF _Toc19756 11 HYPERLINK l _Toc4476 4.2 计时功能的实现与中断服务程序 PAGEREF _Toc4476 11 HYPERLINK l _Toc23176 4.3 时间控制功能与比较指令 P

21、AGEREF _Toc23176 11 HYPERLINK l _Toc31709 5、软件设计 PAGEREF _Toc31709 12 HYPERLINK l _Toc10017 5.1 Keil uVision2编程软件的介绍 PAGEREF _Toc10017 12 HYPERLINK l _Toc10617 5.2 PROTEUS7.0 仿真软件 PAGEREF _Toc10617 12 HYPERLINK l _Toc16435 5.4 程序部分(见附录A) PAGEREF _Toc16435 12 HYPERLINK l _Toc25649 5.3 程序流程图 (见附录B) PA

22、GEREF _Toc25649 12 HYPERLINK l _Toc15206 6 附录 PAGEREF _Toc15206 13 HYPERLINK l _Toc14634 7、结论 PAGEREF _Toc14634 23 HYPERLINK l _Toc3809 8、参考文献 PAGEREF _Toc3809 24 HYPERLINK l _Toc21797 9、辞谢 PAGEREF _Toc21797 25我记得结论应该在附录的前面,你在仔细看看它们的顺序。在目录里面把括号里的文字以及括号本身删除 1、前言嵌入式系统已成为后PC时代一个广阔的研发领域,其应用范围越来越广。实际应用中,

23、由于移植所花费代价最小,原有操作系统无法支持新增应用功能时,常会采用系统移植来解决问题。uC/OS-II作为一个高可靠,开源的嵌入式实时操作系统,具有广泛的应用;而利用廉价的80C51实现众多传感器、控制器等电子设备的网络互联,更是具有先天优势。因此在80C51上移植uC/OS-II具有重要的意义。本文以uC/OS-II为移植对象,以80C51为移植目标来详细讨论移植的过程,其中自己设计了一个堆栈结构;最后给出移植测试实验,分析了移植中要注意的一些问题,总结了移植的一般方法。2、硬件2.1硬件的基本组成内核uC/OS-II 、单片机(80c51)、keilCx51编译器2.2硬件的基本组成(见

24、图A)2.3 硬件介绍:2.3.1 单片机概述单片机也被称作“单片微型计算机”、“微控制器”、“嵌入式微控制器”。单片机一词最初是源于“Single Chip Microcomputer”,简称SCM。随着SCM在技术上、体系结构上不断扩展其控制功能,单片机已不能用“单片微型计算机”来表达其内涵。国际上逐渐采用“MCU”(Micro Controller Unit)来代替,形成了单片机界公认的、最终统一的名词。为了与国际接轨,以后应将中文“单片机”一词和“MCU”唯一对应解释。在国内因为“单片机”一词已约定俗成,故而可继续沿用。2.3.2 80c51单片机简介80C51单片机属于MCS-51系

25、列单片机,由Intel公司开发,其结构是8048的延伸,改进了8048的缺点,增加了如乘(MUL)、除(DIV)、减(SUBB)、比较(PUSH)、16位数据指针、布尔代数运算等指令,以及串行通信能力和5个中断源。采用40引脚双列直插式DIP(Dual In Line Package),内有128个RAM单元及4K的ROM。80C51有两个16位定时计数器,两个外中断,两个定时计数中断,及一个串行中断,并有4个8位并行输入口。80C51内部有时钟电路,但需要石英晶体和微调电容外接,本系统中采用12MHz的晶振频率。由于80C51的系统性能满足系统数据采集及时间精度的要求,而且产品产量丰富来源广

26、,应用也很成熟,故采用来作为控制核心。 图2.1 单片机80C51芯片机构框架图和内部逻辑结构 80C51功能特性描述:MCS-51系列单片机主要包括8031、8051和8751等通用产品,其主要功能如下:8位CPU4kbytes 程序存储器(ROM)128bytes的数据存储器(RAM)32条I/O口线111条指令,大部分为单字节指令21个专用寄存器2个可编程定时/计数器5个中断源,2个优先级一个全双工串行通信口外部数据存储器寻址空间为64kB外部程序存储器寻址空间为64kB逻辑操作位寻址功能双列直插40PinDIP封装单一+5V电源供电移植对象uC/OS-IIuC/OS-II具有很强的可移

27、植性,可以广泛应用于各类8位,l6位,32位微控制器或DSP中。它具有完全可剥夺型的实时内核,其核心工作原理是让最高优先级的就绪任务处于运行状态;它具有多任务的特点,可以管理64个任务,其中56个任务分配给用户;另外它具有内核可裁减性,可确定性的特点,并提供很多系统服务,比如信号量,互斥信号量,事件标志,消息邮箱,消息队列,内存的分配和释放等。1.2目标机80C51硬件资源在系统移植之前,必须先了解目标机的硬件资源,然后根据特定的硬件编写相应的代码。80C51系列单片机具有结构简单,应用灵活等特点。其硬件资源如下:CPU:8位的微处理器;内存:片内RAM(128B),片外RAM(64KB)、片

28、内ROM(4KB),片外EPROM(64KB);时钟:片内振荡器和时钟产生电路,振荡频率为612MHZ,2个16位定时/计数器;中断:5个中断源,两级中断;外设:4个8位并行I/O接口P0P3;1个全双工的串行I/O口(UART)。1.3移植中采用的编译器移植中采用KeilCx51编译器,整个移植在KeilCx51开发平台上进行。KeilCx51是Keil公司的一款针对C5l系列单片机的编译器,版本为V7.0,它是目前最高效的,灵活的80C51开发平台。在KeilCx51环境下移植uC/OS-II可直接进行软件仿真,仿真过程中不必将程序下载到硬件上运行。等程序在软件仿真平台测试通过后,直接将其

29、烧录到硬件芯片上。1.4uC/OS-II的模块简介由于设计uC/OS-II时就考虑到了在不同处理器上移植,因而移植uC/OS-II实际上需要修改的代码量很小。整个嵌入收稿日期:2006-04-23E-mail:z_1982_jh作者简介:赵建华(1982)(WSN)无线传感器网络(WSN)80C51)摘要:介绍了一种实时操作系统Vol.28No.9ComputerEngineeringandDesign2097式系统的结构如图1所示,uC/OS-II内核可以分为与处理器无关的代码,无处理器相关的代码以及与应用相关的代码3个部分。移植中只需修改与处理器相关部分的文件,即包括:CPU.H,OS_C

30、PU_C.C和OS_CPU_ASM.ASM,其它代码几乎不需要改变。2具体移植步骤以下是移植的步骤,分别修改各个与硬件相关的文件。2.1修改OS_CPU.H文件OS_CPU.H中包含两部分的代码,数据类型定义代码和与处理器相关的代码。移植主要修改与处理器相关代码。首先定义:EA=0关中断;EA=1开中断。这样定义即减少了程序行数,又避免了退出临界区后关中断造成的死机。由于MCS-51堆栈从下往上增长(1=向下,0=向上),所以OS_STK_GROWTH定义为0。最后,把OSCtxSw()预定义为OS_TASK_SW()。因为MCS-51没有软中断指令,所以用程序调用代替。实践表明,对于MCS-

31、51,用子程序调用入栈,用中断返回指令RETI出栈是没有问题的。在没有中断发生的情况下复位中断系统也不会影响系统正常运行。2.2修改OS_CPU_C.C文件在这个文件中,只需要修改任务堆栈初始化函数OSTa-skStkInit()。uC/OS-II中每个任务都有自己的堆栈空间,并且必须声明为OS_STK类型,主要完成对用户任务的堆栈进行初始化。OSTaskStkInit()函数总是返回栈顶地址。为了说明这个函数的工作流程,我们自己设计了一个堆栈空间,如图2所示。其中OSTCBCur指向当前任务控制块TCB,TCB结构体中OS-TCBStkPtr指向用户堆栈的栈顶,用户堆栈长度存放在用户堆栈的最

32、底部,长度之上空间存放系统堆栈映像,即:用户堆栈空间大小=系统堆栈空间大小+1。SP总是先加1再存数据,因此,SP初始时指向系统堆栈起始地址(OSStack)减1处(即OS-StkStart)。很明显系统堆栈存储空间大小=(SPOSStkStart)。任务切换时,先保存当前任务堆栈内容。即把系统栈数据拷贝到用户栈。方法是:用(SP-OSStkStar)得出保存字节数,将其写入用户堆栈最低地址内,以用户堆栈最低地址为起址,以OSStkStart为系统堆栈起址,由系统栈向用户栈拷贝数据,循环(SP-OSStkStart)次,每次拷贝前先将各自栈指针增1。其次,恢复最高优先级任务系统堆栈。方法是:获

33、得最高优先级任务用户堆栈最低地址,从中取出“长度Length”,以最高优先级任务用户堆栈最低地址为起址,以OSStkStart为系统堆栈起址,由用户栈向系统栈拷贝数据,循环“长度length”数值指示的次数,每次拷贝前先将各自栈指针增1。用户堆栈初始化时从下向上依次保存:用户堆栈长度(15),PCL,PCH,PSW,ACC,B,DPL,DPH,R0,R1,R2,R3,R4,R5,R6,R7。不保存SP,任务切换时根据用户堆栈长度计算得出。2.3修改OS_CPU_ASM.ASM文件uC/OS-II移植实例要求用户编写4个简单汇编语言函数:?OSStartHighRdy/使就绪态任务中优先级最高的

34、任务开始运行?OSCtxSw/低优先级任务切换到高优先级任务?OSTickISR/时钟节拍中断?OSIntCtxSw/在ISR中执行任务切换功能2.3.1修改OSStartHighRdyOSStartHighRdy主要完成高优先级任务寄存器的恢复。必须恢复该任务在CPU使用权被剥夺时保留下来的全部寄存器的值,以便让这个高优先级任务能够继续运行。即把用户堆栈中的PCL,PCH,PSW,ACC,B,DPL,DPH,R0,R1,R2,R3,R4,R5,R6,R7全部拷贝到系统堆栈,然后系统堆栈再进行POP操作,将保存的这些值弹出到CPU的各个寄存器。使得此高优先级任务得到运行。其中部分关键代码如下:

35、MOVXA,DPTR;调整DPTR,使其指向用户堆栈的最低地址MOVR5,A;R5=用户堆栈长度,因为堆栈长度放在用户堆栈最低处MOVR0,#OSStkStart;OSSktStart为系统堆栈起始地址restore_stack:;从用户堆栈到系统堆栈的copyINCDPTRINCR0MOVXA,DPTRMOVR0,ADJNZR5,restore_stackPOPALL;为自定义宏,将所有寄存器实现出栈2.3.2修改OSCtxSwOSCtxSw为任务切换函数,实现从低优先级任务到高优先级任务切换。要实现任务切换,一般包括两个过程:保存当前低优先级任务的全部寄存器的值以及堆栈的长度值;恢复高优先

36、级任务以前在CPU使用权被剥夺时保存下来的全部寄存器的值,即前一个汇编程序OSStartHighRdy实现的功能。其中部分关键代码如下:;以下代码完成第步操作图1uC/OS-软件体系结构时钟CPU其它设备应用程序软件uC/OS设置(与应用相关的代码)OS_CFGHINCLUDES.HOS_CORE.CuCOS_.COS_TASK.CuCOS_.HOS_SEM.COS_Q.COS_TIME.COS_MEM.COS_MBOX.CuC/OS移植(与处理器相关的代码)OS_CPU.HOS_CPU_C.COS_CPU_ASM.ASM图2自定义的用户堆栈和系统堆栈结构用户堆栈长度长度低地址系统硬件堆栈长度

37、=SP-OSStkStart低地址10-1不关心OSStackOSStkStartSPOSTCBCurOSTCBCurOSTCBStkPtruC/OS(与处理器无关的代码)2098PUSHALL;用户定义的宏,将全部CPU寄存器保存到系统堆栈MOVA,SP;以下3句实现获得堆栈的长度SUBBA,#OSStkStartMOVR5,A;R5里保存堆栈长度,并将其保存在用户堆栈最底下save_stack:;以下实现从系统堆栈到用户堆栈的拷贝INCDPTR;指向用户堆栈INCR0;指向系统堆栈MOVA,R0MOVXDPTR,ADJNZR5,save_stack;而第步代码和OSStartHighRdy

38、代码一样,除此之外,将当前优先级最高任务的任务控制块指针OSTCBHighRdy赋值给当前任务控制块指针OSTCBCur。2.3.3修改OSTickISRuC/OS-II要求用户提供一个周期性的时钟源,来实现时间的延迟和超时功能。我们选用8051的T0定时器作为tick时钟。OSTickISR函数为时钟节拍中断服务程序,当产生计时和定时中断时,执行此函数。此函数和其它中断服务子程序一样,都先要保存断点和保存现场,然后执行用户代码,最后对恢复保存的寄存器值。其中关键代码:CSEGAT000BH;0BH为0号定时器T0的入口地址LJMPOSTickISR;跳转到中断服务子程序OSTickISR:P

39、USHALL;保存所有寄存器的宏CLRTR0;后面4句为设置T0的工作方式以及赋值MOVTH0,#70H;定义Tick=50次/秒(即0.02秒/次)MOVTL0,#00H;OS_CPU_C.C和OS_TICKS_PER_SECSETBTR0LCALL_?OSTimeTick;调用系统Tick函数LCALL_?OSIntExit;系统函数,决定是否使得高优先级任务就绪POPALL;出栈RETI2.3.4修改OSIntCtxSwOSIntExit通过调用OSIntCtxSw,在ISR中执行任务切换功能。因为OSIntCtsSw是在ISR中被调用的,所以假定寄存器都被正确地保存了被中断的任务的堆栈

40、之中。因此,OSInt-CtxSw和上文中OSCtxSw的代码基本相同,差别仅仅在于开始之前少了一个POPALL操作。3实验及其结果分析移植完成后,紧接着就是移植的正确性验证。下面是移植测试实验以及对实验结果的分析。3.1实验的条件和指导思想实验必须确保在Cx51编译器和链接器的正常工作的情况下进行。主要指导思想是测试修改过的OSStartHighRdy(),OSTaskStkInitOSCtxSw,OSIntCtxSw,OSTickISR等5个函数,测试其在Cx51环境下运行是否正常。3.2实验的过程和结果实验过程主要包括以下3个步骤:创建两个任务Task1和Task2,验证OSTaskSt

41、kInit和OSStartHighRdy()函数;创建Task1和Task2后,通过二者之间的切换,验证OSCtxSw函数;初始化时钟,开中断。Task1和Task2各自睡眠一段时间(Task2睡眠时间是Task1的2倍)。等睡眠时间到达后,根据各自输出的不同结果,验证OSIntCtxSw和OSTickISR函数。主要测试代码如下:OSTaskCreate(Task1,(void*)0,&TaskSkt10,2);OSTaskCreate(Task2,(void*)0,&TaskSkt20,10);voidTask1(void*data1)reentrantfor(;)PrintStr(tTa

42、sk1isactive.11111111n);OSTimeDly(OS_TICKS_PER_SEC);voidTask2(void*data2)reentrantfor(;)PrintStr(tTask2isactive.22222222n);OSTimeDly(2*OS_TICKS_PER_SEC);3.3对实验结果的分析和讨论输出结果为:Task1isactive.11111111Task1isactive.11111111Task2isactive.22222222Task1isactive.11111111Task1isactive.11111111Task2isactive.2222

43、2222根据实验输出结果可见,Task1和Task2创建成功,因此OSTaskStkInit工作正常;Task1和Task2实现任务切换,以及发生时间中断,工作正常(Task1运行两次后Task2运行一次),因此其它4个函数工作也正常。由此可以得出结论,uC/OS-II已经在80C51上移植成功。3.4移植中keilCx编译器要注意的问题由于uC/OS-是一个可抢占式内核,因此,系统中的绝大多数函数都应该是可重入的。而在KeilCx51编译器中,在函数定义时的默认值都是不可重入的,因此,需要在系统中的每一个函数的声明以及定义处都加上“largereentrant”的修饰符,以保证函数的可重入性

44、。startup.a51文件是Cx51编译器自带的文件,是C51的初始化代码,单片机复位后先执行这段代码,完成初始化后由它调用main()。其主要完成定义内部RAM大小、外部RAM大小、可重入堆栈位置,以及初始化8051硬件堆栈指针。因此我们要修改这个文件中的一些变量,比如外部RAM起始地址变量XDATASTART,是否大模式重入堆栈指针需初始化标志变量XBPSTACKTOP等等。这样的话,程序在软件仿真通过测试后,将其烧录在硬件上,硬件调试也一次成功 表3.1 段码与字型的关系段码D7 DPD6 gD5 fD4 eD3 dD2 cD2 bD0 a字形3FH00111111006H000000

45、1015BH0101101124FH01001111366H0110011046DH0110110157DH01111101607H0000011177FH0111111186FH01101111977H01110111a7CH01110111b39H00111001c5EH01011110d79H01111001e71H01110000f这种方式占用锁存器较多。动态显示是将所有位的段选线相应的并联在一起,由一个8位的I/O口控制,形成段选线的多路复用。而各位的阴极分别由相应的I/O口控制,实现各位的分时选通。要LED能够显示相应的字符,就必须采用动态扫描方式,只要每位显示的时间足够短,则可造

46、成多位同时显示的假象,达成显示的目的。在数字电路中常常要把数据或运算结果通过半导体数码管、液晶数码和荧光数码管,用十进制数显示出来。发光二极管的工作电压为1.5-3.0伏,工作电流为己毫安到几十毫安,寿命很长。半导体数码管将十位数分成七个字段,每段为一个发光二极管,其字形结构如图所示,选择不同的字段发光,可显示出不同的字型。例如:当a,b,c,d,e,f,g七个字段同时亮时,显示8,b、c 段亮时,显示出。共阳极:把发光二极管的阳极连在一起构成共阳极。使用时公共端接Vcc,当某阳极为低电平时,该发光二极管就导通发光。输出一个段码就可以控制LED显示器的字型,表3.1 给出了段码与字型的关系,假

47、定a、b、c、d、e、f、g、DP分别对应D0、D1、D2、D3、D4、D5、D6、D7。5、软件设计单片机采用KeiluVision2编程软件编程,画图采用PROTEUS6.9仿真软件。5.1 Keil uVision2编程软件的介绍Keil uVision2IDE是Keil公司提供的用语开发MSC-51系列单片机的汇编语言与C语言程序的集成开发环境发,操作界面和其他Windows应用程序一样。uVision2支持所有的KeilC51工具,包括C编译器、宏汇编其、连接定位器、目标代码到HEX的转换器。 KeilC51的Windows版的软件,都是要建立一个工程文件,不管是汇编语言的,还是C语

48、言的,只有一个文件,还是有多个文件的程序都要有一个工程文件,没有工程文件,将不能进行编译和仿真。5.2 PROTEUS7.0 仿真软件5.4 程序部分(见附录A)5.3 程序流程图 (见附录B)6 附录 7、结论经过了两个多月的学习和工作,我终于完成了我的论文。从开始接到论文题目到系统的实现,再到论文文章的完成,每走一步对我来说都是新的尝试与挑战,这也是我在大学期间独立完成的最大的项目。在这段时间里,我学到了很多知识也有很多感受,从对单片机一知半解,对液晶显示器、Keil uVision2、PROTEUS7.0等相关技术很不了解的状态,我开始了独立的学习和试验,查看相关的资料和书籍,让自己头脑

49、中模糊的概念逐渐清晰,使自己非常稚嫩作品一步步完善起来,每一次改进都是我学习的收获,每一次试验的成功都会让我兴奋好一段时间。从中我也充分认识到了单片机设计给我们生活带来的乐趣.虽然我的论文作品不是很成熟,还有很多不足之处,但我可以自豪的说,这里面的每一段代码,都有我的劳动。当看着自己的程序,自己成天相伴的系统能够健康的运行,真是莫大的幸福和欣慰。我相信其中的酸甜苦辣最终都会化为甜美的甘泉。这次做论文的经历也会使我终身受益,我感受到做论文是要真真正正用心去做的一件事情,是真正的自己学习的过程和研究的过程,没有学习就不可能有研究的能力,没有自己的研究,就不会有所突破,那也就不叫论文了。希望这次的经

50、历能让我在以后学习中激励我继续进步。8、参考文献1 李群芳、肖看,单片机原理、接口及应用嵌入式系统技术基础.清华大学出版社出版,2005.2 谢自美,电子线路设计、实验、测试 .武汉:华中理工大学出版社,2000.3 何书森、何华斌实用数字电路原理与设计速成.福州:福建科学技术出版社,2000.4 白驹衍,单片计算机及应用.北京:电子工业出版社, 1999.5 谢振辉, 改进式MCS-51单片机实验.北京:科学出版社,2006.6 李维諟,郭强,液晶显示应用技术.北京:电子工业出版社.2005.7 陈小忠、黄宁、赵小侠,单片机接口技术实用子程序.北京:人民邮政出版社,2005.8 李华.MCS

51、-51系列单片机实用接口技术M.北京:北京航空航天大学出版社,1993.9 胡学海,单片机原理及应用系统设计M.北京:北京电子工业出版社,2005.10 张义和、陈敌北,例说8051.北京:人民邮电出版社,2006.9、辞谢在本次毕业设计中,我得到了指导老师甘辉的热心指导。他自始至终关心督促毕业设计进程和进度。帮助解决毕业设计中遇到的所有问题。还不断向我们传授分析问题和解决问题的办法,并指出了正确的努力方向,使我在毕业设计过程中少走了很多弯路。在这里我非常感谢甘老师的指导和帮助,并致以诚挚的谢意!同时,身边的同学也给了我许多的帮助。在此,我向身边关心我的同学致以诚挚的谢意!另外,系里的领导和老

52、师也给了我们必要的指导,我也向系和年级的领导们表示衷心的感谢!最后感谢学院对我这几年的培养。1外文资料译文:这里怎么要空这么多啊。1在信息技术急速发展的今天,计算机科学日新月异。而单片机作为计算机科学的一个分支,在微机控制领域得到长足的发展。随着单片机的发展与科学技术的提高,单片机已经成为人类生产生活中不可缺少的工具。而随着不断发展的科学和技术,人们有更高的准确性要求的时间计算。如何更精确的时钟工作?如何让他们更好地服务于我们的生活?显然,传统的时钟不能满足人们的需要。这就需要人们继续设计一个新的时钟。现在,单片机的应用已经渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。导弹的

53、导航装置、飞机上各种仪表的控制、计算机的网络通讯与数据传输、工业自动化过程的实时控制和数据处理、广泛使用的各种智能IC卡、民用豪华轿车的安全保障系统、录象机、摄象机、全自动洗衣机的控制,以及程控玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪表、医疗器械了。用单片机的优点是设计软件将不断积累,不断模块化,形成标准化软件,大大提高了开发效率。数字时钟的设计方法有很多种,例如可以用中小规模的集成电路组成;也可以用专用的时钟芯片配以显示电路及所需要的外围电路组成;还可以利用单片机来实现时钟。这些方法各有特点,其中利用单片机实现的数字时钟具有编程灵活,便于时钟功能的扩充,即

54、可以使用该时钟发出控制信号,精度高的特点。如今,大多数的高精密计时工具,使用石英晶体振荡器。电子时钟已取得了石英技术。它的优点是准确度高,稳定,易用性,没有定期调整。数字时钟用途集成电路取代机械部件和液晶显示器,以取代指标,以显示时间。因此,降低了时间误差。这种时钟的功能,显示小时,分钟明确和调整小时和分钟轻松。使用微控制器的设计,以实现定时功能,这是核心部分,在同一时间使用液晶的动态显示“小时” , “分”和“秒” 。与传统的机械手表,它有一个准确的时间,直观,和其他特点,其时间期限为24小时。该系统主要进行了研究数字时钟。系统需要液晶显示器,配合按键,提供友好的用户界面。数字时钟可连续和稳

55、定的工作,而且易于使用。外文资料原文:The rapid development of information technology in todays ever-changing computer science. The single-chip microcomputer as a branch of computer science, computer control in the field of development by leaps and bounds. With the single-chip science and technology development and th

56、e improvement of the production of single-chip human life has become an indispensable tool.But with the continuous development of science and technology, People have higher request to the accuracy of the time calculate. How the clock work more precisely? How to allow them a better service to our liv

57、es? Clearly the traditional clock can not meet peoples needs. This requires people to continue to design a new clock.Now, SCM applications have penetrated into all areas of our lives, which is very difficult to find the area of almost no traces of single-chip microcomputer. Missile navigation equipm

58、ent, aircraft control on a variety of instruments, computer network communications and data transmission, industrial automation, real-time process control and data processing, are widely used in a variety of smart IC card, limousine civilian security systems, video machines, cameras, control of automatic washing machines, as well as program-co

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论