单片机课程设计.doc_第1页
单片机课程设计.doc_第2页
单片机课程设计.doc_第3页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

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

文档简介

钦 州学院单片机课程设计报告基于多任务实时操作系统RTX51的交通灯系统院 系 物理与电子工程学院 专 业 电子信息工程 学 生 班 级 2010级2班 指导教师单位 物理与材料科学学院 指导教师姓名 包敬海 指导教师职称 副教授 2013年10月基于多任务实时操作系统RTX51的交通灯系统电子信息工程专业2010级 吕凯强 凌嘉丽指导教师 包敬海摘要本系统由单片机系统、键盘、交通灯演示系统组成。系统包括人行道、左转、右转、以及基本的交通灯的功能。系统除基本交通灯功能外,还具有紧急情况处理、分时段调整信号灯的点亮时间以及根据具体情况手动控制等功能。红绿灯控制是智能交通系统的一个重要部分,本文给出了一个用单片机控制的简易交通红绿灯自动控制系统。该系统适用于十字路口,并对放行和禁行时间进行倒计时显示(秒)。 在车辆通行繁忙的十字交叉路口设置的交通灯控制系统,其特点是:道路较窄而车流量较大,主干道,支干道的车辆通行时间不等,同时设有道路应急控制。具体的情况是:在正常的情况下,东西支干道通行时间为20秒,南北主干道通行时间为30秒,每个方向在绿灯转为红灯时,要求黄灯先亮5秒钟,才能变换运行车道。并且能够在人工监控状态下,如果一道有车而另一道无车,交通灯控制系统能立即让有车道放行。而且有紧急车辆要求通过时,系统要能禁止普通车辆通行。 关键词;交通灯控制系统;实时操作系统;RTX51设计目的 :(1)进一步掌握单片机课程所学的基础理论知识。(2)熟悉单片机最小系统,并掌握其工作原理,进一步学会使用其进行电路设计。(3)学会利用实时操作系统,RTX51设计交通灯控制系统。设计技术指标与要求要求具备红、黄、绿灯的基本功能,具备LED数字显示剩余时间的功能,具备设置时间长度的功能。可以自行添加其他功能。目录 前言11 基于多任务实时操作系统RTX51的交通灯系统 11.1 设计思想 11.1.1 设计方案11.1.2 设计所需的元件21.2 设计原理 31.2.1 基于RTX51的软件设计部分51.2.2 程序设计部分72 电路仿真 93 电路连接测试 103.1 安装焊接 103.2 测试 113.2.1 使用仪器 113.2.2 测试结果 124 设计体会 12参考文献 13钦州学院单片机课程设计前言随着科学技术的快速发展,人们对各类传统产品都有了越来越高的要求。其中,传统的电子系统,例如常见的单片机控制系统,主要采用单机工作方式或者简单的C/S模式。这种工作方式在网络化快速普及的新形势下,其网络性能不强、灵活性不高、难以满足远程控制和管理的需求等诸多弱点越来越明显。要使得传统单片机控制系统实现网络化,将上位机的Web服务器与下位机单片机融合是一个比较理想的解决方法。目前,网络技术已经广泛应用于各类企业和工业系统,越来越多的信息化产品需要能够接入互联网并且能够通过Web页面进行远程访问和控制1。Web 具有操作简便、交互界面良好等优点, 而单片机系统具有底层控制简单、强大的特点, 使得Web 和单片机系统的结合成为今后工业生产监测与处理的新趋势。单片机技术与网络技术的融合,为现场检测与控制设备的智能化、微型化奠定了良好的技术基础,使数据采集系统迅速得到广泛应用,它渗透到地质、医疗、农业生产、通讯等各个领域,为获取数据提供了良好的基础。根据该思路,设计了一个基于Web的温度测控系统。该系统分为上位机(计算机)和下位机(单片机)两部分。其中,下位机以STC89C52单片机为主控制器,将从温度传感器DS18B20采集到的数据发送给上位机。上位机利用VC+编写的管理程序接收温度数据,并插入到MySQL。由于上位机通过Apache构建了一个基于PHP的Web服务器,使得用户可以在任何一个能连接到该网络的地方,都能便捷的访问该服务器并获取当前的数据。同时,用户还能通过控制页面对下位机进行控制。1基于多任务实时操作系统RTX51的交通灯系统1.1设计思想设计方案交通信号灯控制系统主要实现以下三个功能: (1)信号灯指示,即完成十字路口红、黄、绿交通信号灯的控制。 (2)时间显示,各个信号灯持续的时间显示。 (3)紧急情况响应,当系统出现故障或者有紧急情况是能够及时响应。 根据以上功能要求,完整的交通灯控制系统硬件电路如图l所示,主要由三部分模块组成:单片机最小系统模块、红绿色显示模块、倒计时显示模块、紧急中断模块。 (4)单片机最小系统:包括时钟电路和开关复位电路。单片机选用具有成本低廉且具有串口ISP下载功能的STC89C52单片机,晶振选用12 MHz。 (5)信号灯指示电路:东西南北四个方向分别有红、绿、黄三个状态指示的灯,其中南北方向的红绿黄发光二极管分别连接到P1OP12,东西方向的红绿黄发光二极管分别连接到P13P15。 (6)倒计时显示:每个交通灯状态倒计时时间由两位共阳数码管显示,八位段码分别连接到P00P27,两位位选通过反向器分别连接到P34、P35。 (7)紧急中断:开关K1为紧急中断开关,当有特殊情况时按下K1,K1连接到单片机P32外部中断O输入端。1.1.2 设计所需元件 1.2 设计原理 一个高效的单片机智能控制系统,不仅要求系统能够同时执行多个任务,对每个任务作出实时响应,而且要求系统能够及时响应随机发生的外部事件,并对其作出快速处理。对于这样的系统应用,采用实时操作系统RTOS(Real-time-Operating System)作为系统软件设计平台是一个良好的选择,它可以灵活地安排系统资源,简化复杂的软件设计,加快软件的开发效率,大大缩短了项目的开发周期。道路交通灯是最常见的一种多任务控制系统,本文以此为倒,详细阐述了51嵌入式实时操作系统RTX51开发软件的方法和步骤。设计原理图1.2.1基于RTX51的软件设计2 RTX51介绍RTX51有2个模式:RTX51完全模式和最小模式。RTX51最小模式版是RTX51完全版的一个子集,可以很容易地运行在8051系统上,而不需要外部RAM(XDATA)。RTX51完全模式有4个任务优先级,可以和中断函数并行处理,各个任务之间通过使用“邮箱”系统来进行信号和消息的传递,可以从内存池中申请和释放内存;同时,可以强制一个任务停止执行,等待一个中断,或者是其它中断传来的信号量或者消息。RTX51对系统硬件的要求如表1所列。描述RTX51完全模式RTX51最小模式任务数最大256,19个激活任务,其中16个标准任务,3个快速任务16RAM4046字节RAM20200字节IDATA最少450字节XDATA7字节DATA3*任务数IDATA不需要XDATAROM6KB8KB900字节定时器定时器0或1定时器0表12.1 RTX51任务 RTX51区分2类任务:快速任务和标准任务。快速任务有很快的响应速度,每个快速任务使用8051一个单独的寄存器组,并且有自己的堆栈区域。RTX51支持最大同时有3个快速任务。标准任务需要多一点的时间来进行任务切换,因此使用的内部RAM相对快速任务要少,所有的标准任务共用1个寄存器组和堆栈。当任务切换的时候,当前任务的寄存器状态和堆栈内容转移到外部存储器中。RTX51支持最大16个标准任务。 RTX51任务状态: (1)运行(RUNNING)-当前正在运行的任务处于RUNNING状态,同一时间只有1个任务可以运行。 (2)就绪(READY)-等待运行的任务处于READY状态,在当前运行的任务退出运行状态后,就绪队列中优先级最高的任务进入到运行状态。 (3)阻塞(BLOCKED)-等待一个事件的任务处于BLOCKED状态,如果事件发生且优先级比正在运行的任务高,此任务进入运行状态;如果优先级比正在运行的任务低,此任务进入READY状态。 (4)删除(DELETED)-没有开始的任务处于删除状态。 (5)任务切换-RTX51包含一个事件驱动的任务切换机制,它能够按照任务的优先级进行切换,也就是抢占式多任务系统;另外还有一个可选的时间片轮转切换任务模式,在时间片轮转模式下,同级别的任务是按照时间片分别占用CPU 的。RTX51任务有4个优先级:0、1、2可以分配给标准任务,优先级3是为快速任务保留的。每个任务都可以等待事件的发生,而并不增加系统的负担;任务可以等待消息、信号、中断、超时事件或者它们的组合。任务切换是按照一定规则进行的,包括:进入到“就绪”状态的优先级高的任务先执行;如果“就绪”状态的几个任务是同一个优先级,那么最先进入“就绪”状态的先执行。3 应用实例以下给出RTX51在单片机控制的GPS接收板上的应用。(1)系统硬件组成 单片机W77E58、快速8051内核、32KB ROM、1KB的XDATA RAM,符合使用RTX51的硬件要求;键盘、GPS定位模块、液晶显示模块。 (2)系统软件构成 软件运行环境KEIL uVision2 6.20集成开发环境加上RTX51完全版。任务KEY-BOARD,监测键盘的情况,如果有按键按下,把按键的编码发送到邮箱1,外部中断1等待接收GPS数据,并把数据存储起来,向DISPLAY任务发出信号,进行处理。任务SEND_OUT,把接收到的数据进行处理,并发送出去。任务VOICE进行语音输出。 下面给出简写的源程序: #includeRTX51.h /包含RTX51文件 #define DISPLAY 0 #define SEND_OUT 1 #define KEY_BOARD 2 #define VOICE 3 void main(void) init system(); /系统初始化 os start system(DISPLAY); /启动RTX51 viodtask0(void)_task DISPLAY os set slice(1000); /设置时间片大小 os enable isr(0); /允许外部中断0 os creat task(SEND_OUT); /启动SEND_OUT任务 os creat task(KEY_BOARD); /启动KEY_BOARD任务 os creat task(VOICE); /启动VOICE任务 for(;) switch(os wait(K_SIG+K_MBX+1255, keyboard) /等待接收信号和键盘消息,分类处理 case EVENT_SIGNAL; /当接收到信号的时候 display1(); break; case EVENT_MBOX: /当从邮箱接收到数据的时候 switch(keyboard) case 1: . os send signal(SEND_OUT); /向任务SEND_OUT发送信号 . os send signal(VOICE); /向任务VOICE发送信号 .; .; void task1(void)_task SEND_OUT /处理发送数据任务 while(1) os wait(K_SIG,255,0) /等待信号 operation send(); void task3(void)_task VOICE while(1) os wait signal(K_SIG,255,0); /等待语音处理信号 voice(); void interrupt1(void)interrupt 2 using 1 read gps data (p gps_ data); /接收数据 isr send signal(DISPLAY); /向DISPLAY任务发信号 # pragma REGISTERBANK (2) /使用寄存器组2 void task2(void)_task_KEYBOARD_priority_3 /设置为快速任务 os attach interrupt(0); /绑定任务和外部中断0 while(1) os_ wait(K_INT,255,0); /等待中断的发生 KEY=iic read_ keyboard(); os send message(1,KEY,0); /将键盘编码发送到邮箱1 近年来,利用嵌入式实时操作系统来开发嵌入式系统的软件已是大势所趋。这是因为传统的这类设计中,大多采用了中断结合单任务的顺序机制进行,这种设计方法虽然比较直观,但是也带来了诸如稳定性差、不便于调试等问题。尤其是当系统比较复杂、实时性要求比较高时,这种单任务机制的缺陷更为明显。利用嵌入式实时操作系统,程序开发者可以将复杂的系统分成多个相对独立的任务,从而分而治之,降低了系统的复杂性;通过对不同的任务赋以不同的优先级,从而能够保证系统的实时性;同时,由于软件系统有多个任务组成,所以其模块化程度好。提高了系统的可维护性。因此,这里利用实时操作系统RTX51来进行软件系统的设计。TX51实时操作系统介绍 RTX51是美国Keil公司开发的一种运行于8051单片机环境中的实时多任务操作系统(RTOS),其常用于处理复杂的多任务控制系统。8051单片机支持典型的RTX-51Tiny和RTX-51 Full实时多任务操作系统。在Keil Vison3集成开发环境中提供了RTX-51实时操作系统的编译和仿真调试支持。 在多任务嵌入式系统中,合理的任务调度必不可少。单纯通过提高处理器速度无法达到目的,这样就要求嵌入式系统的软件必须具有多任务调度能力。在微控制器应用系统中通常可以分解为多个相互独立的功能模块,在RTX51嵌入式实时操作系统中将这些模块划分为任务,引入多任务机制管理。依据系统功能优先级分配不同的任务,多个任务分别在各自的时间片内访问CPU,从而产生了微观上轮流运行、宏观上并行运行的多任务效果,保证了对外界的信息足够快的速度进行响应处理,又能并行运行多个任务,因此能很好完成对多个信息的实时测量、处理并进行响应的多个实时控制。22 任务分配 在本系统中,依据交通灯控制系统功能的分析,将整个软件系统分解为以下三个任务,系统初始化、红绿黄灯显示、倒计时显示。具体情况如下: 任务0:用于系统初始化,开外部中断0;启动任务1和任务2。 任务1:红绿黄信号指示灯控制,实现红绿黄灯的五种状态控制。状态0:东西方向红灯亮,同时南北方向绿灯亮,亮的时间为30 S;状态1:东西方向红灯亮,南北方向黄灯闪烁,时间为3 S;状态2:东西方向绿灯亮,同时南北方向红灯亮,时间为30 S;状态3:东西方向黄灯闪烁,南北方向红灯亮,时间为3 S;状态4:当紧急开关按下时,响应紧急状况或者故障状态,东西南北四个方向红灯均亮,时间为10S。任务2:各个状态指示灯倒计时显示。两个数码管采用动态扫描显示,实时显示当前交通指示灯状态的倒计时时间。1.2.2时间显示部分7.定时/计数器8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。2.2系统方框图电 源交通灯AT89S52交通灯时间显示部分时钟电路复 位电 路2.3工作原理由软件设置交通灯的初始时间,南北方向通行30秒,东西方向通行20秒,数码管采用动态显示,P0口送字形码,P2口送字位选通信号,通过单片机的P1口控制各种信号灯的燃亮与熄灭。采用中断方式实现按键的功能。东西方向 EW G Y R 紧急转换 车辆检测 系统控制 电路南北方向 NS G Y R1.2.3 程序设计部分依据任务分配,将三个任务分别规划为_task_0,_task_1,_task_2,由于完整的程序较大,这里不便给出,只给出部分代码,如下所示。电路仿真2.交通灯南北方向绿灯向红灯转变,黄灯闪烁时仿真图(见图-8)。图-84.2仿真结果分析仿真实验实现南北方向车道和东西方向车道两条交叉道路的车辆交替运行,南北方向(主干道)每次通行时间设为30秒、东西方向通行时间设为20秒,时间可以在程序中修改。同时能够实现红灯、黄灯、绿灯状态转换,红绿灯转换时间为5秒,转黄期间黄灯亮。可以准确显示每个状态所剩余的时间,按下禁行普通车辆键,东西南北方向都亮红灯;按下南北放行键,南北绿灯亮,东西红灯亮;按下东西放行键,东西绿灯亮,南北红灯亮;任何时候按下返回键,此系统都将回到初始状态,当紧急状况出现时,按下紧急开关,可实现主干道和支干道全部禁止通行,允许紧急车辆安全通行,实现了课程设计的要求。3 电路连接测试3.1 安装焊接调试在计算机上使用protues,选好要使用的元器件,并绘制成电路图,完成后就把领回来的元器件按照电路图把元器件安装在万用板上,然后就进行焊接。焊接的时候一定要注意,不能出现短路和虚焊。焊接完成后还要再认真的检查一遍,确认没有问题后就可以进行调试。下面图就是我们设计完成的多路数字电压表在调试过程的照片。 实物正面图 实物反面图4 设计体会 本次基于多任务实时操作系统RTX51的交通灯系统由吕凯强同学和凌嘉丽同学合作完成,焊接电路板的部分由吕凯强同学负责,可以说能够的到预期的实验效果,这块电路板的焊接部分尤为重要。遇到不懂得地方我都会找他商量,与他探讨。当然最主要的是有包敬海的指导,不然我们的作品没办法完成。通过这次单片机课程设计,对于我来说,最重要的一点就是加深了我对单片机理论知识的理解。让理论知识与实践可以结合起来,更有助于我学习单片机。因为理论知识往往的比较抽象的,很多时候都是难以理解的,但是通过这样一个实践,在做多路数字电压表这门单片机课程设计时,很多以前不怎么理解的理论知识都可以得到理解了,并且印象还会比较深。这样的一次实践,不仅提高了我们的动手能力,独立分析问题、解决问题能力,还让

温馨提示

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

评论

0/150

提交评论