欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    UCOSE期末大作业.docx

    • 资源ID:4104729       资源大小:2.36MB        全文页数:12页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    UCOSE期末大作业.docx

    1、UCOSE期末大作业 NANCHANG UNIVERSITYUCOSII期末报告 题 目: UCOSII期末作业报告 学 院: 软件学院 专 业: 计算机软件 班 级: 计算机软件121班 姓 名: 李俊楠 学 号: 8000612030 起讫日期: 2014. 11.302014.12.30 完成时间: 2014年12月29日 填表日期: 2014 年 12 月 29 日一、课题设计内容 综合设计题及功能的选定,根据课本作者附ucosii c51移植版本(任哲光盘中)及教师设计的proteus智能交通电路仿真图进行设计编程。所有选题功能必须满足如下要求:1、 输出信息要有LED资源的运用。2

    2、、 必须要有中断的运用,并尽可能多的使用。3、 用UART与上位机通信,并使两个(或以上)任务共享一个UART与上位机通信。4、 两路A/D转换采集数据要做简单的比较性计算,然后输出其他资源运用为可选。设计文档规范:1、 功能需求分析说明;2、 解决方案和ucos实现算法;3、 实现代码;4、 出现的问题及解决、体会总结。 软件体系架构基于实时操作系统UC/OSII 。大作业以纸质和电子两种形式提交。电子文档中应包括完成的设计题的keil uvision3工程项目形式工程管理文件及源代码。硬件开发平台proteus智能交通电路仿真图。要求源代码应按规范注释。一、 实验项目名基于51单片机的uc

    3、osII实时车流数据采集智能交通灯 二、实验目的通过滑动变阻器模拟车流量,两路A/D转换采集数据要做简单的比较性计算,然后输出,实现对交通灯的控制,数码管显示对应交通灯的时间。三、实验要求1. 熟悉51单片机的应用,比如串口通信,AD转换,中断等。2. 51单片机的ucosII系统移植。(keil大模式)3. UcosII实时系统的应用(任务的创建,调度等,用来实现前后台)作业内容要求:4. 输出信息要有LED资源的运用。5. 必须要有中断的运用,并尽可能多的使用。6. 用UART与上位机通信,并使两个(或以上)任务共享一个UART与上位机通信。7. 两路A/D转换采集数据要做简单的比较性计算

    4、,然后输出8. 其他资源运用为可选。四、主要仪器设备、软件及耗材 PC,keil,protues。五、实验步骤一声明的变量 1)根据仿真图设定的通道0,1和交通灯的扩展口地址。#define AD0 XBYTE 0x8ff8#define AD1 XBYTE 0x8ff9#define JTL XBYTE 0xAFF8 /交通灯扩展口地址#define PL XBYTE 0xCFF82)定义中断AD采集到的缓冲数据区和交通灯的时间INT16U LED1, LED2, LED3,ad0_int, ad1_int,led_stu; /保存中断采集AD0、AD1值缓冲数据区INT16U second

    5、 = 10,nextsecond = 10,total = 40,count = 0; /用来确定交通灯的的时间3)定义AD0,AD1信号量OS_EVENT *sem_adc,*sem_adc1;4)函数(包括任务函数的声明)声明5)堆栈大小,串口打印字符数组,数码管段码数组声明二函数和需要修改的中断向量表。1). 采用定时器中断方式实现任务的转换,注意关中断来消除中断嵌套。 OSInit();InitTimer0(); /定时器初始化OSStart();2). 创建4个任务,通道0和1通过信号量还实现同步和互斥 OSTaskCreate(Task1, (void *)0, &Task1Stk

    6、0,2); /秒数减1 OSTaskCreate(Task2, (void *)0, &Task2Stk0,5); /显示秒数 OSTaskCreate(Task3, (void *)0, &Task3Stk0,3); /通道0采集数据 OSTaskCreate(Task4, (void *)0, &Task4Stk0,4); /通道1采集数据3).设定信号量,来控制AD转换通道0和1sem_adc=OSSemCreate(0); /是否开始采集数据的信号量sem_adc1=OSSemCreate(0); 4). 显示数码管内容void display(unsigned int i,unsig

    7、ned int j)reentrant /显示数码管设置 LED1=i%10; /求个位上的数字 LED2=(i/10)%10; /求十位上的数字 P2=0xff; if(j = 1) /显示0,1数码管 delay(2); PL=led_segmentLED1; /向数码管个位上段码 led1=0; delay(50); led1=1; if(LED2=0) /如果十位和百位上的数字都为0,则十位上 LED2=10; /的数码管不显示 PL=led_segmentLED2; led2=0; delay(50); led2=1; else /显示2,3数码管 delay(2); PL=led_

    8、segmentLED1; /向数码管个位上段码 led3=0; delay(50); led3=1; if(LED2=0) /如果十位和百位上的数字都为0,则十位上 LED2=10; /的数码管不显示 PL=led_segmentLED2; led4=0; delay(50); led4=1; 5). 添加外部中断0的中断服务函数,用来判断AD0808的AD转换是否结束。void extern0() reentrant EX0=0; OSSemPost(sem_adc1); EX0=1; 6). 在OS_CPU_A.ASM启动代码添加外部中断0。 CSEG AT 0003H ;ext LJMP

    9、 extern0 ;使用外部中断 RSEG ?PR?_?extern0?OS_CPU_Aextern0: USING 0 CLR EA ;先关中断,以防中断嵌套。 PUSHALL LCALL _?OSIntEnter ;监视中断嵌套 LCALL _?extern0 ;调用c码中的中断处理函数 LCALL _?OSIntExit POPALL RETI7). 根据实时车流智能显示交通灯的时间 void setsecond(void) reentrant /设置时间函数 if(led_stu = 0x21) /当东西路上上车多时,将绿灯时间延长,反之缩短 JTL = 0x11; /东西红,南北黄

    10、delay(10000); JTL = 0x0c; /东西绿,南北红 led_stu = 0x0c; second = nextsecond; else if(led_stu = 0x0c) / 当东西路由绿灯转红灯时,且车流量较多时,红灯时间减少,反之缩短 JTL = 0x0a; /东西黄,南北绿 delay(10000); JTL = 0x21; /东西红南北绿 led_stu = 0x21; second = total - nextsecond; 8). 串口输出 void print_port(void) reentrant PrintStr(ntt*n); PrintStr(tt*

    11、 Real time traffic lights-cuipeinan *n); PrintStr(tt*nnn); PrintStr(ttttThe car of w to e is ); adc(ad0_int); PrintStr(n); PrintStr(ttttThe car of s to n is ); adc(ad1_int); PrintStr(n); nextsecond = ad0_int*50/(ad0_int + ad1_int); PrintStr(ttttThe nexttimes is ); adc(nextsecond); PrintStr(n);9). AD

    12、采集数据计算后串口输出void adc(unsigned int i)reentrant /将通道0和通道1采集到的数据以及经计算的出的下一次的秒数输出到串口上。 PrintChar(print_pdata(i/100); /百位 PrintChar(print_pdata(i/10)%10); /十位 PrintChar(print_pdata(i%10); /个位Protues仿真图 6、调试过程及处理结果七、思考讨论题或体会或对改进实验的建议通过这次课程设计懂得了很多,我自己去图书馆,上网查资料然后自己询问了很多同学完成的,原以为会很简单的,但无论在制作与写作过程中我都遇到了理论课上所不

    13、曾遇到的问题,第一是综合性太强,这次制作与论文不仅涉及到我们以前所学到的单片机,高等数学等课程的知识还涉及到很多我们的选修及课外的知识。第二是理论联系实际性太强,把所学的搜集到得知识运用的实际中不是一件容易的事,不仅由元件从课本上的符号到实物的认识还是理论的测量结果与实际值的误差。课程设计是对我所学知识理论的检验与总结,能够培养和提高设计者独立分析和解决问题的能力;课程设计提高了我的理论联系实际的能力更在知识的巩固与实际的操作上的衔接提高了我的能力,课程设计中遇到的困难与挫折以及解决这些问题的思路与方法更增加了我对以后工作中遇到困难克服解决的信心,也让我积累了经验,为以后的工作打下了良好的基础,同时也培养了我在遇到突发状况要稳定冷静的精神,也培养了我认真查资料与虚心和他人提问的态度。这次课程设计业也让我懂得了分析问题,才能解决问题的道理,通过了这次更增加了我以后能够干好自己工作的信心。八、参考资料嵌入式操作系统基础


    注意事项

    本文(UCOSE期末大作业.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开